`std :: enable_if`是一个C ++元函数模板,参数`bool B`,`class T = void`,在标准C ++头文件`type_traits`中定义。如果`B`为真,则实例化类定义一个等于`T`的公共成员类型`type`;否则它没有。
使用enable_if在按值传递与按引用传递之间更改函数声明
我正在编写模板化的哈希图。因为如果模板类型是基本类型,我希望函数声明通过引用传递。例如,使用以下声明:template
所以我想做2个功能:一个用于数字(带有模板),另一个用于字符串。这是我的最佳尝试:标头:class myIO {public:template
我正在尝试了解具有默认参数的部分模板专业化。如果我将is_comparable专长中的强制转换删除,则打印的值始终为false,而如果我保留...
C ++ std :: enable_if fallback?
我正在设置可变参数模板函数,以便能够在特定系列的类上调用各种函数重载。到目前为止,当一个不受支持的类时,我已经能够“破坏”编译...
我希望有一个基于类的模板参数的值来禁用/启用成员函数的类。我有以下内容:枚举MyType {type1,type2};模板
通常将std :: hash专门用于std :: shared_ptr结构
我有一个基类。目标是使用从Base继承的所有类强制对std :: shared_ptr专用化std :: hash。我已经尝试过使用虚拟模板的以下方法...
C ++使用std :: enable_if创建最多10个参数的std :: tuple专业化
我想创建一个具有最多10个args专业化的元组,类似于std :: pair是两个args的专业化方式。即元组 将具有成员first(),second(),...
虚拟模板参数中的SFINAE和std :: enable_if以基于两个条件选择结构
让我们说,要用part 调用模板化的结构部件,其中D是U型的:template struct part {};我们有两种情况:U是无符号类型,D%(...
我想编写一个函数,该函数返回类型T的实例,但其行为取决于如何构造T。说我有这样的结构#include ...
我正在尝试了解std :: enable_if,cppreference.com上有一个示例,它比函数重载有什么好处?结构T {枚举{int_t,float_t} m_type; ...
我试图理解enable_if,cppreference.com上有一个示例,这种使用比函数重载有什么好处?下面的代码部分正在做同样的事情。结构T {枚举{...
enable_if在转换构造函数上(静态转换,is_base_of)
我正在研究共享指针的实现。 (如果需要的话,使用C ++ 17)唯一的问题是转换构造函数。我希望能够将smart_ptr静态转换为...
我正在尝试将数字类型转换为以前导0表示的定长字符串表示形式(在只能处理字符串的GUI中使用-而且字典的数字排序确实很尴尬)。 ...
我如何使用std :: enable_if元函数实现类模板函数?
我在类模板中使用了std :: enable_if元函数来指定只允许为以GameCard为基类的变量生成类。这可以正常工作...
检查类型是否直接从“如果……启用时”上下文中的另一类型派生(是其子代)
C ++具有is_base_of 。但是,这也包括“祖父母”类型。有没有办法获得is_child_of 功能?目的是将类型用作...
我在一个模板化类上工作,其方法定义在cpp文件中。现在,我想添加另一个仅对某些类模板参数启用的方法。我目前的做法:....
“功能模板已经定义”,使用“ std :: enable_if_t” [重复]
我正在尝试使用std :: enable_if_t根据传递给它的类型的特征来切换模板函数的实现。这是一个示例:#include #include
我打算让类'MyVector'具有3D坐标(X,Y,Z)。我尝试使构造函数具有三种类型的函数参数,每种参数类型都满足std :: is_arithmetic。我做了...
以下示例在所有主要编译器中均失败:clang,gcc和Visual Studio。我想知道这是怎么回事,这似乎很简单:如果sizeof ...(TYPES)== 2,那么它应该...
如何使用cpp中的std :: enable_if从模板处理此类问题
我正在尝试创建将任何元素或元素序列写入输出流的函数。我使用std :: enable_if使用模板来完成。函数有2个版本:第一个用于处理...