sfinae 相关问题

替换失败不是错误。这是一种C ++编程技术,允许模板验证有关其模板参数的属性,从而允许在某些类型的对象可用时使用不同的特化。

如何使用SFINAE停用我的'Pow(T)`的非整体版本?

我被要求使用SFiNAE拒绝我的Pow(T)模板功能的非集成版本。因此,如果推导的类型为整数,则返回参数*参数,否则不执行任何操作,仅通知...

回答 1 投票 0

为什么我们不能直接使用类模板来推导方法模板? SFINAE

此代码有效:// // g ++ -std = c ++ 11 //(或)// clang ++ -std = c ++ 11 #include template struct Tester {template ... ] > ] >>

回答 1 投票 2

如何检测是否是否定义了T :: is_transparent?

是否有用于测试的通用模板/宏,例如。如果定义了名称,则为ala。 is_transparent如何工作。 is_transparent使比较器对std :: set透明(即可以使用...

回答 1 投票 1

[如果存在,则c调用c函数

我有一些自动生成的C ++代码来包装一些C代码。 C代码具有可预测的结构,但具有/不具有某些功能。由于C ++代码是...

回答 2 投票 1

SFINAE-检测类型T是具有随机访问运算符的给定值类型的指针,数组还是容器

我正在与SFINAE进行斗争,试图拥有许多只需要使用运算符[]访问类型T的功能。到目前为止,我有以下代码可以在Visual上编译并正常工作...

回答 1 投票 0

[C ++派生类的重写成员函数返回派生类的数组

我正在尝试编写一个从根节点开始搜索树中节点的程序。因为我希望搜索算法尽可能通用,所以我想使用模板,并且我想使用...

回答 1 投票 0

为什么匹配模板类上的部分类模板特化与另一个没有模板匹配的部分特化是模棱两可的?

问题可能很难在标题中的句子中描述,但这是一个最小的示例:#include #include 模板

回答 1 投票 5

类外部的类函数模板定义

所以我一直在编码自己的unique_ptr类,因此我必须以与处理其他类型不同的方式来处理数组。模板 :: value> ...

回答 1 投票 1

[使用enable_if选择类构造函数

请考虑以下代码:#include #include template struct A {int val = 0;模板

回答 3 投票 46

SFINAE,如果实现了运算符,则调用函子

我有一个std :: tuple,带有一堆函子,可实现具有不同参数的回调。我想在编译时遍历元组,并执行与...

回答 1 投票 0

enable_if()以禁用模板化类的静态成员函数声明

我正在尝试在模板类中声明函数,以便函数声明取决于模板类型参数。 template struct Block {static bool parse(int32_t index,...

回答 1 投票 0

构造函数SFINAE,继承失败,用clang

以下代码在GCC下可正常编译,但在clang中失败,并显示以下错误:没有匹配的构造函数来初始化'Bar'问题似乎是clang认为模板构造函数...

回答 1 投票 1

使用`std :: enable_if`失败转发包装器

我正在尝试创建一个转发包装函数,该函数对c ++ 14中的函数调用进行计时。我需要处理2种类型,一种是计时不返回值的函数,而...

回答 2 投票 0

寻找用于`enable_if`的`is_allocator`类型特性>>

是否存在“足够”可靠的方法来检测模板参数中的分配器。也就是说,我需要可以在enable_if中使用的is_allocator类型特征之类的东西:假设存在...

回答 3 投票 5

用于const和非const类型的相同模板特化

我有以下代码:#include A类{}; B类{}; template void Do(T data){std :: cout < void Do(A * data)...

回答 2 投票 0

SFINAE与标签分发之间的差异

在此视频中,https://youtu.be/Vkck4EU2lOU?t = 582“标签分发”和SFINAE作为替代方案被提出,从而可以实现所需模板功能的选择。这是正确的吗?是不是......>

回答 1 投票 0

C ++ SFINAE:如果可能,对标准集合进行排序

我已经看到了与SFINAE相关的各种答案,这些答案取决于类是否具有特定功能而有条件地调用函数。它们与我要达到的目标大不相同,...

回答 1 投票 0

如何允许函数接受指定的类型?

因此,我希望我的函数接受模板化参数,如下所示:template void foo(T test)我只希望foo接受我指定的所有这些类型。说我有...

回答 2 投票 0

[C ++ 11函数模板专门存在于类方法中]

我有这个功能模板:template Json :: Value write_json(const T&object);当T为int时,特化很简单:template <> Json :: Value write_json(const ...

回答 1 投票 1

验证(使用static_assert)元组类型遵循某种顺序(有状态编译时检查)

对于相对较旧的软件中的某些序列化应用程序,我的类型看起来像这样:使用T = boost :: tuple ,std :: vector&...

回答 1 投票 1

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