Ticket #4918: selfassign.patch
File selfassign.patch, 1.8 KB (added by , 12 years ago) |
---|
-
boost/concept_check.hpp
a b namespace boost 136 136 { 137 137 BOOST_CONCEPT_USAGE(Assignable) { 138 138 #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL 139 a = a; // require assignment operator139 a = b; // require assignment operator 140 140 #endif 141 const_constraints( a);141 const_constraints(b); 142 142 } 143 143 private: 144 void const_constraints(const TT& b) {144 void const_constraints(const TT& x) { 145 145 #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL 146 a = b; // const required for argument to assignment146 a = x; // const required for argument to assignment 147 147 #else 148 ignore_unused_variable_warning( b);148 ignore_unused_variable_warning(x); 149 149 #endif 150 150 } 151 151 private: 152 152 TT a; 153 TT b; 153 154 }; 154 155 155 156 … … namespace boost 180 181 BOOST_concept(SGIAssignable,(TT)) 181 182 { 182 183 BOOST_CONCEPT_USAGE(SGIAssignable) { 183 TT b(a);184 TT c(a); 184 185 #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL 185 a = a; // require assignment operator186 a = b; // require assignment operator 186 187 #endif 187 const_constraints( a);188 ignore_unused_variable_warning( b);188 const_constraints(b); 189 ignore_unused_variable_warning(c); 189 190 } 190 191 private: 191 void const_constraints(const TT& b) {192 TT c( b);192 void const_constraints(const TT& x) { 193 TT c(x); 193 194 #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL 194 a = b; // const required for argument to assignment195 a = x; // const required for argument to assignment 195 196 #endif 196 197 ignore_unused_variable_warning(c); 197 198 } 198 199 TT a; 200 TT b; 199 201 }; 200 202 #if (defined _MSC_VER) 201 203 # pragma warning( pop )