1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #ifndef BOOST_ENABLE_IF_23022003THW_HPP
- #define BOOST_ENABLE_IF_23022003THW_HPP
- #include <boost/detail/workaround.hpp>
- #include <boost/mpl/identity.hpp>
- #include <boost/iterator/detail/config_def.hpp>
- namespace boost
- {
- namespace iterators
- {
-
-
-
- template<bool>
- struct enabled
- {
- template<typename T>
- struct base
- {
- typedef T type;
- };
- };
-
-
-
-
-
-
- template<>
- struct enabled<false>
- {
- template<typename T>
- struct base
- {
- #ifdef BOOST_NO_SFINAE
- typedef T type;
-
-
-
-
-
-
-
- #endif
- };
- };
- template <class Cond,
- class Return>
- struct enable_if
- # if !defined(BOOST_NO_SFINAE) && !defined(BOOST_NO_IS_CONVERTIBLE)
- : enabled<(Cond::value)>::template base<Return>
- # else
- : mpl::identity<Return>
- # endif
- {
- # if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
- typedef Return type;
- # endif
- };
- }
- }
- #include <boost/iterator/detail/config_undef.hpp>
- #endif
|