奇怪的重复模板模式(CRTP)是一种C ++习语,其中类X派生自使用X本身作为模板参数的类模板实例化。
我对“好奇地重复使用的模板模式”这个概念不熟悉,我在这里读到它的潜在用例。在那篇文章中,作者描述了一个简单的例子,其中我们有两个或多个...
std :: enable_shared_from_this的CRTP
[enable_shared_from_this必须以公共方式继承。 之间有区别 class BinaryOp: public ASTNode, std::enable_shared_from_this<BinaryOp> 和 class BinaryOp: public ASTNode, public std::enable_shared_from_this<BinaryOp> 您错过了public。因此,默认情况下使用private。
我想为可变参数模板中的每种类型创建一个纯虚拟接口。例如,一个类:overloads_interface 定义了以下功能:虚拟虚空重载(...
C ++可以通过std :: variant获得当前类型的std :: typeindex
我如何通过c ++中的一个变体获取当前帮助类型的std :: typeindex?说我有一个变体:使用variant_t = std :: variant ;我想...
我具有以下基类:class BaseVisitor {public:virtual〜BaseVisitor(){}; }; template class Visitor {public:virtual void visit(T&)= 0; };模板
给出这样的多级继承CRTP类结构,其中中间类B具有另一个模板参数T,我应该如何实例化B的对象?模板
我需要能够从基本CRTP类中访问派生类的静态方法。有什么方法可以实现这一目标?这是示例代码:#define REQUIRES(...)std :: ...
我有一个包含一些本征矩阵作为成员的类层次结构,但它们的大小依赖于派生类。我希望能够在基类中声明的矩阵,但有大小...
我的一个朋友问我“如何使用CRTP在多级继承来代替多态性”。更确切地说,在这样的情况:结构A {空白栏(){//做一些事情,然后调用...
我有一个CRTP派生类是所有CRTP基类是可以继承的可变参数模板。我想执行从每一个继承的类(本例中的打印功能)的功能...
我正在尝试自动注册CRTP工厂类。我的目标是不使用宏来注册类类型,也不使用explicitely调用寄存器方法。我根据这个答案做了我的尝试:......
在我寻找一种在容器中存储CRTP对象的方法时,我发现了以下问题:C ++中奇怪重复模板模式(CRTP)的多态集合?我试着标记了......
在C ++中,我有很多类,与继承无关,它们定义了一个方法std :: string get_name()const。有许多类需要的实用函数是根据......实现的。
我想要下面的代码片段:模板 struct foo_base {auto get(typename Self :: type n){return n; }};模板 struct foo:public ...
我已经使用了CRTP模式一段时间,但是阅读有关向下转换的未定义行为的答案我不明白为什么static_cast (这),这是......
我想将CRTP用于我的代码的性能敏感部分。但是,我的基类有一个bitset,其大小取决于派生类。我希望这样的东西能起作用:......
来自CRTP base的Operator ++对于编译器是不可见的
以下面的代码为例:模板 struct base {派生的运算符++(int){auto tmp = static_cast (*这个); ++的static_cast&...
我试图了解是否可以从子类调用父级的函数成员。基本上我有以下代码:struct Parent {template void doFoo(...
c ++ static polymorphism(CRTP)在评估`static constexpr`时导致不完整类型
我需要访问一个静态constexpr和一个解决方案,我把它放在一起工作与gcc(实例)但不与vc ++(实例)。代码如下:模板 class Base {...
寻找像EvalDelay下面的解决方案来修复未定义的类型问题EvalDelay是我尝试解决问题,但没有工作因为在派生的基类中检查了traits,派生的是...