diff options
Diffstat (limited to '3rdParty/Boost/src/boost/concept_check.hpp')
-rw-r--r-- | 3rdParty/Boost/src/boost/concept_check.hpp | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/3rdParty/Boost/src/boost/concept_check.hpp b/3rdParty/Boost/src/boost/concept_check.hpp index bf5a2af..292f37d 100644 --- a/3rdParty/Boost/src/boost/concept_check.hpp +++ b/3rdParty/Boost/src/boost/concept_check.hpp @@ -26,18 +26,24 @@ # include <boost/type_traits/is_void.hpp> # include <boost/mpl/assert.hpp> # include <boost/mpl/bool.hpp> # include <boost/detail/workaround.hpp> # include <boost/detail/iterator.hpp> # include <boost/concept/usage.hpp> # include <boost/concept/detail/concept_def.hpp> +#if (defined _MSC_VER) +# pragma warning( push ) +# pragma warning( disable : 4510 ) // default constructor could not be generated +# pragma warning( disable : 4610 ) // object 'class' can never be instantiated - user-defined constructor required +#endif + namespace boost { // // Backward compatibility // template <class Model> inline void function_requires(Model* = 0) @@ -169,23 +175,18 @@ namespace boost void const_constraints(const TT& a) { TT c(a); // require const copy constructor const TT* ptr = &a; // require const address of operator ignore_unused_variable_warning(c); ignore_unused_variable_warning(ptr); } TT b; }; -#if (defined _MSC_VER) -# pragma warning( push ) -# pragma warning( disable : 4510 ) // default constructor could not be generated -# pragma warning( disable : 4610 ) // object 'class' can never be instantiated - user-defined constructor required -#endif // The SGI STL version of Assignable requires copy constructor and operator= BOOST_concept(SGIAssignable,(TT)) { BOOST_CONCEPT_USAGE(SGIAssignable) { TT c(a); #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL a = b; // require assignment operator #endif const_constraints(b); @@ -196,21 +197,18 @@ namespace boost TT c(x); #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL a = x; // const required for argument to assignment #endif ignore_unused_variable_warning(c); } TT a; TT b; }; -#if (defined _MSC_VER) -# pragma warning( pop ) -#endif BOOST_concept(Convertible,(X)(Y)) { BOOST_CONCEPT_USAGE(Convertible) { Y y = x; ignore_unused_variable_warning(y); } private: X x; @@ -556,22 +554,22 @@ namespace boost private: TT i; }; BOOST_concept(Mutable_ForwardIterator,(TT)) : ForwardIterator<TT> { BOOST_CONCEPT_USAGE(Mutable_ForwardIterator) { - *i++ = *i; // require postincrement and assignment + *i++ = *j; // require postincrement and assignment } private: - TT i; + TT i, j; }; BOOST_concept(BidirectionalIterator,(TT)) : ForwardIterator<TT> { BOOST_CONCEPT_USAGE(BidirectionalIterator) { BOOST_CONCEPT_ASSERT((Convertible< BOOST_DEDUCED_TYPENAME BidirectionalIterator::iterator_category @@ -585,22 +583,22 @@ namespace boost TT i; }; BOOST_concept(Mutable_BidirectionalIterator,(TT)) : BidirectionalIterator<TT> , Mutable_ForwardIterator<TT> { BOOST_CONCEPT_USAGE(Mutable_BidirectionalIterator) { - *i-- = *i; // require postdecrement and assignment + *i-- = *j; // require postdecrement and assignment } private: - TT i; + TT i, j; }; BOOST_concept(RandomAccessIterator,(TT)) : BidirectionalIterator<TT> , Comparable<TT> { BOOST_CONCEPT_USAGE(RandomAccessIterator) { BOOST_CONCEPT_ASSERT((Convertible< @@ -874,19 +872,19 @@ namespace boost typename BackInsertionSequence::reference r = c.back(); ignore_unused_variable_warning(r); const_constraints(c); } private: void const_constraints(const S& cc) { typename BackInsertionSequence::const_reference r = cc.back(); ignore_unused_variable_warning(r); - }; + } S c; typename S::value_type t; }; BOOST_concept(AssociativeContainer,(C)) : ForwardContainer<C> , DefaultConstructible<C> { typedef typename C::key_type key_type; @@ -1071,13 +1069,17 @@ namespace boost C c; bool b; iterator i; const_iterator ci; size_type n; }; } // namespace boost +#if (defined _MSC_VER) +# pragma warning( pop ) +#endif + # include <boost/concept/detail/concept_undef.hpp> #endif // BOOST_CONCEPT_CHECKS_HPP |