Boost Type Erasure模块构造函数的测试程序
在C++中,我们经常需要利用多态特性来实现抽象和封装。然而,在某些情况下,我们不得不在运行时选择一个具体的类型并创建一个对象。为了解决这个问题,Boost库提供了Type Erasure模块,它允许我们在运行时选择一个具体的类型并调用它的构造函数。
下面是一个使用Boost Type Erasure模块进行构造函数测试的示例程序:
#include <iostream>
#include <boost/type_erasure/any.hpp>
#include <boost/type_erasure/builtin.hpp>
#include <boost/type_erasure/member.hpp>
using namespace boost::type_erasure;
template <typename Concept>
struct A : any<Concept>
{
using any<Concept>::operator=;
void foo() const
{
typename concept_interface<Concept>::type::foo(this->get_concept());
}
};
BOOST_TYPE_ERASURE_MEMBER((has_foo), foo, 0)
struct X
{
X(int i) : m_i(i) {}
void foo() const { st
本文介绍了如何使用Boost库的Type Erasure模块在C++中实现在运行时选择具体类型并调用其构造函数。通过一个测试程序示例,展示了如何创建一个Wrapper类并使用宏声明成员函数,从而实现多态性。
订阅专栏 解锁全文
95

被折叠的 条评论
为什么被折叠?



