forked from boostorg/range
@ -24,13 +24,45 @@
|
|||||||
|
|
||||||
namespace boost
|
namespace boost
|
||||||
{
|
{
|
||||||
|
|
||||||
|
#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
|
||||||
|
|
||||||
|
namespace range_detail_vc7_1
|
||||||
|
{
|
||||||
|
template< typename C, typename Sig = void(C) >
|
||||||
|
struct range_iterator
|
||||||
|
{
|
||||||
|
typedef BOOST_RANGE_DEDUCED_TYPENAME
|
||||||
|
mpl::eval_if_c< is_const<C>::value,
|
||||||
|
range_const_iterator< typename remove_const<C>::type >,
|
||||||
|
range_mutable_iterator<C> >::type type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template< typename C, typename T >
|
||||||
|
struct range_iterator< C, void(T[]) >
|
||||||
|
{
|
||||||
|
typedef T* type;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
template< typename C >
|
template< typename C >
|
||||||
struct range_iterator
|
struct range_iterator
|
||||||
{
|
{
|
||||||
|
#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
|
||||||
|
|
||||||
|
typedef BOOST_RANGE_DEDUCED_TYPENAME
|
||||||
|
range_detail_vc7_1::range_iterator<C>::type type;
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
typedef BOOST_RANGE_DEDUCED_TYPENAME
|
typedef BOOST_RANGE_DEDUCED_TYPENAME
|
||||||
mpl::eval_if_c< is_const<C>::value,
|
mpl::eval_if_c< is_const<C>::value,
|
||||||
range_const_iterator< typename remove_const<C>::type >,
|
range_const_iterator< typename remove_const<C>::type >,
|
||||||
range_mutable_iterator<C> >::type type;
|
range_mutable_iterator<C> >::type type;
|
||||||
|
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace boost
|
} // namespace boost
|
||||||
|
Reference in New Issue
Block a user