]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/foreach/test/stl_byval_r.cpp
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / libs / foreach / test / stl_byval_r.cpp
1 // stl_byval.cpp
2 ///
3 // (C) Copyright Eric Niebler 2004.
4 // Use, modification and distribution are subject to the
5 // Boost Software License, Version 1.0. (See accompanying file
6 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7
8 /*
9 Revision history:
10 25 August 2005 : Initial version.
11 */
12
13 #include <list>
14 #include <boost/core/lightweight_test.hpp>
15 #include <boost/foreach.hpp>
16
17 ///////////////////////////////////////////////////////////////////////////////
18 // define the container types, used by utility.hpp to generate the helper functions
19 typedef std::list<int> foreach_container_type;
20 typedef std::list<int> const foreach_const_container_type;
21 typedef int foreach_value_type;
22 typedef int &foreach_reference_type;
23 typedef int const &foreach_const_reference_type;
24
25 #include "./utility.hpp"
26
27 ///////////////////////////////////////////////////////////////////////////////
28 // initialize a std::list<int>
29 std::list<int> make_list()
30 {
31 std::list<int> l;
32 l.push_back(1);
33 l.push_back(2);
34 l.push_back(3);
35 l.push_back(4);
36 l.push_back(5);
37 return l;
38 }
39
40 ///////////////////////////////////////////////////////////////////////////////
41 // define some containers
42 //
43 std::list<int> my_list = make_list();
44 std::list<int> const &my_const_list = my_list;
45
46 ///////////////////////////////////////////////////////////////////////////////
47 // test_main
48 //
49 int main()
50 {
51 boost::mpl::false_ *p = BOOST_FOREACH_IS_LIGHTWEIGHT_PROXY(my_list);
52 (void)p;
53
54 // non-const containers by value
55 BOOST_TEST(sequence_equal_byval_n_r(my_list, "\5\4\3\2\1"));
56
57 // const containers by value
58 BOOST_TEST(sequence_equal_byval_c_r(my_const_list, "\5\4\3\2\1"));
59
60 return boost::report_errors();
61 }