diff --git a/SMDS_3/include/CGAL/SMDS_3/io_signature.h b/SMDS_3/include/CGAL/SMDS_3/io_signature.h index ba50d850123..4b71d15ff1e 100644 --- a/SMDS_3/include/CGAL/SMDS_3/io_signature.h +++ b/SMDS_3/include/CGAL/SMDS_3/io_signature.h @@ -27,6 +27,7 @@ #include #include #include +#include #ifdef CGAL_PERIODIC_3_MESH_3_CONFIG_H #include @@ -40,17 +41,12 @@ namespace CGAL { // SFINAE test -template -class has_io_signature -{ -private: - template struct helper; - template static char check(helper<&V::io_signature> *); - template static char (&check(...))[2]; +template +struct has_io_signature : public std::false_type {}; -public: - enum { value = (sizeof(check(0)) == sizeof(char)) }; -}; +template +struct has_io_signature> +: public std::true_type {}; template struct Get_io_signature_aux @@ -76,10 +72,7 @@ template struct Get_io_signature : public Get_io_signature_aux< T, - (has_io_signature::value || - has_io_signature::value || - has_io_signature::value ) // signature for - // static mem func + has_io_signature::value > { }; diff --git a/STL_Extension/include/CGAL/type_traits.h b/STL_Extension/include/CGAL/type_traits.h index f62325ebc8b..7a321ec2801 100644 --- a/STL_Extension/include/CGAL/type_traits.h +++ b/STL_Extension/include/CGAL/type_traits.h @@ -27,6 +27,10 @@ struct is_same_or_derived : >::type {}; +namespace cpp17 { + template< class... > using void_t = void; +} // end namespace cpp17 + } #endif // CGAL_TYPE_TRAITS_H diff --git a/Triangulation_3/include/CGAL/Conforming_Delaunay_triangulation_3.h b/Triangulation_3/include/CGAL/Conforming_Delaunay_triangulation_3.h index 6759c54c46c..5583bf04717 100644 --- a/Triangulation_3/include/CGAL/Conforming_Delaunay_triangulation_3.h +++ b/Triangulation_3/include/CGAL/Conforming_Delaunay_triangulation_3.h @@ -66,6 +66,7 @@ public: template class Conforming_Delaunay_triangulation_3 : public T_3 { +public: using Vertex_handle = typename T_3::Vertex_handle; using Cell_handle = typename T_3::Cell_handle; using Point = typename T_3::Point; diff --git a/Triangulation_3/include/CGAL/Constrained_Delaunay_triangulation_3.h b/Triangulation_3/include/CGAL/Constrained_Delaunay_triangulation_3.h index 266b298de18..a63964fb1cc 100644 --- a/Triangulation_3/include/CGAL/Constrained_Delaunay_triangulation_3.h +++ b/Triangulation_3/include/CGAL/Constrained_Delaunay_triangulation_3.h @@ -162,6 +162,11 @@ public: using Geom_traits = typename T_3::Geom_traits; using Face_index = CDT_3_face_index; + + static std::string io_signature() { + return Get_io_signature()(); +} + private: struct CDT_2_types { using Projection_traits = Projection_traits_3;