Applied patch - refs #4918; will merge to release after tests cycle

[SVN r67742]
This commit is contained in:
Marshall Clow
2011-01-07 00:23:47 +00:00
parent b4ff615db8
commit 15afb20c84

View File

@ -139,20 +139,21 @@ namespace boost
{ {
BOOST_CONCEPT_USAGE(Assignable) { BOOST_CONCEPT_USAGE(Assignable) {
#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
a = a; // require assignment operator a = b; // require assignment operator
#endif #endif
const_constraints(a); const_constraints(b);
} }
private: private:
void const_constraints(const TT& b) { void const_constraints(const TT& x) {
#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
a = b; // const required for argument to assignment a = x; // const required for argument to assignment
#else #else
ignore_unused_variable_warning(b); ignore_unused_variable_warning(x);
#endif #endif
} }
private: private:
TT a; TT a;
TT b;
}; };
@ -183,22 +184,23 @@ namespace boost
BOOST_concept(SGIAssignable,(TT)) BOOST_concept(SGIAssignable,(TT))
{ {
BOOST_CONCEPT_USAGE(SGIAssignable) { BOOST_CONCEPT_USAGE(SGIAssignable) {
TT b(a); TT c(a);
#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
a = a; // require assignment operator a = b; // require assignment operator
#endif #endif
const_constraints(a); const_constraints(b);
ignore_unused_variable_warning(b); ignore_unused_variable_warning(c);
} }
private: private:
void const_constraints(const TT& b) { void const_constraints(const TT& x) {
TT c(b); TT c(x);
#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
a = b; // const required for argument to assignment a = x; // const required for argument to assignment
#endif #endif
ignore_unused_variable_warning(c); ignore_unused_variable_warning(c);
} }
TT a; TT a;
TT b;
}; };
#if (defined _MSC_VER) #if (defined _MSC_VER)
# pragma warning( pop ) # pragma warning( pop )