Boost Type Erasure库的测试示例

350 篇文章 ¥29.90 ¥99.00
本文提供了一个Boost Type Erasure库的测试示例,解释如何定义has_name和has_age概念,并创建支持这些概念的any类型。示例展示了如何通过new_class函数创建对象并使用get函数获取信息。

Boost Type Erasure库的测试示例

Boost Type Erasure库是一个基于C++语言的模板库,其主要作用是为了让程序员能够更加方便地定义和使用任意的概念类型。通过该库,我们可以将一些不同的类型定义成具有相同的概念并具有相同的接口。

下面,我们将介绍一个简单的Boost Type Erasure库测试程序,并附上对应的源代码。

#include <boost/type_erasure/any.hpp>
#include <boost/type_erasure/member.hpp>
#include <boost/mpl/vector.hpp>
#include <iostream>
#include <string>

using namespace boost::type_erasure;

// 定义概念
BOOST_TYPE_ERASURE_MEMBER((has_name), name, 0)
BOOST_TYPE_ERASURE_MEMBER((has_age), age, 1)

int main()
{
    // 定义支持has_name和has_age的any类型
    typedef any<
        boost::mpl::vector<has_name<std::string>, has_age<int>>
    > person_t;

    // 创建person_t类型对象
    person_t p = new_class("Tom", 18);
    
    // 输
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值