]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/type_traits/test/mpl_interop_test3.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / type_traits / test / mpl_interop_test3.cpp
1
2 // (C) Copyright John Maddock 2000.
3 // Use, modification and distribution are subject to the
4 // Boost Software License, Version 1.0. (See accompanying file
5 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6
7 #include <boost/type_traits/is_void.hpp>
8 #include <boost/type_traits/add_const.hpp>
9 #include <boost/mpl/list.hpp>
10 #include <boost/mpl/front.hpp>
11 #include <boost/mpl/remove_if.hpp>
12 #include <boost/mpl/transform.hpp>
13 #include <boost/static_assert.hpp>
14
15 template <class List>
16 struct lambda_test
17 {
18 typedef typename boost::mpl::remove_if<List, boost::is_void<boost::mpl::_> >::type reduced_list;
19 typedef typename boost::mpl::transform<reduced_list, boost::add_const<boost::mpl::_> >::type const_list;
20 typedef typename boost::mpl::front<const_list>::type type;
21 };
22
23
24 int main()
25 {
26 typedef boost::mpl::list<const void, int, float, void, double> list_type;
27
28 lambda_test<list_type>::type i = 0;
29 return i;
30 }