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: | 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)
Change History (11)
comment:1 by , 8 years ago
Component: | None → core |
---|---|
Owner: | set to |
comment:2 by , 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 , 8 years ago
Component: | core → polygon |
---|---|
Owner: | changed from | to
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 , 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 , 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 , 8 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:7 by , 8 years ago
Resolution: | → wontfix |
---|---|
Status: | assigned → closed |
I am closing this one as suggested in the comment above. Please reopen if you think otherwise.
comment:8 by , 8 years ago
Resolution: | wontfix |
---|---|
Status: | closed → reopened |
Type: | Bugs → Patches |
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 , 8 years ago
Merged on github in github.com/boostorg/polygon/commit/634aa3de29d63dcf02a478ca2b5045c5e9ccb7e0
Should be closed therefore.
comment:10 by , 8 years ago
Milestone: | To Be Determined → Boost 1.58.0 |
---|---|
Resolution: | → fixed |
Severity: | Regression → Problem |
Status: | reopened → closed |
Thanks for the follow up.
Changed to "core" component since it appears to be the missing type in enable_if?