首页 > TAG信息列表 > pimpl-idiom

c pimpl习惯用法:取决于模板参数的实现

在this question中,我未成功询问如何根据模板参数使用不同的pimpl实现. 也许这个例子更好地说明了我正在尝试做的事情: #include <iostream> template< int N, typename T > struct B { B() : c( new C< N > ) {} template< int M > struct C; C< N > *c; };

c – pimpl成语如何减少依赖性?

考虑以下: PImpl.hpp class Impl; class PImpl { Impl* pimpl; PImpl() : pimpl(new Impl) { } ~PImpl() { delete pimpl; } void DoSomething(); }; PImpl.cpp #include "PImpl.hpp" #include "Impl.hpp" void PImpl::DoSomething() {

c – Pimpl习语实现取决于模板函数

请考虑以下代码. template参数是一个必须提供函数bar()的处理程序类. 我正在使用Pimpl成语来隐藏Foo的实现细节.在拥有模板参数之前,构造函数定义在foo.cpp中,并且一切都很好. /////////// // foo.h /////////// class Foo { public: template <class Handler> F

c – 在Qt中使用Pimpl成语,搜索简洁的方式

我和Qt&的问题pimpl实际上不是问题,更多是对最佳实践建议的要求. 所以:我们有一个包含大量GUI和其他Qt类的大型项目.标头的可读性是精细协作所必需的,减少编译时间也是经常考虑的问题. 因此,我有很多类,如: class SomeAwesomeClass: public QWidget { Q_OBJECT public: /**/

c – 如何返回通用迭代器(独立于特定容器)?

我想设计一个类Foo,它存储不同类型的各种数据,并通过它们返回迭代器.它应该是通用的,因此Foo的用户不知道数据是如何存储的(Foo可能使用std :: set或std :: vector或其他). 我很想写一个这样的界面: class Foo { class FooImpl; FooImpl* impl_; public: const Iterator<std:

C Pimpl与纯虚拟接口性能

我知道有很多关于这个主题的帖子,但我很难找到这个问题的答案. 对于更快的函数调用,纯虚拟接口还是pimpl? 乍一看,在我看来,纯虚拟接口会更快,因为使用pimpl将花费两个函数调用而不是一个…或者在这种情况下某些聪明的编译器技巧会接管吗? 编辑: 我试图决定我应该使用哪些来抽象出几个

使用std :: unique_ptr的C Pimpl Idiom Incomplete Type

我为证明问题所需的大量代码道歉.我在使用带有std :: unique_ptr的pimpl习惯用法时遇到了问题.具体地说,当一个类(具有pimpl’ed实现)被用作具有pimpl’ed实现的另一个复合类中的成员数据时,似乎会出现问题. 我能找到的大多数答案都缺少explicit destructor declaration,但正如你在