Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r67792 - in branches/release: boost boost/fusion/container/list/detail boost/iterator status
From: marshall_at_[hidden]
Date: 2011-01-08 13:38:38


Author: marshall
Date: 2011-01-08 13:38:08 EST (Sat, 08 Jan 2011)
New Revision: 67792
URL: http://svn.boost.org/trac/boost/changeset/67792

Log:
Merging fixes to release; fixes #2294 fixes #4918 fixes #3645 refs #2823 refs #1427 refs #2893
Properties modified:
   branches/release/boost/concept_check.hpp (contents, props changed)
   branches/release/boost/fusion/container/list/detail/build_cons.hpp (contents, props changed)
   branches/release/boost/iterator/iterator_facade.hpp (contents, props changed)
   branches/release/status/explicit-failures-markup.xml (contents, props changed)
Text files modified:
   branches/release/boost/concept_check.hpp | 166 ++++++++++++++++++++------------
   branches/release/boost/fusion/container/list/detail/build_cons.hpp | 3
   branches/release/boost/iterator/iterator_facade.hpp | 28 ++--
   branches/release/status/explicit-failures-markup.xml | 199 ++++++++++++++++++++++++++++-----------
   4 files changed, 261 insertions(+), 135 deletions(-)

Modified: branches/release/boost/concept_check.hpp
==============================================================================
--- branches/release/boost/concept_check.hpp (original)
+++ branches/release/boost/concept_check.hpp 2011-01-08 13:38:08 EST (Sat, 08 Jan 2011)
@@ -38,14 +38,14 @@
   //
   // Backward compatibility
   //
-
+
   template <class Model>
   inline void function_requires(Model* = 0)
   {
       BOOST_CONCEPT_ASSERT((Model));
- }
+ }
   template <class T> inline void ignore_unused_variable_warning(T const&) {}
-
+
 # define BOOST_CLASS_REQUIRE(type_var, ns, concept) \
     BOOST_CONCEPT_ASSERT((ns::concept<type_var>))
 
@@ -58,20 +58,21 @@
 # define BOOST_CLASS_REQUIRE4(tv1, tv2, tv3, tv4, ns, concept) \
     BOOST_CONCEPT_ASSERT((ns::concept<tv1,tv2,tv3,tv4>))
 
