Update of /cvsroot/boost/boost/boost
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv8095

Modified Files:
        concept_check.hpp 
Log Message:
Deal with GCC problems in updated concepts library

Index: concept_check.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/concept_check.hpp,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -d -r1.40 -r1.41
--- concept_check.hpp   2 Jun 2006 15:01:19 -0000       1.40
+++ concept_check.hpp   27 Jun 2006 15:01:14 -0000      1.41
@@ -60,6 +60,9 @@
   //
   BOOST_concept(Integer, (T))
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      Integer();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~Integer()
         { 
             x.error_type_must_be_an_integer_type();
@@ -79,6 +82,9 @@
   // etc.
 
   BOOST_concept(SignedInteger,(T)) {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+    SignedInteger();   // at least 2.96 and 3.4.3 both need this :(
+#endif
     ~SignedInteger() { 
       x.error_type_must_be_a_signed_integer_type();
     }
@@ -95,6 +101,9 @@
 #endif      
 
   BOOST_concept(UnsignedInteger,(T)) {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+    UnsignedInteger();   // at least 2.96 and 3.4.3 both need this :(
+#endif
     ~UnsignedInteger() { 
       x.error_type_must_be_an_unsigned_integer_type();
     }
@@ -118,6 +127,9 @@
 
   BOOST_concept(DefaultConstructible,(TT))
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+    DefaultConstructible();   // at least 2.96 and 3.4.3 both need this :(
+#endif
     ~DefaultConstructible() {
       TT a;               // require default constructor
       ignore_unused_variable_warning(a);
@@ -127,7 +139,7 @@
   BOOST_concept(Assignable,(TT))
   {
 #if BOOST_WORKAROUND(__GNUC__, <= 3)
-    Assignable() { }
+    Assignable();   // at least 2.96 and 3.4.3 both need this :(
 #endif
 
     ~Assignable() {
@@ -148,6 +160,10 @@
 
   BOOST_concept(CopyConstructible,(TT))
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+    CopyConstructible();   // at least 2.96 and 3.4.3 both need this :(
+#endif
+
     ~CopyConstructible() {
       TT a(b);            // require copy constructor
       TT* ptr = &a;       // require address of operator
@@ -167,6 +183,10 @@
   // The SGI STL version of Assignable requires copy constructor and operator=
   BOOST_concept(SGIAssignable,(TT))
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+    SGIAssignable();   // at least 2.96 and 3.4.3 both need this :(
+#endif
+
     ~SGIAssignable() {
       TT b(a);
 #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
@@ -188,6 +208,9 @@
 
   BOOST_concept(Convertible,(X)(Y))
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+    Convertible();   // at least 2.96 and 3.4.3 both need this :(
+#endif
     ~Convertible() {
       Y y = x;
       ignore_unused_variable_warning(y);
@@ -213,6 +236,9 @@
 
   BOOST_concept(EqualityComparable,(TT))
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+    EqualityComparable();   // at least 2.96 and 3.4.3 both need this :(
+#endif
     ~EqualityComparable() {
       require_boolean_expr(a == b);
       require_boolean_expr(a != b);
@@ -223,6 +249,9 @@
 
   BOOST_concept(LessThanComparable,(TT))
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+    LessThanComparable();   // at least 2.96 and 3.4.3 both need this :(
+#endif
     ~LessThanComparable() {
       require_boolean_expr(a < b);
     }
@@ -233,6 +262,9 @@
   // This is equivalent to SGI STL's LessThanComparable.
   BOOST_concept(Comparable,(TT))
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+    Comparable();   // at least 2.96 and 3.4.3 both need this :(
+#endif
     ~Comparable() {
       require_boolean_expr(a < b);
       require_boolean_expr(a > b);
@@ -243,25 +275,51 @@
     TT a, b;
   };
 
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
 #define BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(OP,NAME)    \
   BOOST_concept(NAME, (First)(Second))                          \
   {                                                             \
+      NAME();                                                   \
       ~NAME() { (void)constraints_(); }                         \
      private:                                                   \
         bool constraints_() { return a OP b; }                  \
         First a;                                                \
         Second b;                                               \
-    }
+  }
+#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
 
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
 #define BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(OP,NAME)    \
   BOOST_concept(NAME, (Ret)(First)(Second))                 \
   {                                                         \
+      NAME();                                               \
       ~NAME() { (void)constraints_(); }                     \
   private:                                                  \
       Ret constraints_() { return a OP b; }                 \
       First a;                                              \
       Second b;                                             \
-    }
+  }
+#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
 
   BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(==, EqualOp);
   BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(!=, NotEqualOp);
@@ -281,6 +339,9 @@
 
   BOOST_concept(Generator,(Func)(Return))
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      Generator();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~Generator() { test(is_void<Return>()); }
       
    private:
@@ -299,9 +360,11 @@
       Func f;
   };
 
-
   BOOST_concept(UnaryFunction,(Func)(Return)(Arg))
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      UnaryFunction();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~UnaryFunction() { test(is_void<Return>()); }
       
    private:
@@ -323,6 +386,9 @@
 
   BOOST_concept(BinaryFunction,(Func)(Return)(First)(Second))
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      BinaryFunction();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~BinaryFunction() { test(is_void<Return>()); }
    private:
       void test(boost::mpl::false_)
@@ -344,6 +410,9 @@
 
   BOOST_concept(UnaryPredicate,(Func)(Arg))
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+    UnaryPredicate();   // at least 2.96 and 3.4.3 both need this :(
+#endif
     ~UnaryPredicate() {
       require_boolean_expr(f(arg)); // require operator() returning bool
     }
@@ -354,6 +423,9 @@
 
   BOOST_concept(BinaryPredicate,(Func)(First)(Second))
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+    BinaryPredicate();   // at least 2.96 and 3.4.3 both need this :(
+#endif
     ~BinaryPredicate() {
       require_boolean_expr(f(a, b)); // require operator() returning bool
     }
@@ -367,6 +439,9 @@
   BOOST_concept(Const_BinaryPredicate,(Func)(First)(Second))
     : BinaryPredicate<Func, First, Second>
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+    Const_BinaryPredicate();   // at least 2.96 and 3.4.3 both need this :(
+#endif
     ~Const_BinaryPredicate() { 
       const_constraints(f);
     }
@@ -385,6 +460,9 @@
   {
       typedef typename Func::result_type result_type;
       
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      AdaptableGenerator();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~AdaptableGenerator()
       {
           BOOST_CONCEPT_ASSERT((Convertible<result_type, Return>));
@@ -397,6 +475,9 @@
       typedef typename Func::argument_type argument_type;
       typedef typename Func::result_type result_type;
 
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      AdaptableUnaryFunction();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~AdaptableUnaryFunction()
       {
           BOOST_CONCEPT_ASSERT((Convertible<result_type, Return>));
@@ -416,6 +497,9 @@
       typedef typename Func::second_argument_type second_argument_type;
       typedef typename Func::result_type result_type;
       
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      AdaptableBinaryFunction();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~AdaptableBinaryFunction()
       {
           BOOST_CONCEPT_ASSERT((Convertible<result_type, Return>));
@@ -427,12 +511,20 @@
   BOOST_concept(AdaptablePredicate,(Func)(Arg))
     : UnaryPredicate<Func, Arg>
     , AdaptableUnaryFunction<Func, bool, Arg>
-  {};
+  {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+    AdaptablePredicate();   // at least 2.96 and 3.4.3 both need this :(
+#endif
+  };
 
   BOOST_concept(AdaptableBinaryPredicate,(Func)(First)(Second))
     : BinaryPredicate<Func, First, Second>
     , AdaptableBinaryFunction<Func, bool, First, Second>
-  {};
+  {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+    AdaptableBinaryPredicate();   // at least 2.96 and 3.4.3 both need this :(
+#endif
+  };
 
   //===========================================================================
   // Iterator Concepts
@@ -447,6 +539,9 @@
       typedef typename boost::detail::iterator_traits<TT>::pointer pointer;
       typedef typename boost::detail::iterator_traits<TT>::iterator_category 
iterator_category;
 
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      InputIterator();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~InputIterator()
       {
         BOOST_CONCEPT_ASSERT((SignedInteger<difference_type>));
@@ -464,6 +559,9 @@
   BOOST_concept(OutputIterator,(TT)(ValueT))
     : Assignable<TT>
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+    OutputIterator();   // at least 2.96 and 3.4.3 both need this :(
+#endif
     ~OutputIterator() {
       
       ++i;                // require preincrement operator
@@ -478,6 +576,9 @@
   BOOST_concept(ForwardIterator,(TT))
     : InputIterator<TT>
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      ForwardIterator();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~ForwardIterator()
       {
           BOOST_CONCEPT_ASSERT((Convertible<
@@ -496,6 +597,9 @@
   BOOST_concept(Mutable_ForwardIterator,(TT))
     : ForwardIterator<TT>
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      Mutable_ForwardIterator();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~Mutable_ForwardIterator() {
         *i++ = *i;         // require postincrement and assignment
       }
@@ -506,6 +610,9 @@
   BOOST_concept(BidirectionalIterator,(TT))
     : ForwardIterator<TT>
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      BidirectionalIterator();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~BidirectionalIterator()
       {
           BOOST_CONCEPT_ASSERT((Convertible<
@@ -524,6 +631,9 @@
     : BidirectionalIterator<TT>
     , Mutable_ForwardIterator<TT>
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      Mutable_BidirectionalIterator();   // at least 2.96 and 3.4.3 both need 
this :(
+#endif
       ~Mutable_BidirectionalIterator()
       {
           *i-- = *i;                  // require postdecrement and assignment
@@ -532,11 +642,13 @@
       TT i;
   };
 
-
   BOOST_concept(RandomAccessIterator,(TT))
     : BidirectionalIterator<TT>
     , Comparable<TT>
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      RandomAccessIterator();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~RandomAccessIterator()
       {
           BOOST_CONCEPT_ASSERT((Convertible<
@@ -562,6 +674,9 @@
     : RandomAccessIterator<TT>
     , Mutable_BidirectionalIterator<TT>
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      Mutable_RandomAccessIterator();   // at least 2.96 and 3.4.3 both need 
this :(
+#endif
       ~Mutable_RandomAccessIterator()
       {
           i[n] = *i;                  // require element access and assignment
@@ -584,6 +699,9 @@
     typedef typename C::const_pointer const_pointer;
     typedef typename C::const_iterator const_iterator;
 
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      Container();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~Container()
       {
           BOOST_CONCEPT_ASSERT((InputIterator<const_iterator>));
@@ -611,6 +729,9 @@
       typedef typename C::iterator iterator;
       typedef typename C::pointer pointer;
     
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      Mutable_Container();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~Mutable_Container()
       {
           BOOST_CONCEPT_ASSERT((
@@ -631,6 +752,9 @@
   BOOST_concept(ForwardContainer,(C))
     : Container<C>
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      ForwardContainer();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~ForwardContainer()
       {
           BOOST_CONCEPT_ASSERT((
@@ -644,6 +768,9 @@
     : ForwardContainer<C>
     , Mutable_Container<C>
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      Mutable_ForwardContainer();   // at least 2.96 and 3.4.3 both need this 
:(
+#endif
       ~Mutable_ForwardContainer()
       {
           BOOST_CONCEPT_ASSERT((
@@ -660,6 +787,9 @@
         C::const_reverse_iterator
       const_reverse_iterator;
 
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      ReversibleContainer();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~ReversibleContainer()
       {
           BOOST_CONCEPT_ASSERT((
@@ -685,6 +815,9 @@
   {
       typedef typename C::reverse_iterator reverse_iterator;
       
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      Mutable_ReversibleContainer();   // at least 2.96 and 3.4.3 both need 
this :(
+#endif
       ~Mutable_ReversibleContainer()
       {
           typedef typename Mutable_ForwardContainer<C>::iterator iterator;
@@ -704,6 +837,9 @@
       typedef typename C::size_type size_type;
       typedef typename C::const_reference const_reference;
 
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      RandomAccessContainer();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~RandomAccessContainer()
       {
           BOOST_CONCEPT_ASSERT((
@@ -731,6 +867,9 @@
    private:
       typedef Mutable_RandomAccessContainer self;
    public:
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      Mutable_RandomAccessContainer();   // at least 2.96 and 3.4.3 both need 
this :(
+#endif
       ~Mutable_RandomAccessContainer()
       {
           BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator<typename 
self::iterator>));
@@ -753,6 +892,9 @@
       // ... so why aren't we following the standard?  --DWA
     , DefaultConstructible<S>
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      Sequence();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~Sequence()
       {
           S 
@@ -790,6 +932,9 @@
   BOOST_concept(FrontInsertionSequence,(S))
     : Sequence<S>
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      FrontInsertionSequence();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~FrontInsertionSequence()
       {
           c.push_front(t);
@@ -803,6 +948,9 @@
   BOOST_concept(BackInsertionSequence,(S))
     : Sequence<S>
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      BackInsertionSequence();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~BackInsertionSequence()
       {
           c.push_back(t);
@@ -830,6 +978,9 @@
       typedef typename C::value_compare value_compare;
       typedef typename C::iterator iterator;
 
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      AssociativeContainer();   // at least 2.96 and 3.4.3 both need this :(
+#endif
       ~AssociativeContainer()
       {
           i = c.find(k);
@@ -866,6 +1017,9 @@
   BOOST_concept(UniqueAssociativeContainer,(C))
     : AssociativeContainer<C>
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      UniqueAssociativeContainer();   // at least 2.96 and 3.4.3 both need 
this :(
+#endif
       ~UniqueAssociativeContainer()
       {
           C c(first, last);
@@ -884,6 +1038,9 @@
   BOOST_concept(MultipleAssociativeContainer,(C))
     : AssociativeContainer<C>
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      MultipleAssociativeContainer();   // at least 2.96 and 3.4.3 both need 
this :(
+#endif
       ~MultipleAssociativeContainer()
       {
           C c(first, last);
@@ -903,6 +1060,9 @@
   BOOST_concept(SimpleAssociativeContainer,(C))
     : AssociativeContainer<C>
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      SimpleAssociativeContainer();   // at least 2.96 and 3.4.3 both need 
this :(
+#endif
       ~SimpleAssociativeContainer()
       {
           typedef typename C::key_type key_type;
@@ -914,6 +1074,9 @@
   BOOST_concept(PairAssociativeContainer,(C))
     : AssociativeContainer<C>
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      PairAssociativeContainer();   // at least 2.96 and 3.4.3 both need this 
:(
+#endif
       ~PairAssociativeContainer()
       {
           typedef typename C::key_type key_type;
@@ -928,6 +1091,9 @@
     : AssociativeContainer<C>
     , ReversibleContainer<C>
   {
+#if BOOST_WORKAROUND(__GNUC__, <= 3)
+      SortedAssociativeContainer();   // at least 2.96 and 3.4.3 both need 
this :(
+#endif
       ~SortedAssociativeContainer()
       {
           C 


Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs

Reply via email to