Skip to content

Instantly share code, notes, and snippets.

@afabri
Created October 14, 2016 15:42
Show Gist options
  • Save afabri/1985e8714ec55edc833e236bddcae0fc to your computer and use it in GitHub Desktop.
Save afabri/1985e8714ec55edc833e236bddcae0fc to your computer and use it in GitHub Desktop.
Intel compiler ICE with CGAL::Circular_kernel_2 and boost::variant
#include <CGAL/Cartesian.h>
#include <CGAL/Algebraic_kernel_for_circles_2_2.h>
#include <CGAL/Circular_kernel_2.h>
int main()
{
typedef CGAL::Quotient<int> NT1;
typedef CGAL::Cartesian<NT1> Linear_k1;
typedef CGAL::Algebraic_kernel_for_circles_2_2<NT1> Algebraic_k1;
typedef CGAL::Circular_kernel_2<Linear_k1,Algebraic_k1> CK1;
CK1::Circular_arc_2 arc;
CK1::Circular_arc_point_2 poi;
boost::variant<CK1::Circular_arc_2,
CK1::Circular_arc_point_2
// , int
> var(arc);
return 0;
}
@afabri
Copy link
Author

afabri commented Oct 14, 2016

It compiles when there is the int.
When you remove it you get:
/usr/include/boost/type_traits/has_nothrow_copy.hpp(36): internal error: bad pointer
template struct has_nothrow_copy_constructor : public integral_constant<bool, BOOST_HAS_NOTHROW_COPY(T)>{};

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment