diff --git a/test/Jamfile b/test/Jamfile index 5e388632..e7547a45 100644 --- a/test/Jamfile +++ b/test/Jamfile @@ -125,6 +125,7 @@ import testing ; [ run functional/invoke.cpp : : : : ] [ run functional/invoke_function_object.cpp : : : : ] [ run functional/invoke_procedure.cpp : : : : ] + [ run sequence/swap.cpp : : : : ] # [ compile-fail xxx.cpp : : : : ] diff --git a/test/sequence/swap.cpp b/test/sequence/swap.cpp new file mode 100644 index 00000000..f9573d52 --- /dev/null +++ b/test/sequence/swap.cpp @@ -0,0 +1,35 @@ +/*============================================================================= + Copyright (c) 2001-2006 Joel de Guzman + Copyright (c) 2006 Dan Marsden + + Distributed under 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) +==============================================================================*/ +#include +#include +#include +#include +#include + +#include + +#include + +#include + +int main() +{ + namespace fusion = boost::fusion; + { + typedef fusion::vector, char> test_vector; + BOOST_MPL_ASSERT((boost::is_same::type>)); + + test_vector v1(std::vector(1, 101), 'a'), v2(std::vector(1, 202), 'b'); + + fusion::swap(v1, v2); + + BOOST_TEST(v1 == fusion::make_vector(std::vector(1, 202), 'b')); + BOOST_TEST(v2 == fusion::make_vector(std::vector(1, 101), 'a')); + } + return boost::report_errors(); +}