diff options
Diffstat (limited to 'contrib/src/boost/concept/detail/msvc.hpp')
-rw-r--r-- | contrib/src/boost/concept/detail/msvc.hpp | 246 |
1 files changed, 123 insertions, 123 deletions
diff --git a/contrib/src/boost/concept/detail/msvc.hpp b/contrib/src/boost/concept/detail/msvc.hpp index 3e02c8a..078dd22 100644 --- a/contrib/src/boost/concept/detail/msvc.hpp +++ b/contrib/src/boost/concept/detail/msvc.hpp @@ -1,123 +1,123 @@ -// Copyright David Abrahams 2006. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
-# define BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
-
-# include <boost/preprocessor/cat.hpp>
-# include <boost/concept/detail/backward_compatibility.hpp>
-# include <boost/config.hpp>
-
-# ifdef BOOST_OLD_CONCEPT_SUPPORT
-# include <boost/concept/detail/has_constraints.hpp>
-# include <boost/mpl/if.hpp>
-# endif
-
-# ifdef BOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable:4100)
-# endif
-
-namespace boost { namespace concepts {
-
-
-template <class Model>
-struct check
-{
- virtual void failed(Model* x)
- {
- x->~Model();
- }
-};
-
-# ifndef BOOST_NO_PARTIAL_SPECIALIZATION
-struct failed {};
-template <class Model>
-struct check<failed ************ Model::************>
-{
- virtual void failed(Model* x)
- {
- x->~Model();
- }
-};
-# endif
-
-# ifdef BOOST_OLD_CONCEPT_SUPPORT
-
-namespace detail
-{
- // No need for a virtual function here, since evaluating
- // not_satisfied below will have already instantiated the
- // constraints() member.
- struct constraint {};
-}
-
-template <class Model>
-struct require
- : mpl::if_c<
- not_satisfied<Model>::value
- , detail::constraint
-# ifndef BOOST_NO_PARTIAL_SPECIALIZATION
- , check<Model>
-# else
- , check<failed ************ Model::************>
-# endif
- >::type
-{};
-
-# else
-
-template <class Model>
-struct require
-# ifndef BOOST_NO_PARTIAL_SPECIALIZATION
- : check<Model>
-# else
- : check<failed ************ Model::************>
-# endif
-{};
-
-# endif
-
-# if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
-
-//
-// The iterator library sees some really strange errors unless we
-// do things this way.
-//
-template <class Model>
-struct require<void(*)(Model)>
-{
- virtual void failed(Model*)
- {
- require<Model>();
- }
-};
-
-# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \
-enum \
-{ \
- BOOST_PP_CAT(boost_concept_check,__LINE__) = \
- sizeof(::boost::concepts::require<ModelFnPtr>) \
-}
-
-# else // Not vc-7.1
-
-template <class Model>
-require<Model>
-require_(void(*)(Model));
-
-# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \
-enum \
-{ \
- BOOST_PP_CAT(boost_concept_check,__LINE__) = \
- sizeof(::boost::concepts::require_((ModelFnPtr)0)) \
-}
-
-# endif
-}}
-
-# ifdef BOOST_MSVC
-# pragma warning(pop)
-# endif
-
-#endif // BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
+// Copyright David Abrahams 2006. Distributed under the Boost +// Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +#ifndef BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP +# define BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP + +# include <boost/preprocessor/cat.hpp> +# include <boost/concept/detail/backward_compatibility.hpp> +# include <boost/config.hpp> + +# ifdef BOOST_OLD_CONCEPT_SUPPORT +# include <boost/concept/detail/has_constraints.hpp> +# include <boost/mpl/if.hpp> +# endif + +# ifdef BOOST_MSVC +# pragma warning(push) +# pragma warning(disable:4100) +# endif + +namespace boost { namespace concepts { + + +template <class Model> +struct check +{ + virtual void failed(Model* x) + { + x->~Model(); + } +}; + +# ifndef BOOST_NO_PARTIAL_SPECIALIZATION +struct failed {}; +template <class Model> +struct check<failed ************ Model::************> +{ + virtual void failed(Model* x) + { + x->~Model(); + } +}; +# endif + +# ifdef BOOST_OLD_CONCEPT_SUPPORT + +namespace detail +{ + // No need for a virtual function here, since evaluating + // not_satisfied below will have already instantiated the + // constraints() member. + struct constraint {}; +} + +template <class Model> +struct require + : mpl::if_c< + not_satisfied<Model>::value + , detail::constraint +# ifndef BOOST_NO_PARTIAL_SPECIALIZATION + , check<Model> +# else + , check<failed ************ Model::************> +# endif + >::type +{}; + +# else + +template <class Model> +struct require +# ifndef BOOST_NO_PARTIAL_SPECIALIZATION + : check<Model> +# else + : check<failed ************ Model::************> +# endif +{}; + +# endif + +# if BOOST_WORKAROUND(BOOST_MSVC, == 1310) + +// +// The iterator library sees some really strange errors unless we +// do things this way. +// +template <class Model> +struct require<void(*)(Model)> +{ + virtual void failed(Model*) + { + require<Model>(); + } +}; + +# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ +enum \ +{ \ + BOOST_PP_CAT(boost_concept_check,__LINE__) = \ + sizeof(::boost::concepts::require<ModelFnPtr>) \ +} + +# else // Not vc-7.1 + +template <class Model> +require<Model> +require_(void(*)(Model)); + +# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ +enum \ +{ \ + BOOST_PP_CAT(boost_concept_check,__LINE__) = \ + sizeof(::boost::concepts::require_((ModelFnPtr)0)) \ +} + +# endif +}} + +# ifdef BOOST_MSVC +# pragma warning(pop) +# endif + +#endif // BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP |