腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
3
回答
确保从父
CRTP
类派生
的
类实现函数。
c++
、
c++11
、
crtp
简介: 我希望确保
派生类
实现父
CRTP
类
中
的
函数所需
的
成员函数。然后,Base提供
的
接口由只需要Base::Params和Base类型
的
指针/引用
的
高级函数
使用
。我
的
问题是确保任何Imp都提供专门
的
myFunc。为了避免无限递归,Imp必须实现myFunc。我
的
第一次尝试是在
CRTP
中
添加一个纯虚拟函数。
使用
了一个st
浏览 1
提问于2015-09-02
得票数 10
2
回答
CRTP
:
使用
派生类
中
的
静态
常量
表达式
c++
我
的
CRTP
派生类
有一些我
使用
static constexpr定义
的
编译时固定维度。现在,我想将它用作基类
中
的
静态
变量。我该怎么做呢?argument is not a constant expression ^ 我也考虑过
使用
std::array<size_t, derived_cast().n&
浏览 17
提问于2021-05-31
得票数 0
回答已采纳
1
回答
获取包含类
的
类型
c++
我希望有一个宏,它
使用
它所在
的
类
的
类型,而不是将该名称传递给宏。为此,我尝试了typedef decltype(*this) my_type;,但this只能在非
静态
成员函数中
使用
。有什么想法吗?编辑(注释副本): 我已经创建了一个基类和一组宏,它们
使用
CRTP
无缝地实现类数据
的
三重缓冲。当一个三重缓冲类从另一个三重缓冲类继承而来时,实际上有两个基础--隐藏在宏
中
的
CRTP
基础和显式基础。由于显式基
浏览 2
提问于2013-02-09
得票数 4
回答已采纳
2
回答
CRTP
中
静态
模板成员
的
初始化
c++
、
static
、
crtp
我尝试初始化
CRTP
基类
的
静态
成员。基类保存
派生类
的
静态
模板成员,而
派生类
定义其他数据成员。我想
静态
地初始化这个变量。在代码
中
,最小
的
示例如下:class base { static DERIVED x; class怎样才能让
静态
初始化起作用?
浏览 3
提问于2020-10-29
得票数 0
2
回答
静态
多态性
的
策略和
CRTP
有什么不同?
c++
、
design-patterns
、
inheritance
、
crtp
、
static-polymorphism
我想要一个具有多种可能实现
的
接口,在编译时选择。我看到
CRTP
是实现这一点
的
最佳选择。为什么会这样呢?void Implementation() {}CrtpImplementation
crtp
; 不幸
的
是,在这两种情况下,编译器都不能捕获BrokenInterface,除非我实际尝试
使用
它。策略变体对我来说似乎更好,因为它避免了丑陋
的
static_ca
浏览 4
提问于2014-01-11
得票数 9
2
回答
从基类初始化
派生类
c++
、
c++11
、
inheritance
我有一个类似于此
的
基类(但下面没有编译): virtual void foo()=0; {::type; }Base有很多
派生类
,我想要做
的
是让它
的
所有
派生类
从Base继承这个init()函数并初始化它们自己(通过调用它们<e
浏览 3
提问于2017-09-14
得票数 1
4
回答
基于string - C++
的
派生类
选择
c++
、
inheritance
、
crtp
,添加一个新
的
派生类
需要在三个额外位置进行更改: 我决定找到一个更简单
的
解决方案,最后得到了两个版本,这两个版本都通过
使用
指向创建新对象
的
静态
函数
的
指针来避免此外,每个
派生类
都必须具有
静态
create()方法。经过一些额外
的
搜索之后,我发现可以
使用
消除后一个需求,而代价是额外
的
浏览 7
提问于2014-06-09
得票数 1
回答已采纳
1
回答
CRTP
:为什么要获得
派生类
的
嵌套类型和嵌套方法?
c++
、
templates
、
crtp
CRTP
模式
中
的
基类可以访问
派生类
的
成员函数,但它不能访问
派生类
中
的
嵌套类型。template<typename Derived>{ struct X : public
crtp
_base<X>
浏览 0
提问于2018-07-27
得票数 7
回答已采纳
2
回答
从隐式派生
的
子类
中
隐藏方法(C++)
c++
、
multiple-inheritance
我
的
问题是如何让这个例子更优雅。 这段代码
的
内容:我有一个
CRTP
类,它通过将函数DT注入到
派生类
中
来修饰它
的
派生类
func。这个
派生类
是A和B。此外,B也是从A派生
的
。要解决此歧义,需要将using
CRTP
< B >::func添加到类B
中
。还要注意,由于func方法
的
返回类型,它始终是返回
的
DT类型。我
的
问题是:有没有比显式地为
浏览 2
提问于2014-03-12
得票数 3
1
回答
使用
模板返回值从函数
中
删除类型
c++
、
c++11
... }};B b1;在每个
派生类
中
我想要这样
的
东西:B* b2 = b1.Clone();
浏览 4
提问于2017-05-09
得票数 14
回答已采纳
1
回答
具有纯抽象基类
的
CRTP
:调用开销
c++
、
templates
、
crtp
我在一些课程中
使用
CRTP
。但是,我需要均匀地存储这些类,例如,将它们存储在std::vector
中
。// Base class has a pure virtual function for cloningpublic: virtual void draw() = 0;
浏览 6
提问于2017-11-23
得票数 1
3
回答
类层次虚拟方法
的
CRTP
参数
c++
、
templates
、
inheritance
、
virtual
、
crtp
然而,在我
的
特定环境
中
,有一个有限
的
和已知
的
数量
的
CRTP
专门化。因此,可以在每个专门化
中
定义一个虚拟方法重载,并在子类
中
覆盖这些重载。我准备了一个小
的
MWE来演示我
的
情况。<T>
的
每个专门化都有一个虚拟方法,无论是在纯虚拟基
中
还是在其所有
派生类
中
。随着CRTPBase<T>和更多
派生类
VirtualBa
浏览 18
提问于2021-12-07
得票数 1
1
回答
如何填充循环模板
派生类
的
静态
成员?
c++
、
qt
、
templates
、
crtp
{} static const QMap<QString, const QMetaObject *> m_indexes; }; 因为我将有几个具有完全相同
的
基结构
的
其他类,多态性很明显,但我需要
的
是每个
派生类
的
static const m_indexes是唯一
的
,我发现我可以
使用
递归模板来做我需要
的
事情,但是我不知道如何在编译时“填充”我唯一
的
静态
常量
浏览 17
提问于2019-01-04
得票数 0
回答已采纳
2
回答
如何在常数
表达式
中进行幂运算?
c#
、
math
、
constants
、
c#-6.0
、
exponent
使用
指数运算符^初始化VB类在之后
的
公共
常量
。但是,我发现C#没有相同
的
运算符(^仍然是一个运算符,但仅作为按位
的
xor)。 Math.Pow()是运算符
的
,但不能在
常量
表达式
中
使用
。那么,如何用C#
中
的
指数
表达式
初始化一个常数呢?(我不
使用
值而不是
表达式
,因为
表达式
中
的
值也是
常量</
浏览 1
提问于2017-05-31
得票数 8
回答已采纳
3
回答
继承泛型成员函数
c++
、
c++17
、
crtp
、
member-functions
我正在尝试将模板化成员函数
的
定义和声明从基类转移到
派生类
。问题是,这些函数
中
的
一些行为依赖于类,基本上是
静态
多态性。我被推荐
使用
CRTP
,它在大多数情况下工作得很好。但是,如果我想继承一个已经从我
的
CRTP
基类继承
的
类,我就遇到了一个问题。我只是想避免在所有类
中
重新声明/重新定义所有成员函数。至于免费函数,我只是将它们模板化,但成员函数已经被证明是一个问题。 我已经用Brian
的<
浏览 30
提问于2019-07-18
得票数 1
回答已采纳
2
回答
可以将引用传递给可变模板函数吗?
c++
、
c++11
、
pass-by-reference
、
variadic-templates
假设我有一个
使用
CRTP
并提供可变模板
静态
成员函数
的
基类struct task_impl : library::task /*some useful functionality implemented using
CRTP
*/ static void spawn(
浏览 0
提问于2013-03-27
得票数 4
回答已采纳
2
回答
在c++
中
是否有一种方法可以让
派生类
覆盖基类
静态
方法?
c++
、
class
、
inheritance
在B类
中
,我希望有一个
静态
方法getInfo(),它返回一个BaseInfo类(基本上是一个包含类B
的
缺省成员值
的
类),因此使其
静态
是有意义
的
,因为不需要特定
的
实例。现在,是否有一种方法可以强制
派生类
实现此方法?显然,每个
派生类
对于类成员都有自己
的
默认值。理想情况下,如果在基类
中
我可以将getInfo()声明为虚拟
静态
,那就太好了,但是由于C++
中
没有这样
浏览 3
提问于2017-05-14
得票数 2
回答已采纳
1
回答
只允许基类
的
enable_if
inheritance
、
c++11
、
operator-overloading
、
crtp
、
enable-if
我目前正在用一个基类template<class
CRTP
> Base和
派生类
Derived1 : public Base<Derived1>,Derived2 : public Base<Derived2数学运算符是在Base
中
定义
的
,其类型为
CRTP
Base<
CRTP
>::operator+(const
CRTP
& rhs),这意味着我们可以将Derived1添加到Derived1
中
,而不能将De
浏览 3
提问于2012-08-18
得票数 1
回答已采纳
1
回答
用于
静态
多态性
的
CRTP
与名称隐藏
c++
、
templates
、
polymorphism
使用
奇怪
的
反复出现
的
模板模式(
CRTP
)与名称隐藏有什么不同,以实现
静态
多态性?例如,下面是一个简单
的
示例,演示
使用
CRTP
和名称隐藏
的
静态
多态性:struct BaseCRTP { b.foo();} int main(int argc, char** argv)
浏览 2
提问于2015-02-18
得票数 0
回答已采纳
1
回答
奇怪
的
是,在基类
中
反复出现模板模式和静力学。
c++
、
static
、
crtp
、
static-polymorphism
因此,感谢,我正在考虑用
CRTP
实现我
的
问题。不过,我有个问题。在我
的
静态
基类
中
,我有2组函数。一个是std::向量,另一个是标准
的
C样式数组。因此,在基类
中
,我定义了一个
静态
函数,它调用非std::向量函数。Derived::Func( stlVec ); 从
派生类
中
引发一
浏览 4
提问于2013-08-09
得票数 1
回答已采纳
点击加载更多
相关
资讯
MP中lambda表达式的使用方法及其优势
计算机等级考试二级C+全攻略
Python中lambda表达式的优缺点及使用场景
C/C+基础知识总结
springboot使用thymeleaf的方式引用static中的静态资源方法,引用框架文件资源方法
热门
标签
更多标签
云服务器
对象存储
ICP备案
云点播
语音识别
活动推荐
运营活动
广告
关闭
领券