inherit_multiply.cpp
来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 59 行
CPP
59 行
// Copyright Aleksey Gurtovoy 2002-2004//// 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)//// See http://www.boost.org/libs/mpl for documentation.// $Id: inherit_multiply.cpp 49268 2008-10-11 06:26:17Z agurtovoy $// $Date: 2008-10-11 02:26:17 -0400 (Sat, 11 Oct 2008) $// $Revision: 49268 $#include <boost/mpl/inherit.hpp>#include <boost/mpl/inherit_linearly.hpp>#include <boost/mpl/list.hpp>#include <iostream>namespace mpl = boost::mpl;using namespace mpl::placeholders;template< typename T >struct tuple_field{ typedef tuple_field type; // note the typedef T field_;};template< typename T >inlineT& field(tuple_field<T>& t){ return t.field_;}typedef mpl::inherit_linearly< mpl::list<int,char const*,bool> , mpl::inherit< _1, tuple_field<_2> > >::type my_tuple; int main(){ my_tuple t; field<int>(t) = -1; field<char const*>(t) = "text"; field<bool>(t) = false; std::cout << field<int>(t) << '\n' << field<char const*>(t) << '\n' << field<bool>(t) << '\n' ; return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?