-
+
   //
   // Begin concept definitions
   //
   BOOST_concept(Integer, (T))
   {
       BOOST_CONCEPT_USAGE(Integer)
- {
+ {
             x.error_type_must_be_an_integer_type();
         }
    private:
       T x;
   };
 
+ template <> struct Integer<char> {};
   template <> struct Integer<signed char> {};
   template <> struct Integer<unsigned char> {};
   template <> struct Integer<short> {};
@@ -89,7 +90,7 @@
 # endif
 
   BOOST_concept(SignedInteger,(T)) {
- BOOST_CONCEPT_USAGE(SignedInteger) {
+ BOOST_CONCEPT_USAGE(SignedInteger) {
       x.error_type_must_be_a_signed_integer_type();
     }
    private:
@@ -103,16 +104,16 @@
   template <> struct SignedInteger< ::boost::long_long_type> {};
 # elif defined(BOOST_HAS_MS_INT64)
   template <> struct SignedInteger<__int64> {};
-# endif
+# endif
 
   BOOST_concept(UnsignedInteger,(T)) {
- BOOST_CONCEPT_USAGE(UnsignedInteger) {
+ BOOST_CONCEPT_USAGE(UnsignedInteger) {
       x.error_type_must_be_an_unsigned_integer_type();
     }
    private:
     T x;
   };
-
+
   template <> struct UnsignedInteger<unsigned char> {};
   template <> struct UnsignedInteger<unsigned short> {};
   template <> struct UnsignedInteger<unsigned int> {};
@@ -138,23 +139,24 @@
   {
     BOOST_CONCEPT_USAGE(Assignable) {
 #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
- a = a; // require assignment operator
+ a = b; // require assignment operator
 #endif
- const_constraints(a);
+ const_constraints(b);
     }
    private:
- void const_constraints(const TT& b) {
+ void const_constraints(const TT& x) {
 #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
- ignore_unused_variable_warning(b);
+ ignore_unused_variable_warning(x);
 #endif
     }
    private:
     TT a;
+ TT b;
   };
 
-
+
   BOOST_concept(CopyConstructible,(TT))
   {
     BOOST_CONCEPT_USAGE(CopyConstructible) {
@@ -182,22 +184,23 @@
   BOOST_concept(SGIAssignable,(TT))
   {
     BOOST_CONCEPT_USAGE(SGIAssignable) {
- TT b(a);
+ TT c(a);
 #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
- a = a; // require assignment operator
+ a = b; // require assignment operator
 #endif
- const_constraints(a);
- ignore_unused_variable_warning(b);
+ const_constraints(b);
+ ignore_unused_variable_warning(c);
     }
    private:
- void const_constraints(const TT& b) {
- TT c(b);
+ void const_constraints(const TT& x) {
+ TT c(x);
 #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
       ignore_unused_variable_warning(c);
     }
     TT a;
+ TT b;
   };
 #if (defined _MSC_VER)
 # pragma warning( pop )
@@ -299,7 +302,7 @@
   BOOST_concept(Generator,(Func)(Return))
   {
       BOOST_CONCEPT_USAGE(Generator) { test(is_void<Return>()); }
-
+
    private:
       void test(boost::mpl::false_)
       {
@@ -312,22 +315,22 @@
       {
           f();
       }
-
+
       Func f;
   };
 
   BOOST_concept(UnaryFunction,(Func)(Return)(Arg))
   {
       BOOST_CONCEPT_USAGE(UnaryFunction) { test(is_void<Return>()); }
-
+
    private:
       void test(boost::mpl::false_)
       {
           f(arg); // "priming the pump" this way keeps msvc6 happy (ICE)
           Return r = f(arg);
- ignore_unused_variable_warning(r);
+ ignore_unused_variable_warning(r);
       }
-
+
       void test(boost::mpl::true_)
       {
           f(arg);
@@ -356,12 +359,21 @@
           Return r = f(first, second); // require operator()
           (void)r;
       }
-
+
       void test(boost::mpl::true_)
       {
           f(first,second);
       }
-
+
+#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \
+ && BOOST_WORKAROUND(__GNUC__, > 3)))
+ // Declare a dummy constructor to make gcc happy.
+ // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type.
+ // (warning: non-static reference "const double& boost::BinaryFunction<YourClassHere>::arg"
+ // in class without a constructor [-Wuninitialized])
+ BinaryFunction();
+#endif
+
       Func f;
       First first;
       Second second;
@@ -373,6 +385,15 @@
       require_boolean_expr(f(arg)); // require operator() returning bool
     }
    private:
+#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \
+ && BOOST_WORKAROUND(__GNUC__, > 3)))
+ // Declare a dummy constructor to make gcc happy.
+ // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type.
+ // (warning: non-static reference "const double& boost::UnaryPredicate<YourClassHere>::arg"
+ // in class without a constructor [-Wuninitialized])
+ UnaryPredicate();
+#endif
+
     Func f;
     Arg arg;
   };
@@ -383,6 +404,14 @@
       require_boolean_expr(f(a, b)); // require operator() returning bool
     }
    private:
+#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \
+ && BOOST_WORKAROUND(__GNUC__, > 3)))
+ // Declare a dummy constructor to make gcc happy.
+ // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type.
+ // (warning: non-static reference "const double& boost::BinaryPredicate<YourClassHere>::arg"
+ // in class without a constructor [-Wuninitialized])
+ BinaryPredicate();
+#endif
     Func f;
     First a;
     Second b;
@@ -392,7 +421,7 @@
   BOOST_concept(Const_BinaryPredicate,(Func)(First)(Second))
     : BinaryPredicate<Func, First, Second>
   {
- BOOST_CONCEPT_USAGE(Const_BinaryPredicate) {
+ BOOST_CONCEPT_USAGE(Const_BinaryPredicate) {
       const_constraints(f);
     }
    private:
@@ -400,6 +429,15 @@
       // operator() must be a const member function
       require_boolean_expr(fun(a, b));
     }
+#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \
+ && BOOST_WORKAROUND(__GNUC__, > 3)))
+ // Declare a dummy constructor to make gcc happy.
+ // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type.
+ // (warning: non-static reference "const double& boost::Const_BinaryPredicate<YourClassHere>::arg"
+ // in class without a constructor [-Wuninitialized])
+ Const_BinaryPredicate();
+#endif
+
     Func f;
     First a;
     Second b;
