#include #include typedef CGAL::Exact_predicates_exact_constructions_kernel K; typedef K::Point_2 Point_2; typedef K::Segment_2 Segment_2; typedef K::Line_2 Line_2; typedef K::Intersect_2 Intersect_2; int main() { Segment_2 seg(Point_2(0,0), Point_2(2,2)); Line_2 lin(1,-1,0); CGAL::cpp11::result_of::type result = intersection(seg, lin); if (result) { if (const Segment_2* s = boost::get(&*result)) { std::cout << *s << std::endl; } else { const Point_2* p = boost::get(&*result); std::cout << *p << std::endl; } } return 0; }