Opened 8 years ago

Closed 8 years ago

#10531 closed Patches (fixed)

Upgrade to boost 1.56.0 breaks compilation of boost::polygon code

Reported by: fiesh@… Owned by: Andrii Sydorchuk
Milestone: Boost 1.58.0 Component: polygon
Version: Boost 1.56.0 Severity: Problem
Keywords: Cc:

Description

The following code compiled until 1.55.0. It stopped doing so from 1.56.0 on. I didn't mark the component as boost::polygon since it appears it wasn't changed and might be a problem related to something else.

#include <vector>
#include <boost/polygon/polygon.hpp>
int main()
{
	typedef boost::polygon::polygon_data<int> Polygon;
	typedef boost::polygon::polygon_set_data<int> PolygonSet;
	PolygonSet ps;
	std::vector<Polygon> output;
	ps.get(output);
}

My output (with gcc 4.8.3) is:

In file included from /usr/include/boost/polygon/polygon.hpp:15:0,
                 from t.cpp:3:
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/point_data.hpp:55:23: error: no matching function for call to 'assign(boost::polygon::point_data<int>&, const std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >&)'
     assign(*this, that);
                       ^
/usr/include/boost/polygon/point_data.hpp:55:23: note: candidates are:
In file included from /usr/include/boost/polygon/point_data.hpp:16:0,
                 from /usr/include/boost/polygon/polygon.hpp:15,
                 from t.cpp:3:
