[iterators][relate] Fix Intel 11 compilation errors.

This commit is contained in:
Adam Wulkiewicz
2014-04-17 12:09:07 +02:00
parent a7f1521756
commit d4bcf8dcc8
4 changed files with 57 additions and 33 deletions

View File

@@ -468,7 +468,7 @@ struct check_dispatch< boost::tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> >
template <typename Matrix>
static inline bool apply(mask_type const& mask, Matrix const& matrix)
{
return check_dispatch_tuple<mask_type>::template apply(mask, matrix);
return check_dispatch_tuple<mask_type>::apply(mask, matrix);
}
};
@@ -480,7 +480,7 @@ struct check_dispatch< boost::tuples::cons<Head, Tail> >
template <typename Matrix>
static inline bool apply(mask_type const& mask, Matrix const& matrix)
{
return check_dispatch_tuple<mask_type>::template apply(mask, matrix);
return check_dispatch_tuple<mask_type>::apply(mask, matrix);
}
};

View File

@@ -11,7 +11,8 @@
#define BOOST_GEOMETRY_ITERATORS_CONCATENATE_ITERATOR_HPP
#include <boost/assert.hpp>
#include <boost/type_traits.hpp>
#include <boost/mpl/assert.hpp>
#include <boost/type_traits/is_convertible.hpp>
#include <boost/iterator.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/iterator/iterator_categories.hpp>
@@ -58,18 +59,26 @@ public:
(concatenate_iterator<OtherIt1, OtherIt2, OtherValue> const& other)
: m_it1(other.m_it1), m_end1(other.m_end1), m_it2(other.m_it2)
{
BOOST_STATIC_ASSERT
( boost::is_convertible<OtherIt1, Iterator1>::value
&& boost::is_convertible<OtherIt2, Iterator2>::value );
static const bool are_conv
= boost::is_convertible<OtherIt1, Iterator1>::value
&& boost::is_convertible<OtherIt2, Iterator2>::value;
BOOST_MPL_ASSERT_MSG((are_conv),
NOT_CONVERTIBLE,
(types<OtherIt1, OtherIt2>));
}
template <typename OtherIt1, typename OtherIt2, typename OtherValue>
concatenate_iterator
operator=(concatenate_iterator<OtherIt1, OtherIt2, OtherValue> const& other)
{
BOOST_STATIC_ASSERT
( boost::is_convertible<OtherIt1, Iterator1>::value
&& boost::is_convertible<OtherIt2, Iterator2>::value );
static const bool are_conv
= boost::is_convertible<OtherIt1, Iterator1>::value
&& boost::is_convertible<OtherIt2, Iterator2>::value;
BOOST_MPL_ASSERT_MSG((are_conv),
NOT_CONVERTIBLE,
(types<OtherIt1, OtherIt2>));
m_it1 = other.m_it1;
m_end1 = other.m_end1;

View File

@@ -11,7 +11,8 @@
#define BOOST_GEOMETRY_ITERATORS_FLATTEN_ITERATOR_HPP
#include <boost/assert.hpp>
#include <boost/type_traits.hpp>
#include <boost/mpl/assert.hpp>
#include <boost/type_traits/is_convertible.hpp>
#include <boost/iterator.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/iterator/iterator_categories.hpp>
@@ -85,15 +86,19 @@ public:
m_outer_end(other.m_outer_end),
m_inner_it(other.m_inner_it)
{
BOOST_STATIC_ASSERT( boost::is_convertible
<
OtherOuterIterator, OuterIterator
>::value
&& boost::is_convertible
<
OtherInnerIterator, InnerIterator
>::value );
static const bool are_conv
= boost::is_convertible
<
OtherOuterIterator, OuterIterator
>::value
&& boost::is_convertible
<
OtherInnerIterator, InnerIterator
>::value;
BOOST_MPL_ASSERT_MSG((are_conv),
NOT_CONVERTIBLE,
(types<OtherOuterIterator, OtherInnerIterator>));
}
template
@@ -113,14 +118,19 @@ public:
OtherAccessInnerEnd
> const& other)
{
BOOST_STATIC_ASSERT( boost::is_convertible
<
OtherOuterIterator, OuterIterator
>::value
&& boost::is_convertible
<
OtherInnerIterator, InnerIterator
>::value );
static const bool are_conv
= boost::is_convertible
<
OtherOuterIterator, OuterIterator
>::value
&& boost::is_convertible
<
OtherInnerIterator, InnerIterator
>::value;
BOOST_MPL_ASSERT_MSG((are_conv),
NOT_CONVERTIBLE,
(types<OtherOuterIterator, OtherInnerIterator>));
m_outer_it = other.m_outer_it;
m_outer_end = other.m_outer_end;

View File

@@ -10,6 +10,8 @@
#ifndef BOOST_GEOMETRY_ITERATORS_POINT_ITERATOR_HPP
#define BOOST_GEOMETRY_ITERATORS_POINT_ITERATOR_HPP
#include <boost/mpl/assert.hpp>
#include <boost/type_traits/is_convertible.hpp>
#include <boost/range.hpp>
#include <boost/geometry/core/exterior_ring.hpp>
@@ -241,12 +243,15 @@ public:
point_iterator(point_iterator<OtherGeometry> const& other)
: base(*other.base_ptr())
{
BOOST_STATIC_ASSERT
( boost::is_convertible
<
typename dispatch::point_iterator_type<OtherGeometry>::type,
typename dispatch::point_iterator_type<Geometry>::type
>::value );
static const bool is_conv
= boost::is_convertible<
typename dispatch::point_iterator_type<OtherGeometry>::type,
typename dispatch::point_iterator_type<Geometry>::type
>::value;
BOOST_MPL_ASSERT_MSG((is_conv),
NOT_CONVERTIBLE,
(point_iterator<OtherGeometry>));
}
};