]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/python/test/bases.cpp
1 // Copyright David Abrahams 2002.
2 // Distributed under the Boost Software License, Version 1.0. (See
3 // accompanying file LICENSE_1_0.txt or copy at
4 // http://www.boost.org/LICENSE_1_0.txt)
5 #include <boost/python/bases.hpp>
6 #include <boost/static_assert.hpp>
7 #include <boost/python/detail/type_traits.hpp>
12 template <class X
, class Y
, class Z
>
14 : boost::python::detail::select_bases
<
16 , typename
boost::python::detail::select_bases
<
18 , typename
boost::python::detail::select_bases
<Z
>::type
26 BOOST_STATIC_ASSERT((boost::python::detail::specifies_bases
<
27 boost::python::bases
<A
,B
> >::value
));
29 BOOST_STATIC_ASSERT((!boost::python::detail::specifies_bases
<
30 boost::python::bases
<A
,B
>& >::value
));
32 BOOST_STATIC_ASSERT((!boost::python::detail::specifies_bases
<
35 BOOST_STATIC_ASSERT((!boost::python::detail::specifies_bases
<
38 BOOST_STATIC_ASSERT((!boost::python::detail::specifies_bases
<
41 typedef boost::python::detail::select_bases
<
43 , boost::python::detail::select_bases
<char*>::type
> collected1
;
45 BOOST_STATIC_ASSERT((boost::python::detail::is_same
<collected1::type
,boost::python::bases
<> >::value
));
46 BOOST_STATIC_ASSERT((boost::python::detail::is_same
<choose_bases
<int,char*,long>::type
,boost::python::bases
<> >::value
));
48 typedef boost::python::detail::select_bases
<
50 , boost::python::detail::select_bases
<
51 boost::python::bases
<A
,B
>
52 , boost::python::detail::select_bases
<
58 BOOST_STATIC_ASSERT((boost::python::detail::is_same
<collected2::type
,boost::python::bases
<A
,B
> >::value
));
59 BOOST_STATIC_ASSERT((boost::python::detail::is_same
<choose_bases
<int,boost::python::bases
<A
,B
>,long>::type
,boost::python::bases
<A
,B
> >::value
));