@@ -409,7 +447,7 @@
     : Generator<Func, typename Func::result_type>
   {
       typedef typename Func::result_type result_type;
-
+
       BOOST_CONCEPT_USAGE(AdaptableGenerator)
       {
           BOOST_CONCEPT_ASSERT((Convertible<result_type, Return>));
@@ -440,7 +478,7 @@
       typedef typename Func::first_argument_type first_argument_type;
       typedef typename Func::second_argument_type second_argument_type;
       typedef typename Func::result_type result_type;
-
+
       ~AdaptableBinaryFunction()
       {
           BOOST_CONCEPT_ASSERT((Convertible<result_type, Return>));
@@ -478,7 +516,7 @@
       {
         BOOST_CONCEPT_ASSERT((SignedInteger<difference_type>));
         BOOST_CONCEPT_ASSERT((Convertible<iterator_category, std::input_iterator_tag>));
-
+
         TT j(i);
         (void)*i; // require dereference operator
         ++j; // require preincrement operator
@@ -492,7 +530,7 @@
     : Assignable<TT>
   {
     BOOST_CONCEPT_USAGE(OutputIterator) {
-
+
       ++i; // require preincrement operator
       i++; // require postincrement operator
       *i++ = t; // require postincrement and assignment
@@ -511,11 +549,11 @@
               BOOST_DEDUCED_TYPENAME ForwardIterator::iterator_category
             , std::forward_iterator_tag
>));
-
+
           typename InputIterator<TT>::reference r = *i;
           ignore_unused_variable_warning(r);
       }
-
+
    private:
       TT i;
   };
@@ -577,7 +615,7 @@
           n = i - j; // require difference operator
           (void)i[n]; // require element access operator
       }
-
+
    private:
     TT a, b;
     TT i, j;
@@ -615,7 +653,7 @@
           BOOST_CONCEPT_ASSERT((InputIterator<const_iterator>));
           const_constraints(c);
       }
-
+
    private:
       void const_constraints(const C& cc) {
           i = cc.begin();
@@ -636,19 +674,19 @@
       typedef typename C::reference reference;
       typedef typename C::iterator iterator;
       typedef typename C::pointer pointer;
-
+
       BOOST_CONCEPT_USAGE(Mutable_Container)
       {
           BOOST_CONCEPT_ASSERT((
                Assignable<typename Mutable_Container::value_type>));
-
+
           BOOST_CONCEPT_ASSERT((InputIterator<iterator>));
-
+
           i = c.begin();
           i = c.end();
           c.swap(c2);
       }
-
+
    private:
       iterator i;
       C c, c2;
@@ -664,7 +702,7 @@
                     typename ForwardContainer::const_iterator
>));
       }
- };
+ };
 
   BOOST_concept(Mutable_ForwardContainer,(C))
     : ForwardContainer<C>
@@ -677,7 +715,7 @@
                    typename Mutable_ForwardContainer::iterator
>));
       }
- };
+ };
 
   BOOST_concept(ReversibleContainer,(C))
     : ForwardContainer<C>
@@ -691,9 +729,9 @@
           BOOST_CONCEPT_ASSERT((
               BidirectionalIterator<
                   typename ReversibleContainer::const_iterator>));
-
+
           BOOST_CONCEPT_ASSERT((BidirectionalIterator<const_reverse_iterator>));
-
+
           const_constraints(c);
       }
    private:
@@ -710,17 +748,17 @@
     , ReversibleContainer<C>
   {
       typedef typename C::reverse_iterator reverse_iterator;
-
+
       BOOST_CONCEPT_USAGE(Mutable_ReversibleContainer)
       {
           typedef typename Mutable_ForwardContainer<C>::iterator iterator;
           BOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator<iterator>));
           BOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator<reverse_iterator>));
-
+
           reverse_iterator i = c.rbegin();
           i = c.rend();
       }
- private:
+ private:
       C c;
   };
 
@@ -736,7 +774,7 @@
               RandomAccessIterator<
                   typename RandomAccessContainer::const_iterator
>));
-
+
           const_constraints(c);
       }
    private:
@@ -745,7 +783,7 @@
           const_reference r = cc[n];
           ignore_unused_variable_warning(r);
       }
-
+
       C c;
       size_type n;
   };
@@ -761,11 +799,11 @@
       {
           BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator<typename self::iterator>));
           BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator<typename self::reverse_iterator>));
-
+
           typename self::reference r = c[i];
           ignore_unused_variable_warning(r);
       }
-
+
    private:
       typename Mutable_ReversibleContainer<C>::size_type i;
       C c;
