Disable interop properly for vc6/7 using known SFINAE capabilities.

[SVN r24209]
This commit is contained in:
Dave Abrahams
2004-07-31 18:10:00 +00:00
parent 1a9677d9dc
commit dd72d599c8
4 changed files with 40 additions and 6 deletions

View File

@ -56,7 +56,7 @@ namespace boost
typedef bool type;
};
};
//
// enable if for use in operator implementation.
//
@ -66,6 +66,18 @@ namespace boost
, class Return
>
struct enable_if_interoperable
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
{
typedef typename mpl::if_<
mpl::or_<
is_convertible<Facade1, Facade2>
, is_convertible<Facade2, Facade1>
>
, Return
, int[3]
>::type type;
};
#else
: ::boost::iterators::enable_if<
mpl::or_<
is_convertible<Facade1, Facade2>
@ -73,8 +85,8 @@ namespace boost
>
, Return
>
{
};
{};
#endif
//
// Generates associated types for an iterator_facade with the