diff --git a/Filtered_kernel/include/CGAL/Lazy_kernel.h b/Filtered_kernel/include/CGAL/Lazy_kernel.h index 8f43a8a1af1..a6b2ac165ba 100644 --- a/Filtered_kernel/include/CGAL/Lazy_kernel.h +++ b/Filtered_kernel/include/CGAL/Lazy_kernel.h @@ -280,12 +280,18 @@ public: C Cf() const { return C(); } #include + + // Useless meta-function, added to workaround a bug with Visual C++ 2022 and before + // See issue https://github.com/CGAL/cgal/issues/8140 + template < typename T > + struct Handle { typedef T type; }; }; + template < typename EK_, typename AK_, typename E2A_, typename Kernel_ > class Lazy_kernel_base : public Lazy_kernel_generic_base diff --git a/Kernel_23/test/Kernel_23/CMakeLists.txt b/Kernel_23/test/Kernel_23/CMakeLists.txt index 1de74e0e1b0..740f9325814 100644 --- a/Kernel_23/test/Kernel_23/CMakeLists.txt +++ b/Kernel_23/test/Kernel_23/CMakeLists.txt @@ -14,6 +14,7 @@ create_single_source_cgal_program("Filtered_homogeneous.cpp") create_single_source_cgal_program("Homogeneous.cpp") create_single_source_cgal_program("issue_129.cpp") create_single_source_cgal_program("issue_3301.cpp") +create_single_source_cgal_program("issue_8140.cpp") create_single_source_cgal_program("Kernel_checker.cpp") create_single_source_cgal_program("Lazy_kernel.cpp") create_single_source_cgal_program("origin_3.cpp") diff --git a/Kernel_23/test/Kernel_23/issue_8140.cpp b/Kernel_23/test/Kernel_23/issue_8140.cpp new file mode 100644 index 00000000000..3628ba83944 --- /dev/null +++ b/Kernel_23/test/Kernel_23/issue_8140.cpp @@ -0,0 +1,12 @@ +#include + +int main() { // For testing, we just print the combinations of types + using Kernel = CGAL::Exact_predicates_exact_constructions_kernel; + using Vec_3 = Kernel::Vector_3; + using Cp_fnc3 = Vec_3(*)(const Vec_3&, const Vec_3&); + + Cp_fnc3 f = static_cast(&CGAL::cross_product); + Vec_3 v1, v2; + Vec_3 v = f(v1, v2); + return 0; +}