@@ -781,7 +819,7 @@
   {
       BOOST_CONCEPT_USAGE(Sequence)
       {
- S
+ S
               c(n),
               c2(n, t),
               c3(first, last);
@@ -806,7 +844,7 @@
           typename Sequence::const_reference r = c.front();
           ignore_unused_variable_warning(r);
       }
-
+
       typename S::value_type t;
       typename S::size_type n;
       typename S::value_type* first, *last;
@@ -865,11 +903,11 @@
           c.erase(r.first, r.second);
           const_constraints(c);
           BOOST_CONCEPT_ASSERT((BinaryPredicate<key_compare,key_type,key_type>));
-
+
           typedef typename AssociativeContainer::value_type value_type_;
           BOOST_CONCEPT_ASSERT((BinaryPredicate<value_compare,value_type_,value_type_>));
       }
-
+
       // Redundant with the base concept, but it helps below.
       typedef typename C::const_iterator const_iterator;
    private:
@@ -895,7 +933,7 @@
       BOOST_CONCEPT_USAGE(UniqueAssociativeContainer)
       {
           C c(first, last);
-
+
           pos_flag = c.insert(t);
           c.insert(first, last);
 
@@ -913,7 +951,7 @@
       BOOST_CONCEPT_USAGE(MultipleAssociativeContainer)
       {
           C c(first, last);
-
+
           pos = c.insert(t);
           c.insert(first, last);
 
@@ -956,7 +994,7 @@
   {
       BOOST_CONCEPT_USAGE(SortedAssociativeContainer)
       {
- C
+ C
               c(kc),
               c2(first, last),
               c3(first, last, kc);
@@ -964,15 +1002,15 @@
           p = c.upper_bound(k);
           p = c.lower_bound(k);
           r = c.equal_range(k);
-
+
           c.insert(p, t);
-
+
           ignore_unused_variable_warning(c);
           ignore_unused_variable_warning(c2);
           ignore_unused_variable_warning(c3);
           const_constraints(c);
       }
-
+
       void const_constraints(const C& c)
       {
           kc = c.key_comp();
@@ -982,7 +1020,7 @@
           cp = c.lower_bound(k);
           cr = c.equal_range(k);
       }
-
+
    private:
       typename C::key_compare kc;
       typename C::value_compare vc;

Modified: branches/release/boost/fusion/container/list/detail/build_cons.hpp
==============================================================================
--- branches/release/boost/fusion/container/list/detail/build_cons.hpp (original)
+++ branches/release/boost/fusion/container/list/detail/build_cons.hpp 2011-01-08 13:38:08 EST (Sat, 08 Jan 2011)
@@ -48,7 +48,8 @@
         static type
         call(First const& f, Last const& l)
         {
- return type(*f, next_build_cons::call(fusion::next(f), l));
+ typename result_of::deref<First>::type v = *f;
+ return type(v, next_build_cons::call(fusion::next(f), l));
         }
     };
 

Modified: branches/release/boost/iterator/iterator_facade.hpp
==============================================================================
--- branches/release/boost/iterator/iterator_facade.hpp (original)
+++ branches/release/boost/iterator/iterator_facade.hpp 2011-01-08 13:38:08 EST (Sat, 08 Jan 2011)
@@ -105,6 +105,7 @@
         
         typedef typename remove_const<ValueParam>::type value_type;
         
+ // Not the real associated pointer type
         typedef typename mpl::eval_if<
             boost::detail::iterator_writability_disabled<ValueParam,Reference>
           , add_pointer<const value_type>
@@ -323,7 +324,7 @@
 
         static type make(Reference x)
         {
- return implicit_cast<type>(&x);
+ return boost::implicit_cast<type>(&x);
         }
     };
 
@@ -617,6 +618,12 @@
          Value, CategoryOrTraversal, Reference, Difference
> associated_types;
 
+ typedef boost::detail::operator_arrow_result<
+ typename associated_types::value_type
+ , Reference
+ , typename associated_types::pointer
+ > pointer_;
+
    protected:
       // For use by derived classes
       typedef iterator_facade<Derived,Value,CategoryOrTraversal,Reference,Difference> iterator_facade_;
@@ -626,7 +633,9 @@
       typedef typename associated_types::value_type value_type;
       typedef Reference reference;
       typedef Difference difference_type;
- typedef typename associated_types::pointer pointer;
+
+ typedef typename pointer_::type pointer;
+
       typedef typename associated_types::iterator_category iterator_category;
 
       reference operator*() const
@@ -634,18 +643,9 @@
           return iterator_core_access::dereference(this->derived());
       }
 
