crtp 相关问题

奇怪的重复模板模式(CRTP)是一种C ++习语,其中类X派生自使用X本身作为模板参数的类模板实例化。

CRTP在抽象类上的好处?

我对“好奇地重复使用的模板模式”这个概念不熟悉,我在这里读到它的潜在用例。在那篇文章中,作者描述了一个简单的例子,其中我们有两个或多个...

回答 1 投票 0

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。

回答 1 投票 0

c ++使用CRTP为可变模板中的每种类型创建纯虚拟重载

我想为可变参数模板中的每种类型创建一个纯虚拟接口。例如,一个类:overloads_interface 定义了以下功能:虚拟虚空重载(...

回答 2 投票 1

C ++可以通过std :: variant获得当前类型的std :: typeindex

我如何通过c ++中的一个变体获取当前帮助类型的std :: typeindex?说我有一个变体:使用variant_t = std :: variant ;我想...

回答 1 投票 0

使用CRTP将基类的子类传递给构造函数?

我具有以下基类:class BaseVisitor {public:virtual〜BaseVisitor(){}; }; template class Visitor {public:virtual void visit(T&)= 0; };模板

回答 1 投票 0

CRTP多级继承使用另一个模板参数实例化中间类

给出这样的多级继承CRTP类结构,其中中间类B具有另一个模板参数T,我应该如何实例化B的对象?模板

回答 1 投票 0

从基本调用访问派生的crtp类的函数

我需要能够从基本CRTP类中访问派生类的静态方法。有什么方法可以实现这一目标?这是示例代码:#define REQUIRES(...)std :: ...

回答 1 投票 1

使用CRTP创建特征矩阵

我有一个包含一些本征矩阵作为成员的类层次结构,但它们的大小依赖于派生类。我希望能够在基类中声明的矩阵,但有大小...

回答 2 投票 0

CRTP和多级继承

我的一个朋友问我“如何使用CRTP在多级继承来代替多态性”。更确切地说,在这样的情况:结构A {空白栏(){//做一些事情,然后调用...

回答 7 投票 22

如何执行从CRTP基类中的所有函数可变参数派生类?

我有一个CRTP派生类是所有CRTP基类是可以继承的可变参数模板。我想执行从每一个继承的类(本例中的打印功能)的功能...

回答 2 投票 2

CRTP自动注册工厂(静态初始化命令惨败)

我正在尝试自动注册CRTP工厂类。我的目标是不使用宏来注册类类型,也不使用explicitely调用寄存器方法。我根据这个答案做了我的尝试:......

回答 1 投票 1

CRTP共享指针的C ++向量

在我寻找一种在容器中存储CRTP对象的方法时,我发现了以下问题:C ++中奇怪重复模板模式(CRTP)的多态集合?我试着标记了......

回答 2 投票 0

在C ++中,是否可以将CRTP与私有库一起使用?

在C ++中,我有很多类,与继承无关,它们定义了一个方法std :: string get_name()const。有许多类需要的实用函数是根据......实现的。

回答 1 投票 2

懒惰评估依赖类型(CRTP)[重复]

我想要下面的代码片段:模板 struct foo_base {auto get(typename Self :: type n){return n; }};模板 struct foo:public ...

回答 1 投票 7

为什么CRTP中的向下转发定义了行为

我已经使用了CRTP模式一段时间,但是阅读有关向下转换的未定义行为的答案我不明白为什么static_cast (这),这是......

回答 1 投票 1

带有自定义初始化的C ++静态调度

我想将CRTP用于我的代码的性能敏感部分。但是,我的基类有一个bitset,其大小取决于派生类。我希望这样的东西能起作用:......

回答 1 投票 2

来自CRTP base的Operator ++对于编译器是不可见的

以下面的代码为例:模板 struct base {派生的运算符++(int){auto tmp = static_cast (*这个); ++的static_cast&...

回答 2 投票 1

从C ++中的子类调用重载的父方法

我试图了解是否可以从子类调用父级的函数成员。基本上我有以下代码:struct Parent {template void doFoo(...

回答 1 投票 -1

c ++ static polymorphism(CRTP)在评估`static constexpr`时导致不完整类型

我需要访问一个静态constexpr和一个解决方案,我把它放在一起工作与gcc(实例)但不与vc ++(实例)。代码如下:模板 class Base {...

回答 3 投票 1

类型特征检查CRTP派生,在基类中,问题是未定义类型

寻找像EvalDelay下面的解决方案来修复未定义的类型问题EvalDelay是我尝试解决问题,但没有工作因为在派生的基类中检查了traits,派生的是...

回答 1 投票 1

© www.soinside.com 2019 - 2024. All rights reserved.