62a63,65
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       Integer();   // at least 2.96 and 3.4.3 both need this :(
> #endif
81a85,87
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>     SignedInteger();   // at least 2.96 and 3.4.3 both need this :(
> #endif
97a104,106
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>     UnsignedInteger();   // at least 2.96 and 3.4.3 both need this :(
> #endif
120a130,132
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>     DefaultConstructible();   // at least 2.96 and 3.4.3 both need this :(
> #endif
128a141,143
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>     Assignable();   // at least 2.96 and 3.4.3 both need this :(
> #endif
146a162,164
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>     CopyConstructible();   // at least 2.96 and 3.4.3 both need this :(
> #endif
165a184,186
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>     SGIAssignable();   // at least 2.96 and 3.4.3 both need this :(
> #endif
186a208,210
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>     Convertible();   // at least 2.96 and 3.4.3 both need this :(
> #endif
211a236,238
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>     EqualityComparable();   // at least 2.96 and 3.4.3 both need this :(
> #endif
221a249,251
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>     LessThanComparable();   // at least 2.96 and 3.4.3 both need this :(
> #endif
231a262,264
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>     Comparable();   // at least 2.96 and 3.4.3 both need this :(
> #endif
241a275
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
244a279
>       NAME();                                                   \
250c285,296
<     }
---
>   }
> #else
> #define BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(OP,NAME)    \
>   BOOST_concept(NAME, (First)(Second))                          \
>   {                                                             \
>       ~NAME() { (void)constraints_(); }                         \
>      private:                                                   \
>         bool constraints_() { return a OP b; }                  \
>         First a;                                                \
>         Second b;                                               \
>   }
> #endif
251a298
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
254a302
>       NAME();                                               \
260c308,319
<     }
---
>   }
> #else
> #define BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(OP,NAME)    \
>   BOOST_concept(NAME, (Ret)(First)(Second))                 \
>   {                                                         \
>       ~NAME() { (void)constraints_(); }                     \
>   private:                                                  \
>       Ret constraints_() { return a OP b; }                 \
>       First a;                                              \
>       Second b;                                             \
>   }
> #endif
279a339,341
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       Generator();   // at least 2.96 and 3.4.3 both need this :(
> #endif
298d359
< 
300a362,364
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       UnaryFunction();   // at least 2.96 and 3.4.3 both need this :(
> #endif
321a386,388
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       BinaryFunction();   // at least 2.96 and 3.4.3 both need this :(
> #endif
342a410,412
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>     UnaryPredicate();   // at least 2.96 and 3.4.3 both need this :(
> #endif
352a423,425
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>     BinaryPredicate();   // at least 2.96 and 3.4.3 both need this :(
> #endif
365a439,441
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>     Const_BinaryPredicate();   // at least 2.96 and 3.4.3 both need this :(
> #endif
383a460,462
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       AdaptableGenerator();   // at least 2.96 and 3.4.3 both need this :(
> #endif
395a475,477
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       AdaptableUnaryFunction();   // at least 2.96 and 3.4.3 both need this :(
> #endif
414a497,499
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       AdaptableBinaryFunction();   // at least 2.96 and 3.4.3 both need this :(
> #endif
426c511,515
<   {};
---
>   {
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>     AdaptablePredicate();   // at least 2.96 and 3.4.3 both need this :(
> #endif
>   };
431c520,524
<   {};
---
>   {
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>     AdaptableBinaryPredicate();   // at least 2.96 and 3.4.3 both need this :(
> #endif
>   };
445a539,541
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       InputIterator();   // at least 2.96 and 3.4.3 both need this :(
> #endif
462a559,561
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>     OutputIterator();   // at least 2.96 and 3.4.3 both need this :(
> #endif
476a576,578
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       ForwardIterator();   // at least 2.96 and 3.4.3 both need this :(
> #endif
494a597,599
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       Mutable_ForwardIterator();   // at least 2.96 and 3.4.3 both need this :(
> #endif
504a610,612
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       BidirectionalIterator();   // at least 2.96 and 3.4.3 both need this :(
> #endif
522a631,633
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       Mutable_BidirectionalIterator();   // at least 2.96 and 3.4.3 both need this :(
> #endif
531d641
< 
535a646,648
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       RandomAccessIterator();   // at least 2.96 and 3.4.3 both need this :(
> #endif
560a674,676
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       Mutable_RandomAccessIterator();   // at least 2.96 and 3.4.3 both need this :(
> #endif
582a699,701
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       Container();   // at least 2.96 and 3.4.3 both need this :(
> #endif
609a729,731
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       Mutable_Container();   // at least 2.96 and 3.4.3 both need this :(
> #endif
629a752,754
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       ForwardContainer();   // at least 2.96 and 3.4.3 both need this :(
> #endif
642a768,770
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       Mutable_ForwardContainer();   // at least 2.96 and 3.4.3 both need this :(
> #endif
658a787,789
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       ReversibleContainer();   // at least 2.96 and 3.4.3 both need this :(
> #endif
683a815,817
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       Mutable_ReversibleContainer();   // at least 2.96 and 3.4.3 both need this :(
> #endif
702a837,839
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       RandomAccessContainer();   // at least 2.96 and 3.4.3 both need this :(
> #endif
729a867,869
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       Mutable_RandomAccessContainer();   // at least 2.96 and 3.4.3 both need this :(
> #endif
751a892,894
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       Sequence();   // at least 2.96 and 3.4.3 both need this :(
> #endif
788a932,934
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       FrontInsertionSequence();   // at least 2.96 and 3.4.3 both need this :(
> #endif
801a948,950
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       BackInsertionSequence();   // at least 2.96 and 3.4.3 both need this :(
> #endif
828a978,980
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       AssociativeContainer();   // at least 2.96 and 3.4.3 both need this :(
> #endif
864a1017,1019
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       UniqueAssociativeContainer();   // at least 2.96 and 3.4.3 both need this :(
> #endif
882a1038,1040
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       MultipleAssociativeContainer();   // at least 2.96 and 3.4.3 both need this :(
> #endif
901a1060,1062
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       SimpleAssociativeContainer();   // at least 2.96 and 3.4.3 both need this :(
> #endif
912a1074,1076
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       PairAssociativeContainer();   // at least 2.96 and 3.4.3 both need this :(
> #endif
926a1091,1093
> #if BOOST_WORKAROUND(__GNUC__, <= 3)
>       SortedAssociativeContainer();   // at least 2.96 and 3.4.3 both need this :(
> #endif
