diff --git a/STL_Extension/include/CGAL/array.h b/STL_Extension/include/CGAL/array.h index 1900a8b1ba0..2f2cf3de44b 100644 --- a/STL_Extension/include/CGAL/array.h +++ b/STL_Extension/include/CGAL/array.h @@ -18,6 +18,7 @@ #else # include #endif +#include namespace CGAL { @@ -68,6 +69,19 @@ struct Construct_array } }; +template +constexpr std::array +make_filled_array_aux(const T& value, std::index_sequence) +{ + return {(static_cast(Is), value)...}; +} + +template +constexpr std::array make_filled_array(const T& value) +{ + return make_filled_array_aux(value, std::make_index_sequence()); +} + } //namespace CGAL #endif // CGAL_ARRAY_H diff --git a/Triangulation_3/include/CGAL/Triangulation_hierarchy_3.h b/Triangulation_3/include/CGAL/Triangulation_hierarchy_3.h index e55b8eab5b3..6fc656ca9eb 100644 --- a/Triangulation_3/include/CGAL/Triangulation_hierarchy_3.h +++ b/Triangulation_3/include/CGAL/Triangulation_hierarchy_3.h @@ -51,6 +51,7 @@ #include #include +#include #endif //CGAL_TRIANGULATION_3_DONT_INSERT_RANGE_OF_POINTS_WITH_INFO @@ -92,18 +93,6 @@ public: private: - template - constexpr std::array - make_array_of_triangulations(const Geom_traits& traits, std::index_sequence) - { - return {{(static_cast(Is), traits)...}}; - } - template - constexpr std::array create_array_of_triangulation(const Geom_traits& traits) - { - return make_array_of_triangulations(traits, std::make_index_sequence()); - } - void init_hierarchy() { hierarchy[0] = this; for(int i=1; i(traits)) + , hierarchy_triangulations(make_filled_array(traits)) { init_hierarchy(); insert(first, last); @@ -465,7 +454,7 @@ template Triangulation_hierarchy_3:: Triangulation_hierarchy_3(const Geom_traits& traits) : Tr_Base(traits) - , hierarchy_triangulations(create_array_of_triangulation(traits)) + , hierarchy_triangulations(make_filled_array(traits)) { init_hierarchy(); }