/usr/include/boost/polygon/point_concept.hpp:167:20: note: template<class PointType1, class PointType2> typename boost::enable_if<typename boost::polygon::gtl_and_3<boost::polygon::y_pt_assign, typename boost::polygon::is_mutable_point_concept<typename boost::polygon::geometry_concept<T>::type>::type, typename boost::polygon::is_point_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, PointType1>::type& boost::polygon::assign(PointType1&, const PointType2&)
 PointType1>::type& assign(PointType1& lvalue, const PointType2& rvalue) {
                    ^
/usr/include/boost/polygon/point_concept.hpp:167:20: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/point_concept.hpp: In substitution of 'template<class PointType1, class PointType2> typename boost::enable_if<typename boost::polygon::gtl_and_3<boost::polygon::y_pt_assign, typename boost::polygon::is_mutable_point_concept<typename boost::polygon::geometry_concept<T>::type>::type, typename boost::polygon::is_point_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, PointType1>::type& boost::polygon::assign(PointType1&, const PointType2&) [with PointType1 = boost::polygon::point_data<int>; PointType2 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/point_concept.hpp:167:20: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
In file included from /usr/include/boost/polygon/polygon_set_data.hpp:1001:0,
                 from /usr/include/boost/polygon/polygon.hpp:81,
                 from t.cpp:3:
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_set_concept.hpp:51:3: note: template<class polygon_set_type_1, class polygon_set_type_2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_set_type<T>::type, typename boost::polygon::is_any_polygon_set_type<polygon_set_type_2>::type>::type, polygon_set_type_1>::type& boost::polygon::assign(polygon_set_type_1&, const polygon_set_type_2&)
   assign(polygon_set_type_1& lvalue, const polygon_set_type_2& rvalue) {
   ^
/usr/include/boost/polygon/polygon_set_concept.hpp:51:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_set_concept.hpp: In substitution of 'template<class polygon_set_type_1, class polygon_set_type_2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_set_type<T>::type, typename boost::polygon::is_any_polygon_set_type<polygon_set_type_2>::type>::type, polygon_set_type_1>::type& boost::polygon::assign(polygon_set_type_1&, const polygon_set_type_2&) [with polygon_set_type_1 = boost::polygon::point_data<int>; polygon_set_type_2 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_set_concept.hpp:51:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
In file included from /usr/include/boost/polygon/polygon.hpp:76:0,
                 from t.cpp:3:
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_45_set_concept.hpp:51:3: note: template<class polygon_set_type_1, class polygon_set_type_2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::gtl_if<typename boost::polygon::is_mutable_polygon_45_set_type<T>::type>::type, typename boost::polygon::gtl_if<typename boost::polygon::is_polygon_45_or_90_set_type<polygon_set_type_2>::type>::type>::type, polygon_set_type_1>::type& boost::polygon::assign(polygon_set_type_1&, const polygon_set_type_2&)
   assign(polygon_set_type_1& lvalue, const polygon_set_type_2& rvalue) {
   ^
/usr/include/boost/polygon/polygon_45_set_concept.hpp:51:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_45_set_concept.hpp: In substitution of 'template<class polygon_set_type_1, class polygon_set_type_2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::gtl_if<typename boost::polygon::is_mutable_polygon_45_set_type<T>::type>::type, typename boost::polygon::gtl_if<typename boost::polygon::is_polygon_45_or_90_set_type<polygon_set_type_2>::type>::type>::type, polygon_set_type_1>::type& boost::polygon::assign(polygon_set_type_1&, const polygon_set_type_2&) [with polygon_set_type_1 = boost::polygon::point_data<int>; polygon_set_type_2 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_45_set_concept.hpp:51:3: error: no type named 'type' in 'struct boost::polygon::gtl_if<boost::polygon::gtl_no>'
In file included from /usr/include/boost/polygon/polygon.hpp:67:0,
                 from t.cpp:3:
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_90_set_concept.hpp:49:3: note: template<class polygon_set_type_1, class polygon_set_type_2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_90_set_type<T>::type, typename boost::polygon::is_polygon_90_set_type<polygon_set_type_2>::type>::type, polygon_set_type_1>::type& boost::polygon::assign(polygon_set_type_1&, const polygon_set_type_2&)
   assign(polygon_set_type_1& lvalue, const polygon_set_type_2& rvalue) {
   ^
/usr/include/boost/polygon/polygon_90_set_concept.hpp:49:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_90_set_concept.hpp: In substitution of 'template<class polygon_set_type_1, class polygon_set_type_2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_90_set_type<T>::type, typename boost::polygon::is_polygon_90_set_type<polygon_set_type_2>::type>::type, polygon_set_type_1>::type& boost::polygon::assign(polygon_set_type_1&, const polygon_set_type_2&) [with polygon_set_type_1 = boost::polygon::point_data<int>; polygon_set_type_2 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_90_set_concept.hpp:49:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
In file included from /usr/include/boost/polygon/polygon.hpp:47:0,
                 from t.cpp:3:
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:583:3: note: template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_any_mutable_polygon_type<T>::type, typename boost::polygon::is_rectangle_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&)
   assign(T1& polygon, const T2& rect) {
   ^
/usr/include/boost/polygon/polygon_traits.hpp:583:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_traits.hpp: In substitution of 'template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_any_mutable_polygon_type<T>::type, typename boost::polygon::is_rectangle_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&) [with T1 = boost::polygon::point_data<int>; T2 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:583:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:570:3: note: template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_90_with_holes_type<T>::type, typename boost::polygon::is_polygon_90_with_holes_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&)
   assign(T1& lvalue, const T2& rvalue) {
   ^
/usr/include/boost/polygon/polygon_traits.hpp:570:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_traits.hpp: In substitution of 'template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_90_with_holes_type<T>::type, typename boost::polygon::is_polygon_90_with_holes_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&) [with T1 = boost::polygon::point_data<int>; T2 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:570:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:559:3: note: template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_90_type<T>::type, typename boost::polygon::is_polygon_90_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&)
   assign(T1& lvalue, const T2& rvalue) {
   ^
/usr/include/boost/polygon/polygon_traits.hpp:559:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_traits.hpp: In substitution of 'template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_90_type<T>::type, typename boost::polygon::is_polygon_90_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&) [with T1 = boost::polygon::point_data<int>; T2 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:559:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:546:3: note: template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_45_with_holes_type<T>::type, typename boost::polygon::is_polygon_45_with_holes_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&)
   assign(T1& lvalue, const T2& rvalue) {
   ^
/usr/include/boost/polygon/polygon_traits.hpp:546:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_traits.hpp: In substitution of 'template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_45_with_holes_type<T>::type, typename boost::polygon::is_polygon_45_with_holes_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&) [with T1 = boost::polygon::point_data<int>; T2 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:546:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:535:3: note: template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_45_type<T>::type, typename boost::polygon::is_polygon_45_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&)
   assign(T1& lvalue, const T2& rvalue) {
   ^
/usr/include/boost/polygon/polygon_traits.hpp:535:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_traits.hpp: In substitution of 'template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_45_type<T>::type, typename boost::polygon::is_polygon_45_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&) [with T1 = boost::polygon::point_data<int>; T2 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:535:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:524:3: note: template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_with_holes_type<T>::type, typename boost::polygon::is_polygon_with_holes_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&)
   assign(T1& lvalue, const T2& rvalue) {
   ^
/usr/include/boost/polygon/polygon_traits.hpp:524:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_traits.hpp: In substitution of 'template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_with_holes_type<T>::type, typename boost::polygon::is_polygon_with_holes_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&) [with T1 = boost::polygon::point_data<int>; T2 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:524:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:513:3: note: template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_type<T>::type, typename boost::polygon::is_polygon_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&)
   assign(T1& lvalue, const T2& rvalue) {
   ^
/usr/include/boost/polygon/polygon_traits.hpp:513:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_traits.hpp: In substitution of 'template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_type<T>::type, typename boost::polygon::is_polygon_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&) [with T1 = boost::polygon::point_data<int>; T2 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:513:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
In file included from /usr/include/boost/polygon/segment_data.hpp:16:0,
                 from /usr/include/boost/polygon/polygon.hpp:32,
                 from t.cpp:3:
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/segment_concept.hpp:188:18: note: template<class Segment1, class Segment2> typename boost::enable_if<typename boost::polygon::gtl_and_3<boost::polygon::y_s_assign, typename boost::polygon::is_mutable_segment_concept<typename boost::polygon::geometry_concept<T>::type>::type, typename boost::polygon::is_segment_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, Segment1>::type& boost::polygon::assign(Segment1&, const Segment2&)
 Segment1>::type& assign(Segment1& segment1, const Segment2& segment2) {
                  ^
/usr/include/boost/polygon/segment_concept.hpp:188:18: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/segment_concept.hpp: In substitution of 'template<class Segment1, class Segment2> typename boost::enable_if<typename boost::polygon::gtl_and_3<boost::polygon::y_s_assign, typename boost::polygon::is_mutable_segment_concept<typename boost::polygon::geometry_concept<T>::type>::type, typename boost::polygon::is_segment_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, Segment1>::type& boost::polygon::assign(Segment1&, const Segment2&) [with Segment1 = boost::polygon::point_data<int>; Segment2 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/segment_concept.hpp:188:18: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
In file included from /usr/include/boost/polygon/polygon.hpp:29:0,
                 from t.cpp:3:
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/rectangle_concept.hpp:192:3: note: template<class rectangle_type_1, class rectangle_type_2> typename boost::enable_if<typename boost::polygon::gtl_and_3<boost::polygon::y_r_assign, typename boost::polygon::is_mutable_rectangle_concept<typename boost::polygon::geometry_concept<T>::type>::type, typename boost::polygon::is_rectangle_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, rectangle_type_1>::type& boost::polygon::assign(rectangle_type_1&, const rectangle_type_2&)
   assign(rectangle_type_1& lvalue, const rectangle_type_2& rvalue) {
   ^
/usr/include/boost/polygon/rectangle_concept.hpp:192:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/rectangle_concept.hpp: In substitution of 'template<class rectangle_type_1, class rectangle_type_2> typename boost::enable_if<typename boost::polygon::gtl_and_3<boost::polygon::y_r_assign, typename boost::polygon::is_mutable_rectangle_concept<typename boost::polygon::geometry_concept<T>::type>::type, typename boost::polygon::is_rectangle_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, rectangle_type_1>::type& boost::polygon::assign(rectangle_type_1&, const rectangle_type_2&) [with rectangle_type_1 = boost::polygon::point_data<int>; rectangle_type_2 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/rectangle_concept.hpp:192:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
In file included from /usr/include/boost/polygon/interval_data.hpp:16:0,
                 from /usr/include/boost/polygon/polygon.hpp:22,
                 from t.cpp:3:
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/interval_concept.hpp:168:10: note: template<class IntervalType1, class IntervalType2> typename boost::enable_if<typename boost::polygon::gtl_and_3<boost::polygon::y_i_assign, typename boost::polygon::is_mutable_interval_concept<typename boost::polygon::geometry_concept<T>::type>::type, typename boost::polygon::is_interval_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, IntervalType1>::type& boost::polygon::assign(IntervalType1&, const IntervalType2&)
 >::type& assign(IntervalType1& lvalue, const IntervalType2& rvalue) {
          ^
/usr/include/boost/polygon/interval_concept.hpp:168:10: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/interval_concept.hpp: In substitution of 'template<class IntervalType1, class IntervalType2> typename boost::enable_if<typename boost::polygon::gtl_and_3<boost::polygon::y_i_assign, typename boost::polygon::is_mutable_interval_concept<typename boost::polygon::geometry_concept<T>::type>::type, typename boost::polygon::is_interval_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, IntervalType1>::type& boost::polygon::assign(IntervalType1&, const IntervalType2&) [with IntervalType1 = boost::polygon::point_data<int>; IntervalType2 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/interval_concept.hpp:168:10: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
In file included from /usr/include/boost/polygon/polygon.hpp:15:0,
                 from t.cpp:3:
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/point_data.hpp:55:23: error: no matching function for call to 'assign(boost::polygon::point_data<int>&, const int&)'
     assign(*this, that);
                       ^
/usr/include/boost/polygon/point_data.hpp:55:23: note: candidates are:
In file included from /usr/include/boost/polygon/point_data.hpp:16:0,
                 from /usr/include/boost/polygon/polygon.hpp:15,
                 from t.cpp:3:
/usr/include/boost/polygon/point_concept.hpp:167:20: note: template<class PointType1, class PointType2> typename boost::enable_if<typename boost::polygon::gtl_and_3<boost::polygon::y_pt_assign, typename boost::polygon::is_mutable_point_concept<typename boost::polygon::geometry_concept<T>::type>::type, typename boost::polygon::is_point_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, PointType1>::type& boost::polygon::assign(PointType1&, const PointType2&)
 PointType1>::type& assign(PointType1& lvalue, const PointType2& rvalue) {
                    ^
/usr/include/boost/polygon/point_concept.hpp:167:20: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/point_concept.hpp: In substitution of 'template<class PointType1, class PointType2> typename boost::enable_if<typename boost::polygon::gtl_and_3<boost::polygon::y_pt_assign, typename boost::polygon::is_mutable_point_concept<typename boost::polygon::geometry_concept<T>::type>::type, typename boost::polygon::is_point_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, PointType1>::type& boost::polygon::assign(PointType1&, const PointType2&) [with PointType1 = boost::polygon::point_data<int>; PointType2 = int]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/point_concept.hpp:167:20: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
In file included from /usr/include/boost/polygon/polygon_set_data.hpp:1001:0,
                 from /usr/include/boost/polygon/polygon.hpp:81,
                 from t.cpp:3:
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_set_concept.hpp:51:3: note: template<class polygon_set_type_1, class polygon_set_type_2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_set_type<T>::type, typename boost::polygon::is_any_polygon_set_type<polygon_set_type_2>::type>::type, polygon_set_type_1>::type& boost::polygon::assign(polygon_set_type_1&, const polygon_set_type_2&)
   assign(polygon_set_type_1& lvalue, const polygon_set_type_2& rvalue) {
   ^
/usr/include/boost/polygon/polygon_set_concept.hpp:51:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_set_concept.hpp: In substitution of 'template<class polygon_set_type_1, class polygon_set_type_2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_set_type<T>::type, typename boost::polygon::is_any_polygon_set_type<polygon_set_type_2>::type>::type, polygon_set_type_1>::type& boost::polygon::assign(polygon_set_type_1&, const polygon_set_type_2&) [with polygon_set_type_1 = boost::polygon::point_data<int>; polygon_set_type_2 = int]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_set_concept.hpp:51:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
In file included from /usr/include/boost/polygon/polygon.hpp:76:0,
                 from t.cpp:3:
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_45_set_concept.hpp:51:3: note: template<class polygon_set_type_1, class polygon_set_type_2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::gtl_if<typename boost::polygon::is_mutable_polygon_45_set_type<T>::type>::type, typename boost::polygon::gtl_if<typename boost::polygon::is_polygon_45_or_90_set_type<polygon_set_type_2>::type>::type>::type, polygon_set_type_1>::type& boost::polygon::assign(polygon_set_type_1&, const polygon_set_type_2&)
   assign(polygon_set_type_1& lvalue, const polygon_set_type_2& rvalue) {
   ^
/usr/include/boost/polygon/polygon_45_set_concept.hpp:51:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_45_set_concept.hpp: In substitution of 'template<class polygon_set_type_1, class polygon_set_type_2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::gtl_if<typename boost::polygon::is_mutable_polygon_45_set_type<T>::type>::type, typename boost::polygon::gtl_if<typename boost::polygon::is_polygon_45_or_90_set_type<polygon_set_type_2>::type>::type>::type, polygon_set_type_1>::type& boost::polygon::assign(polygon_set_type_1&, const polygon_set_type_2&) [with polygon_set_type_1 = boost::polygon::point_data<int>; polygon_set_type_2 = int]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_45_set_concept.hpp:51:3: error: no type named 'type' in 'struct boost::polygon::gtl_if<boost::polygon::gtl_no>'
In file included from /usr/include/boost/polygon/polygon.hpp:67:0,
                 from t.cpp:3:
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_90_set_concept.hpp:49:3: note: template<class polygon_set_type_1, class polygon_set_type_2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_90_set_type<T>::type, typename boost::polygon::is_polygon_90_set_type<polygon_set_type_2>::type>::type, polygon_set_type_1>::type& boost::polygon::assign(polygon_set_type_1&, const polygon_set_type_2&)
   assign(polygon_set_type_1& lvalue, const polygon_set_type_2& rvalue) {
   ^
/usr/include/boost/polygon/polygon_90_set_concept.hpp:49:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_90_set_concept.hpp: In substitution of 'template<class polygon_set_type_1, class polygon_set_type_2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_90_set_type<T>::type, typename boost::polygon::is_polygon_90_set_type<polygon_set_type_2>::type>::type, polygon_set_type_1>::type& boost::polygon::assign(polygon_set_type_1&, const polygon_set_type_2&) [with polygon_set_type_1 = boost::polygon::point_data<int>; polygon_set_type_2 = int]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_90_set_concept.hpp:49:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
In file included from /usr/include/boost/polygon/polygon.hpp:47:0,
                 from t.cpp:3:
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:583:3: note: template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_any_mutable_polygon_type<T>::type, typename boost::polygon::is_rectangle_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&)
   assign(T1& polygon, const T2& rect) {
   ^
/usr/include/boost/polygon/polygon_traits.hpp:583:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_traits.hpp: In substitution of 'template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_any_mutable_polygon_type<T>::type, typename boost::polygon::is_rectangle_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&) [with T1 = boost::polygon::point_data<int>; T2 = int]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:583:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:570:3: note: template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_90_with_holes_type<T>::type, typename boost::polygon::is_polygon_90_with_holes_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&)
   assign(T1& lvalue, const T2& rvalue) {
   ^
/usr/include/boost/polygon/polygon_traits.hpp:570:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_traits.hpp: In substitution of 'template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_90_with_holes_type<T>::type, typename boost::polygon::is_polygon_90_with_holes_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&) [with T1 = boost::polygon::point_data<int>; T2 = int]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:570:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:559:3: note: template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_90_type<T>::type, typename boost::polygon::is_polygon_90_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&)
   assign(T1& lvalue, const T2& rvalue) {
   ^
/usr/include/boost/polygon/polygon_traits.hpp:559:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_traits.hpp: In substitution of 'template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_90_type<T>::type, typename boost::polygon::is_polygon_90_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&) [with T1 = boost::polygon::point_data<int>; T2 = int]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:559:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:546:3: note: template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_45_with_holes_type<T>::type, typename boost::polygon::is_polygon_45_with_holes_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&)
   assign(T1& lvalue, const T2& rvalue) {
   ^
/usr/include/boost/polygon/polygon_traits.hpp:546:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_traits.hpp: In substitution of 'template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_45_with_holes_type<T>::type, typename boost::polygon::is_polygon_45_with_holes_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&) [with T1 = boost::polygon::point_data<int>; T2 = int]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:546:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:535:3: note: template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_45_type<T>::type, typename boost::polygon::is_polygon_45_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&)
   assign(T1& lvalue, const T2& rvalue) {
   ^
/usr/include/boost/polygon/polygon_traits.hpp:535:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_traits.hpp: In substitution of 'template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_45_type<T>::type, typename boost::polygon::is_polygon_45_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&) [with T1 = boost::polygon::point_data<int>; T2 = int]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:535:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:524:3: note: template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_with_holes_type<T>::type, typename boost::polygon::is_polygon_with_holes_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&)
   assign(T1& lvalue, const T2& rvalue) {
   ^
/usr/include/boost/polygon/polygon_traits.hpp:524:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_traits.hpp: In substitution of 'template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_with_holes_type<T>::type, typename boost::polygon::is_polygon_with_holes_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&) [with T1 = boost::polygon::point_data<int>; T2 = int]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:524:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:513:3: note: template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_type<T>::type, typename boost::polygon::is_polygon_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&)
   assign(T1& lvalue, const T2& rvalue) {
   ^
/usr/include/boost/polygon/polygon_traits.hpp:513:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/polygon_traits.hpp: In substitution of 'template<class T1, class T2> typename boost::enable_if<typename boost::polygon::gtl_and<typename boost::polygon::is_mutable_polygon_type<T>::type, typename boost::polygon::is_polygon_type<T2>::type>::type, T1>::type& boost::polygon::assign(T1&, const T2&) [with T1 = boost::polygon::point_data<int>; T2 = int]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/polygon_traits.hpp:513:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
In file included from /usr/include/boost/polygon/segment_data.hpp:16:0,
                 from /usr/include/boost/polygon/polygon.hpp:32,
                 from t.cpp:3:
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/segment_concept.hpp:188:18: note: template<class Segment1, class Segment2> typename boost::enable_if<typename boost::polygon::gtl_and_3<boost::polygon::y_s_assign, typename boost::polygon::is_mutable_segment_concept<typename boost::polygon::geometry_concept<T>::type>::type, typename boost::polygon::is_segment_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, Segment1>::type& boost::polygon::assign(Segment1&, const Segment2&)
 Segment1>::type& assign(Segment1& segment1, const Segment2& segment2) {
                  ^
/usr/include/boost/polygon/segment_concept.hpp:188:18: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/segment_concept.hpp: In substitution of 'template<class Segment1, class Segment2> typename boost::enable_if<typename boost::polygon::gtl_and_3<boost::polygon::y_s_assign, typename boost::polygon::is_mutable_segment_concept<typename boost::polygon::geometry_concept<T>::type>::type, typename boost::polygon::is_segment_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, Segment1>::type& boost::polygon::assign(Segment1&, const Segment2&) [with Segment1 = boost::polygon::point_data<int>; Segment2 = int]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/segment_concept.hpp:188:18: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
In file included from /usr/include/boost/polygon/polygon.hpp:29:0,
                 from t.cpp:3:
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/rectangle_concept.hpp:192:3: note: template<class rectangle_type_1, class rectangle_type_2> typename boost::enable_if<typename boost::polygon::gtl_and_3<boost::polygon::y_r_assign, typename boost::polygon::is_mutable_rectangle_concept<typename boost::polygon::geometry_concept<T>::type>::type, typename boost::polygon::is_rectangle_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, rectangle_type_1>::type& boost::polygon::assign(rectangle_type_1&, const rectangle_type_2&)
   assign(rectangle_type_1& lvalue, const rectangle_type_2& rvalue) {
   ^
/usr/include/boost/polygon/rectangle_concept.hpp:192:3: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/rectangle_concept.hpp: In substitution of 'template<class rectangle_type_1, class rectangle_type_2> typename boost::enable_if<typename boost::polygon::gtl_and_3<boost::polygon::y_r_assign, typename boost::polygon::is_mutable_rectangle_concept<typename boost::polygon::geometry_concept<T>::type>::type, typename boost::polygon::is_rectangle_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, rectangle_type_1>::type& boost::polygon::assign(rectangle_type_1&, const rectangle_type_2&) [with rectangle_type_1 = boost::polygon::point_data<int>; rectangle_type_2 = int]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/rectangle_concept.hpp:192:3: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'
In file included from /usr/include/boost/polygon/interval_data.hpp:16:0,
                 from /usr/include/boost/polygon/polygon.hpp:22,
                 from t.cpp:3:
/usr/include/boost/polygon/point_data.hpp: In instantiation of 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]':
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   required from 'struct std::is_convertible<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> > >'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:116:12:   [ skipping 19 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/interval_concept.hpp:168:10: note: template<class IntervalType1, class IntervalType2> typename boost::enable_if<typename boost::polygon::gtl_and_3<boost::polygon::y_i_assign, typename boost::polygon::is_mutable_interval_concept<typename boost::polygon::geometry_concept<T>::type>::type, typename boost::polygon::is_interval_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, IntervalType1>::type& boost::polygon::assign(IntervalType1&, const IntervalType2&)
 >::type& assign(IntervalType1& lvalue, const IntervalType2& rvalue) {
          ^
/usr/include/boost/polygon/interval_concept.hpp:168:10: note:   template argument deduction/substitution failed:
/usr/include/boost/polygon/interval_concept.hpp: In substitution of 'template<class IntervalType1, class IntervalType2> typename boost::enable_if<typename boost::polygon::gtl_and_3<boost::polygon::y_i_assign, typename boost::polygon::is_mutable_interval_concept<typename boost::polygon::geometry_concept<T>::type>::type, typename boost::polygon::is_interval_concept<typename boost::polygon::geometry_concept<PointType2>::type>::type>::type, IntervalType1>::type& boost::polygon::assign(IntervalType1&, const IntervalType2&) [with IntervalType1 = boost::polygon::point_data<int>; IntervalType2 = int]':
/usr/include/boost/polygon/point_data.hpp:55:23:   required from 'boost::polygon::point_data<T>& boost::polygon::point_data<T>::operator=(const PointType&) [with PointType = int; T = int]'
/usr/include/boost/polygon/point_data.hpp:50:11:   required from 'boost::polygon::point_data<T>::point_data(const PointType&) [with PointType = int; T = int]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/bits/stl_pair.h:125:39:   required from 'constexpr std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >; _U2 = int; <template-parameter-2-3> = void; _T1 = boost::polygon::point_data<int>; _T2 = boost::polygon::point_data<int>]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1305:35:   required by substitution of 'template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >] [with _From1 = const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&; _To1 = std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >]'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1312:50:   required from 'constexpr const bool std::__is_convertible_helper<const std::pair<std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, int>&, std::pair<boost::polygon::point_data<int>, boost::polygon::point_data<int> >, false>::value'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/include/g++-v4/type_traits:1317:12:   [ skipping 20 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1682:11:   required from 'iT boost::polygon::polygon_arbitrary_formation<Unit>::processEvent_(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp:1361:64:   required from 'void boost::polygon::polygon_arbitrary_formation<Unit>::scan(cT&, iT, iT) [with cT = std::vector<boost::polygon::polygon_data<int> >; iT = __gnu_cxx::__normal_iterator<boost::polygon::scanline_base<int>::vertex_half_edge*, std::vector<boost::polygon::scanline_base<int>::vertex_half_edge, std::allocator<boost::polygon::scanline_base<int>::vertex_half_edge> > >; Unit = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:798:7:   required from 'void boost::polygon::polygon_set_data<T>::get_fracture(output_container&, bool, concept_type) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; concept_type = boost::polygon::polygon_concept; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:781:37:   required from 'void boost::polygon::polygon_set_data<T>::get_dispatch(output_container&, boost::polygon::polygon_concept) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
/usr/include/boost/polygon/polygon_set_data.hpp:233:100:   required from 'void boost::polygon::polygon_set_data<T>::get(output_container&) const [with output_container = std::vector<boost::polygon::polygon_data<int> >; T = int]'
t.cpp:11:15:   required from here
/usr/include/boost/polygon/interval_concept.hpp:168:10: error: no type named 'type' in 'struct boost::enable_if<mpl_::bool_<false>, boost::polygon::point_data<int> >'

Attachments (1)

boost_polygon.patch (739 bytes ) - added by fiesh@… 8 years ago.
Patch to work around the GCC bug

Download all attachments as: .zip

Change History (11)

comment:1 by anonymous, 8 years ago

Component: Nonecore
Owner: set to Peter Dimov

Changed to "core" component since it appears to be the missing type in enable_if?

comment:2 by Peter Dimov, 8 years ago

I haven't much idea what's causing this error, but I doubt that it's anything to do with core. The lack of ::type is the whole point of enable_if, and enable_if hasn't changed.

comment:3 by fiesh@…, 8 years ago

Component: corepolygon
Owner: changed from Peter Dimov to Lucanus Simonson

I suppose it makes sense to reassign this to boost::polygon then in lack of a better alternative. Thanks for the input.

comment:4 by fiesh@…, 8 years ago

It also does not work with gcc 4.9.1. However, it does compile successfully with clang 3.4.2. Could it be a compiler bug that is triggered only now?

comment:5 by fiesh@…, 8 years ago

Appears to be a compiler bug that just happened to be triggered by 1.56.0: [Can't add link here, gcc bug #63356, because captcha is broken on this site and links are treated as spam]

Please close!

comment:6 by Andrii Sydorchuk, 8 years ago

Owner: changed from Lucanus Simonson to Andrii Sydorchuk
Status: newassigned

comment:7 by Andrii Sydorchuk, 8 years ago

Resolution: wontfix
Status: assignedclosed

I am closing this one as suggested in the comment above. Please reopen if you think otherwise.

by fiesh@…, 8 years ago

Attachment: boost_polygon.patch added

Patch to work around the GCC bug

comment:8 by fiesh@…, 8 years ago

Resolution: wontfix
Status: closedreopened
Type: BugsPatches

The above patch was mailed to me by Alexander Kalugin. It works around the GCC bug by marking point_data() explicit when GNUC is defined. It would be great if the patch could be accepted to mitigate the GCC problem here.

comment:9 by fiesh@…, 8 years ago

Merged on github in github.com/boostorg/polygon/commit/634aa3de29d63dcf02a478ca2b5045c5e9ccb7e0

Should be closed therefore.

comment:10 by Andrii Sydorchuk, 8 years ago

Milestone: To Be DeterminedBoost 1.58.0
Resolution: fixed
Severity: RegressionProblem
Status: reopenedclosed

Thanks for the follow up.

Note: See TracTickets for help on using tickets.