bases.cpp
来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 63 行
CPP
63 行
// Copyright David Abrahams 2002.// 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 <boost/python/bases.hpp>#include <boost/static_assert.hpp>#include <boost/type_traits/same_traits.hpp>struct A;struct B;template <class X, class Y, class Z>struct choose_bases : boost::python::detail::select_bases< X , typename boost::python::detail::select_bases< Y , typename boost::python::detail::select_bases<Z>::type >::type>{ };int main(){ BOOST_STATIC_ASSERT((boost::python::detail::specifies_bases< boost::python::bases<A,B> >::value)); BOOST_STATIC_ASSERT((!boost::python::detail::specifies_bases< boost::python::bases<A,B>& >::value)); BOOST_STATIC_ASSERT((!boost::python::detail::specifies_bases< void* >::value)); BOOST_STATIC_ASSERT((!boost::python::detail::specifies_bases< int >::value)); BOOST_STATIC_ASSERT((!boost::python::detail::specifies_bases< int[5] >::value)); typedef boost::python::detail::select_bases< int , boost::python::detail::select_bases<char*>::type > collected1; BOOST_STATIC_ASSERT((boost::is_same<collected1::type,boost::python::bases<> >::value)); BOOST_STATIC_ASSERT((boost::is_same<choose_bases<int,char*,long>::type,boost::python::bases<> >::value)); typedef boost::python::detail::select_bases< int , boost::python::detail::select_bases< boost::python::bases<A,B> , boost::python::detail::select_bases< A >::type >::type > collected2; BOOST_STATIC_ASSERT((boost::is_same<collected2::type,boost::python::bases<A,B> >::value)); BOOST_STATIC_ASSERT((boost::is_same<choose_bases<int,boost::python::bases<A,B>,long>::type,boost::python::bases<A,B> >::value)); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?