forked from boostorg/iterator
bugfix, borland workarounds
[SVN r846]
This commit is contained in:
@@ -126,7 +126,8 @@ namespace boost {
|
|||||||
mpl::logical_not< is_output_iterator<Tag> > >
|
mpl::logical_not< is_output_iterator<Tag> > >
|
||||||
{};
|
{};
|
||||||
|
|
||||||
#elif BOOST_WORKAROUND(__GNUC__, == 2 && __GNUC_MINOR__ == 95)
|
#elif BOOST_WORKAROUND(__GNUC__, == 2 && __GNUC_MINOR__ == 95) \
|
||||||
|
|| BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
|
||||||
|
|
||||||
template <class Tag>
|
template <class Tag>
|
||||||
struct is_new_iterator_tag
|
struct is_new_iterator_tag
|
||||||
@@ -282,11 +283,15 @@ namespace boost {
|
|||||||
template <class T>
|
template <class T>
|
||||||
struct is_boost_iterator_tag_impl
|
struct is_boost_iterator_tag_impl
|
||||||
{
|
{
|
||||||
|
typedef char (&yes)[1];
|
||||||
|
typedef char (&no)[2];
|
||||||
|
|
||||||
template <class R, class T>
|
template <class R, class T>
|
||||||
static char (& test(iterator_tag<R,T> const&) )[1];
|
static yes test(iterator_tag<R,T> const&);
|
||||||
static char (& test(...) )[2];
|
static no test(...);
|
||||||
|
|
||||||
static T inst;
|
static T inst;
|
||||||
BOOST_STATIC_CONSTANT(bool, value = sizeof(test(inst)) == 1);
|
BOOST_STATIC_CONSTANT(bool, value = sizeof(test(inst)) == sizeof(yes));
|
||||||
};
|
};
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
|
Reference in New Issue
Block a user