diff --git a/Circular_kernel_3/include/CGAL/Circular_kernel_3/get_equation_object_on_curved_kernel_3.h b/Circular_kernel_3/include/CGAL/Circular_kernel_3/get_equation_object_on_curved_kernel_3.h index 7945c924330..ebbe0c92967 100644 --- a/Circular_kernel_3/include/CGAL/Circular_kernel_3/get_equation_object_on_curved_kernel_3.h +++ b/Circular_kernel_3/include/CGAL/Circular_kernel_3/get_equation_object_on_curved_kernel_3.h @@ -39,7 +39,6 @@ namespace CGAL { { public: - typedef void result_type; // should we keep this? typedef typename SK::Polynomial_for_spheres_2_3 result_type_for_sphere; typedef typename SK::Polynomial_1_3 result_type_for_plane; @@ -47,6 +46,32 @@ namespace CGAL { typedef typename SK::Polynomials_for_circle_3 result_type_for_circle; //using LinearFunctors::Get_equation::operator(); + template + struct result; + + template + struct result + { + typedef result_type_for_sphere type; + }; + + template + struct result + { + typedef result_type_for_plane type; + }; + + template + struct result + { + typedef result_type_for_line type; + }; + + template + struct result + { + typedef result_type_for_circle type; + }; result_type_for_sphere operator() ( const typename SK::Sphere_3 & s )