diff --git a/test/Jamfile b/test/Jamfile index 4c50e0a4..58635536 100644 --- a/test/Jamfile +++ b/test/Jamfile @@ -76,6 +76,7 @@ import testing ; [ run sequence/make_list.cpp : : : : ] [ run sequence/make_vector.cpp : : : : ] [ run sequence/map.cpp : : : : ] + [ run sequence/map_tie.cpp : : : : ] [ run sequence/reverse_view.cpp : : : : ] [ run sequence/set.cpp : : : : ] [ run sequence/single_view.cpp : : : : ] diff --git a/test/sequence/map_tie.cpp b/test/sequence/map_tie.cpp new file mode 100644 index 00000000..aef31c51 --- /dev/null +++ b/test/sequence/map_tie.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 + +struct key_zero; +struct key_one; + +int main() +{ + using namespace boost::fusion; + { + int number = 101; + char letter = 'a'; + BOOST_TEST(at_key(map_tie(number, letter)) == 101); + BOOST_TEST(at_key(map_tie(number, letter)) == 'a'); + + BOOST_TEST(&at_key(map_tie(number, letter)) == &number); + BOOST_TEST(&at_key(map_tie(number, letter)) == &letter); + + at_key(map_tie(number, letter)) = 202; + at_key(map_tie(number, letter)) = 'b'; + + BOOST_TEST(number == 202); + BOOST_TEST(letter == 'b'); + } + return boost::report_errors(); +}