像这样的PIMPL实现是否有任何简单的语法
Is there any simpler syntax for a pimpl implementation like this?
是否有以下模式更简单的语法?您可以如下所述执行此操作,但是伙计,这不是一个非常简单的想法的简短代码。是否有一些库会使这不那么尴尬或我应该考虑的其他模式?
#include <iostream>
template <typename T>
class abstr
{
public:
class subclass
{
public:
virtual void x(T) = 0;
};
void doThing(T a)
{
m_a->x(a);
}
abstr(subclass* a)
{
m_a = a;
}
subclass* m_a;
};
class concr : public abstr<int>::subclass
{
public:
void x(int a)
{
std::cout << "hi!" << a;
}
};
int main()
{
concr a;
abstr<int> r = abstr<int>(&a);
r.doThing(5);
}
loki具有PIMPL助手:
http://loki-lib.sourceforge.net/index.php?n=idioms.pimpl
,但这主要有助于指针管理,复制构建等。pp。如果我没记错的话。乏味的部分仍然取决于您。
相关文章:
- 在c++中用vector填充一个简单的动态数组
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的简单if-else语句是如何无法访问的代码
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 使用简单类型列表实现的指数编译时间.为什么
- 如何在不产生任何垃圾的情况下获得C中的像素
- 为什么我不能在 C++ 中的特定函数重载中调用同一函数的任何其他重载?
- 简单的 for() 循环基准测试在任何循环绑定下花费相同的时间
- 是否有任何简单的方法(黑客)揭露前向声明隐藏的标头
- 查找树(不属于任何特定类型的简单连接树)中两个节点之间的路径
- 像这样的PIMPL实现是否有任何简单的语法
- 是否有任何简单的方法来查找当前的工作目录?C
- 我将创建一个简单的命令解释器,允许用户像在任何命令行中一样输入命令,但在 2 个参数后发生错误
- 任何实现简单2D天空的想法
- 一个简单的猜谜游戏,继续使用除声明变量Y/N之外的任何其他字母
- 如何对简单多边形进行delaunay三角剖分并找到它'cgal中任何三角形的s邻居
- 我可以在任何我想使用简单指针的地方使用shared_ptr吗
- 任何基于 libclang 的 C/C++ 重构工具?(即使是最简单的"toy example")
- 任何好的简单的DirectX示例Windows 8(开发人员预览版)