- typename boost::detail::operator_arrow_result<
- value_type
- , reference
- , pointer
- >::type
- operator->() const
- {
- return boost::detail::operator_arrow_result<
- value_type
- , reference
- , pointer
- >::make(*this->derived());
+ pointer operator->() const
+ {
+ return pointer_::make(*this->derived());
       }
         
       typename boost::detail::operator_brackets_result<Derived,Value,reference>::type

Modified: branches/release/status/explicit-failures-markup.xml
==============================================================================
--- branches/release/status/explicit-failures-markup.xml (original)
+++ branches/release/status/explicit-failures-markup.xml 2011-01-08 13:38:08 EST (Sat, 08 Jan 2011)
@@ -478,6 +478,17 @@
         </test>
     </library>
 
+ <!-- chrono -->
+ <library name="chrono">
+ <mark-unusable>
+ <toolset name="borland-*"/>
+ <toolset name="pathscale*"/>
+ <note author="Vicente J. Botet Escriba">
+ The compiler does not support features that are essential for the library.
+ </note>
+ </mark-unusable>
+ </library>
+
     <!-- circular_buffer -->
     <library name="circular_buffer">
         <mark-expected-failures>
@@ -619,7 +630,7 @@
                 <toolset name="msvc-7.1*"/>
                 <toolset name="acc"/>
                 <note author="Alexander Nasonov">
- Conversion double-string-double may give a different value (or even throw) on many compilers
+ Conversion double-string-double may give a different value (or even throw) on many compilers
                 </note>
             </mark-failure>
         </test>
@@ -1394,7 +1405,7 @@
           <toolset name="sun-5.7"/>
           <toolset name="sun-5.8"/>
           <note author="Beman Dawes">
- The library works well with versions of this compiler 5.9 and later
+ The library works well with versions of this compiler 5.9 and later
           </note>
         </mark-expected-failures>
         <mark-expected-failures>
@@ -1820,7 +1831,7 @@
             <toolset name="acc"/>
             <note author="Tobias Schwinger">
                 Those failures are due to not quite const-correct overload
- resolution. The complaints from the test suite should rarely
+ resolution. The complaints from the test suite should rarely
                 matter in practice - the corresponding components are basically
                 usable. With aCC6, when compiled in strict ansi mode, the test
                 succeeds.
@@ -1847,37 +1858,15 @@
         <mark-unusable>
             <toolset name="borland-5.*"/>
             <toolset name="borland-6.*"/>
- <!-- Open64 and Pathscale ICE on almost all test cases, often
- because of http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17327;
- property type detection fails because it uses enum types as tags.
- -->
- <toolset name="gcc-open64"/>
- <toolset name="pathscale-3.1"/>
- <!-- vacpp ICEs on many of the tests -->
- <toolset name="vacpp"/>
+ <toolset name="borland-cb2009"/>
+ <toolset name="borland-cb2010"/>
+ <toolset name="sun-5.9"/>
         </mark-unusable>
         <mark-expected-failures>
- <test name="graphviz_test"/>
- <toolset name="vc-8_0"/>
- <toolset name="msvc-8_0"/>
- <toolset name="intel-vc71-win-9.1"/>
- <note refid="1" author="Doug Gregor"/>
- </mark-expected-failures>
- <mark-expected-failures>
- <test name="graphviz_test"/>
- <toolset name="como-4_3_3-vc7_1"/>
- <note refid="3" author="Doug Gregor"/>
- </mark-expected-failures>
- <mark-expected-failures>
- <test name="bundled_properties"/>
- <toolset name="qcc-3.3*"/>
- <note author="Jim Douglas" date="18 Feb 06" refid="27"/>
- </mark-expected-failures>
- <mark-expected-failures>
- <test name="boykov_kolmogorov_max_flow_test"/>
- <test name="max_flow_test"/>
- <toolset name="acc*"/>
- <note author="Markus Schoepflin" refid="45"/>
+ <test name="grid_graph_cc"/>
+ <test name="grid_graph_test"/>
+ <toolset name="msvc-7.1"/>
+ <note author="Jeremiah Willcock" refid="2"/>
         </mark-expected-failures>
     </library>
 
@@ -1891,7 +1880,7 @@
                 When compiling with aC++, depending on system load, the compile time may exceed
                 specified timeout value. The test passes when the timeout value is increased.
                 When compiling with GCC, linker takes segmentation fault.
- In the HP bug tracking system, this issue is tracked as QuIX ID: QXCR1000836120.
+ In the HP bug tracking system, this issue is tracked as QuIX ID: QXCR1000836120.
             </note>
         </mark-expected-failures>
     </library>
@@ -1912,7 +1901,6 @@
             <toolset name="mipspro"/>
             <toolset name="acc*"/>
             <toolset name="msvc-8.0~wm5*"/>
- <toolset name="vacpp*"/>
             <toolset name="pathscale*"/>
             <toolset name="intel-linux-8.*"/>
             <toolset name="gcc-3.4.6_linux_ia64"/>
@@ -1934,7 +1922,6 @@
             <toolset name="gcc-3.2*"/>
             <toolset name="gcc-3.3*"/>
             <toolset name="mipspro"/>
- <toolset name="vacpp*"/>
             <toolset name="pathscale*"/>
             <toolset name="intel-linux-8.*"/>
             <note author="Ion Gazta&#241;aga">
@@ -2139,7 +2126,7 @@
             <toolset name="vacpp"/>
             <note author="Jonathan Turkanis" date="06 Jan 2008">
                 "restrict" is treated as a keyword on this platform (as in C99);
- use the alias "slice" instead, defined in
+ use the alias "slice" instead, defined in
                 "boost/iostreams/slice.hpp."
             </note>
         </mark-expected-failures>
@@ -2163,8 +2150,8 @@
             <test name="stream_offset_64bit_test"/>
             <toolset name="borland-*"/>
             <note author="Jonathan Turkanis" date="04 Jan 2008">
- In the Dinkumware standard library, streampos relies on fpos_t
- to store stream offsets, but fpos_t is defined as a 32-bit
+ In the Dinkumware standard library, streampos relies on fpos_t
+ to store stream offsets, but fpos_t is defined as a 32-bit
                 long by the Borland runtime library. In Borland's modified
                 version of STLPort, streampos relies on streamoff to store
                 stream offsets, but streamoff is defined to be a 32-bit long.
@@ -2182,8 +2169,8 @@
             <test name="stream_offset_64bit_test"/>
             <toolset name="vacpp*"/>
             <note author="Jonathan Turkanis" date="09 Jan 2008">
- On this platform, streampos is an alias for fpos, whose
- implementation stores stream offsets using streamsize and
+ On this platform, streampos is an alias for fpos, whose
+ implementation stores stream offsets using streamsize and
                 fpos_t; both of the latter types are 32-bit
             </note>
         </mark-expected-failures>
@@ -2204,8 +2191,8 @@
             <test name="stream_offset_64bit_test"/>
             <toolset name="gcc-4.2"/>
             <note author="Jonathan Turkanis" date="09 Jan 2008">
- The following applies only to gcc-4.2 using the stdcxx
- standard library: On this platform, streampos is an alias for
+ The following applies only to gcc-4.2 using the stdcxx
+ standard library: On this platform, streampos is an alias for
               ptrdiff_t, which is an alias for a 32-bit type
             </note>
         </mark-expected-failures>
@@ -2559,24 +2546,52 @@
             <toolset name="gcc-3.4.6_linux_ia64"/>
             <toolset name="gcc-4.2.*"/>
             <toolset name="gcc-4.1.2_sunos_i86pc"/>
- <note author="Fernando Cacciola" refid="2"/>
+ <note author="Fernando Cacciola" id="optional-compiler-bug">
+ <p>This failure is caused by a compiler bug, and as far as we can
+ tell, can't be worked around in the library, although we think
+ the library might be made safer with respect to this bug.</p>
+
+ <p>Specifics: the following simple test fails when it should succeed.</p>
+ <pre>
+ #include &lt;cassert&gt;
+
+ int const x = 0;
+ struct A
+ {
+ A(int const&amp; y)
+ {
+ assert(&amp;x == &amp;y);
+ }
+ };
+
+ int main()
+ {
+ A a(x); // direct initialization works fine
+ A b = x; // copy initialization causes x to be copied before it is bound
+ }
+ </pre>
+
+ The possible safety enhancement would be to cause the constructor
+ in question to be explicit for optional&lt;T const&amp;&gt;; that
+ would prevent copy initialization.
+ </note>
         </mark-expected-failures>
         <mark-expected-failures>
             <test name="optional_test_ref_fail1"/>
             <toolset name="borland-5.6*"/>
             <toolset name="borland-5.8*"/>
             <toolset name="borland-5.9*"/>
- <note author="Fernando Cacciola" refid="2"/>
+ <note author="Fernando Cacciola" refid="optional-compiler-bug"/>
         </mark-expected-failures>
         <mark-expected-failures>
             <test name="optional_test_fail3a"/>
             <toolset name="gcc-3_3-darwin"/>
- <note author="Fernando Cacciola" refid="2"/>
+ <note author="Fernando Cacciola" refid="optional-compiler-bug"/>
         </mark-expected-failures>
         <mark-expected-failures>
             <test name="optional_test_inplace_fail2"/>
             <toolset name="gcc-3_3-darwin"/>
- <note author="Fernando Cacciola" refid="2"/>
+ <note author="Fernando Cacciola" refid="optional-compiler-bug"/>
         </mark-expected-failures>
     </library>
 
@@ -2845,6 +2860,13 @@
             <toolset name="*"/>
             <note refid="40" author="Boris Gubenko"/>
         </mark-expected-failures>
+ <mark-expected-failures>
+ <test name="sp_convertible_test"/>
+ <test name="wp_convertible_test"/>
+ <test name="ip_convertible_test"/>
+ <toolset name="borland-*"/>
+ <note refid="31" author="Peter Dimov"/>
+ </mark-expected-failures>
    </library>
 
     <!-- spirit -->
@@ -4131,8 +4153,8 @@
             <toolset name="pathscale-3.1"/>
             <toolset name="sun-5.*"/>
             <note author="Thorsten Ottosen">
- For codewarrior, the cause of this problem is unknown. Please
- submit a patch. Other failures are due to problems with
+ For codewarrior, the cause of this problem is unknown. Please
+ submit a patch. Other failures are due to problems with
                 the serialization library, or to a minor problem with the use of
                 the library.
             </note>
@@ -4346,6 +4368,7 @@
     <!-- range -->
     <library name="range">
         <mark-unusable>
+ <toolset name="borland-*"/>
             <toolset name="mipspro"/>
             <toolset name="dmc-8_43-stlport-4_5_3"/>
             <toolset name="gcc-2.95.3*"/>
@@ -4361,6 +4384,15 @@
             <note refid="27" author="Thorsten Ottosen"/>
         </mark-expected-failures>
         <mark-expected-failures>
+ <test name="adl_conformance"/>
+ <toolset name="msvc-7.1"/>
+ <note author="Neil Groves">
+ This test is designed to give users visibility of the ADL problems with their compilers.
+ Lack of Argument Dependent Lookup changes how one can extend the library. The lack of
+ ADL is worked-around internally so that most of the functionality is preserved.
+ </note>
+ </mark-expected-failures>
+ <mark-expected-failures>
             <test name="iterator_range"/>
             <toolset name="msvc-stlport"/>
             <toolset name="msvc-6.5_stlport4"/>
@@ -4375,6 +4407,14 @@
             </note>
         </mark-expected-failures>
         <mark-expected-failures>
+ <test name="push_front"/>
+ <toolset name="msvc-9.0~stlport5.2"/>
+ <note author="Neil Groves">
+ push_front fails the unit test in this configuration. I do not have this
+ configuration available to determine if a work-around is possible.
+ </note>
+ </mark-expected-failures>
+ <mark-expected-failures>
             <test name="reversible_range"/>
             <toolset name="hp_cxx-65*"/>
             <note author="Thorsten Ottosen">
@@ -4431,6 +4471,29 @@
         </mark-expected-failures>
     </library>
 
+ <!-- ratio -->
+ <library name="ratio">
+ <mark-unusable>
+ <toolset name="borland-*"/>
+ <toolset name="pathscale*"/>
+ <note author="Vicente J. Botet Escriba">
+ The compiler does not support features that are essential for the library.
+ </note>
+ </mark-unusable>
+ <mark-expected-failures>
+ <test name="mpl_plus_pass"/>
+ <test name="ratio_ext_pass"/>
+ <toolset name="intel-*-10.1"/>
+ <toolset name="intel-*-11.0"/>
+ <toolset name="intel-*-11.1"/>
+ <note author="Vicente J. Botet Escriba">
+ internal error: assertion failed: copy_template_param_expr.
+ It seems to be already an Intel internal bug database (tracker number #82149).
+ I have no workaround yet.
+ </note>
+ </mark-expected-failures>
+ </library>
+
     <!-- regex -->
     <library name="regex">
         <test name="regex_token_iterator_eg_2">
@@ -4484,7 +4547,7 @@
           <toolset name="darwin*"/>
           <note author="J. Maddock">
              This tests fails because a dependency (Boost.Test)
- fails to initialise correctly. The issue has been
+ fails to initialise correctly. The issue has been
              reported to the library's author.
           </note>
        </mark-expected-failures>
@@ -4648,9 +4711,16 @@
 
     <!-- statechart -->
     <library name="statechart">
+ <mark-unusable>
+ <toolset name="borland*"/>
+ <toolset name="sun-5*"/>
+ <toolset name="pgi-1*"/>
+ <note author="Andreas Huber" refid="17"/>
+ </mark-unusable>
         <mark-expected-failures>
             <test name="DllTestNormal"/>
             <toolset name="*mingw*"/>
+ <toolset name="intel-darwin-10*"/>
             <toolset name="intel-darwin-11*"/>
             <note author="Andreas Huber">
                 A runtime failure of this test indicates that this platform
@@ -4663,11 +4733,13 @@
         </mark-expected-failures>
         <mark-expected-failures reason="?">
             <test name="FifoSchedulerTest*"/>
- <toolset name="intel-darwin-11*"/>
+ <toolset name="darwin-4.4"/>
+ <toolset name="intel-darwin-10*"/>
             <note author="Andreas Huber" refid="29"/>
         </mark-expected-failures>
         <mark-expected-failures reason="?">
             <test name="TransitionTest*"/>
+ <toolset name="intel-darwin-10*"/>
             <toolset name="intel-linux-10*"/>
             <toolset name="gcc-4.3.4_0x"/>
             <toolset name="pathscale-3.2"/>
@@ -4937,7 +5009,7 @@
              Probably work-round-able if someone would care to look into these.
           </note>
        </mark-expected-failures>
- <mark-expected-failures>
+ <mark-expected-failures>
             <test name="function_traits_test"/>
             <test name="remove_bounds_test"/>
             <test name="remove_const_test"/>
@@ -5175,7 +5247,7 @@
              be work-round-able if anyone cares enough to look into them.
           </note>
        </mark-expected-failures>
- <mark-expected-failures>
+ <mark-expected-failures>
             <test name="test_mem_fn_tricky"/>
             <test name="test_bind_tricky"/>
             <test name="test_ref_wrapper_tricky"/>
@@ -5810,7 +5882,7 @@
             Related Boost mailing list discussion:
             http://lists.boost.org/Archives/boost/2008/11/144465.php
             CodeGear bug reports on this issue:
- http://qc.codegear.com/wc/qcmain.aspx?d=68959
+ http://qc.codegear.com/wc/qcmain.aspx?d=68959
             http://qc.codegear.com/wc/qcmain.aspx?d=69196
           </note>
         </mark-expected-failures>
@@ -5822,7 +5894,7 @@
             Borland 5.9.3 has an error (E2285) when trying to pass a
             multi-dimensional array by reference to a function template.
             A bug report by Christopher Yeleighton appears related:
- "The compiler obligatorily converts member arrays to pointers"
+ "The compiler obligatorily converts member arrays to pointers"
             http://qc.codegear.com/wc/qcmain.aspx?d=10267
           </note>
         </mark-expected-failures>
@@ -5864,6 +5936,17 @@
                 <note refid="3" author="D. Gregor"/>
             </mark-failure>
         </test>
+ <test name="value_init_test">
+ <mark-failure>
+ <toolset name="intel-9.0*"/>
+ <toolset name="intel-linux-9.0*"/>
+ <note author="Niels Dekker" date="2009-07-01">
+ When I made the conversion from value_initialized&lt;T&gt; to T&amp;
+ const-correct, this specific compiler version gave compile errors.
+ See also: Ticket #2548 - "Let's fix the logical constness of value_initialized!"
+ </note>
+ </mark-failure>
+ </test>
         <mark-expected-failures>
             <test name="value_init_test"/>
             <toolset name="msvc-6.5*"/>
@@ -5888,7 +5971,6 @@
         </mark-expected-failures>
     </library>
 
-
     <!-- uuid -->
     <library name="uuid">
         <mark-expected-failures>
@@ -5933,7 +6015,7 @@
             <test name="test_include1"/>
             <toolset name="borland-6.2.1"/>
             <note author="Andy Tompkins">
- The test relies on Boost.Iterator (iterator_facade)
+ The test relies on Boost.Iterator (iterator_facade)
                  which is not supported on this toolset.
            </note>
         </mark-expected-failures>
@@ -6349,4 +6431,9 @@
         This test fails when BOOST_UBLAS_NO_NESTED_CLASS_RELATION is defined.
     </note>
 
+ <note id="49">
+ This test fails because MinGW apparently does not always catch exceptions properly.
+ </note>
+
 </explicit-failures-markup>
+


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk