Index: libs/foreach/test/Jamfile.v2 =================================================================== --- libs/foreach/test/Jamfile.v2 (revision 70472) +++ libs/foreach/test/Jamfile.v2 (working copy) @@ -30,6 +30,7 @@ [ run rvalue_nonconst.cpp ] [ run rvalue_const_r.cpp ] [ run rvalue_nonconst_r.cpp ] + [ run mutate_rvalue.cpp ] [ run dependent_type.cpp ] [ run misc.cpp ] [ compile noncopyable.cpp ] Index: libs/foreach/test/mutate_rvalue.cpp =================================================================== --- libs/foreach/test/mutate_rvalue.cpp (revision 0) +++ libs/foreach/test/mutate_rvalue.cpp (revision 0) @@ -0,0 +1,42 @@ +// (C) Copyright Eric Niebler 2005. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +/* + Revision history: + 25 August 2005 : Initial version. +*/ + +#include +#include +#include + +#ifdef BOOST_FOREACH_NO_RVALUE_DETECTION +# error Expected failure : rvalues disallowed +#else + +std::vector get_vector() +{ + return std::vector(4, 4); +} + +/////////////////////////////////////////////////////////////////////////////// +// test_main +// +int test_main( int, char*[] ) +{ + int counter = 0; + + BOOST_FOREACH(int &i, get_vector()) + { + ++i; + counter += i; + } + + BOOST_CHECK(20 == counter); + + return 0; +} + +#endif