sfinae 相关问题

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

如何使用SFINAE禁用方法重载集?

我正在编写一个有两个参数的模板类。这个类还包含一个带有两个重载的方法,它接受一个类模板参数指定的类型的值,...

回答 2 投票 1

如何使用sfinae选择构造函数?

在模板元编程中,可以在返回类型上使用SFINAE来选择某个模板成员函数,即模板 struct A {int sum()const noexcept {return _sum

回答 4 投票 23

使用enable_if澄清成员函数模板特化

我想了解我在试图最小化我的成员函数模板专业化的详细程度时出错了。我这样做时会出现编译错误。这是......

回答 2 投票 0

使用可变参数函数参数对is_detected进行泛化

我正在尝试修改is_detected惯用法以允许向其传递可变参数。我需要这个,因为我检测到的一些成员函数会有用户提供的参数。到目前为止,这就是我......

回答 1 投票 1

是否可以编写模板来检查函数的存在?

是否可以编写一个模板来改变行为,具体取决于是否在类上定义了某个成员函数?这是我想写的一个简单例子:模板

回答 25 投票 438

使用std :: enable_if和具体类型的模板类专门化

我有JsonFormatter模板类,专门用于不同的类型,如算术等...通过以下方式:模板 class JsonFormatter; ...

回答 3 投票 2

如何检测方法是否是虚拟的?

我试图找出一个特征来查找方法是否是虚拟的:(https://ideone.com/9pfaCZ)//几个结构应该失败,这取决于T :: f是否为虚拟。模板 struct Dvf:......

回答 2 投票 29

如何在template参数为bidirectional_iterator时启用模板类专门化?

我想创建一个模板类,它在构造函数中仅接受双向迭代器作为参数(用于初始化其数据成员)。我正在尝试使用enable_if和...

回答 1 投票 1

无法在Visual Studio 2017中明确专门化

我正在使用cocos2d-x在mac和windows上玩游戏。我首先在Xcode中编写代码,可以在mac上运行。当我把它带到Windows并尝试在Visual中构建时出现错误...

回答 1 投票 0

使用不可转换类型的std :: conditional(原始vs指针)

我正在尝试编写一个类模板,它选择存储成员变量raw或作为指针,具体取决于MAX_SIZE模板参数。当我尝试使用足够大的MAX_SIZE实例化它时...

回答 3 投票 0

替换的用途是什么,不是失败

我有一个类,我使用模板的Jav :: String。 class String {String();串(的std ::为size_t);模板 String(const ITER_WRAP&iterator_begin_end); } ...

回答 1 投票 0

如何使用SFINAE创建相同方法的2种不同实现

我已经阅读了一些关于SFINAE的文章,但找不到我的案例的解决方案。这就是我想要做的事:#include struct CByteArray {}; struct HLVariant {HLVariant(){} ...

回答 2 投票 8

折叠表达式与编译递归

在c ++ 17中,我们有fold表达式,它可以大大简化代码,否则可以使用编译器递归和SFINAE或重载来实现。例如,在以下代码中#include&...

回答 3 投票 2

C ++ SFINAE的例子?

我想进入更多的模板元编程。我知道SFINAE代表“替换失败不是错误”。但有人能告诉我SFINAE的用处吗?

回答 8 投票 103

为什么以下程序没有选择与第一个模板参数相同类型的参数?

我正在尝试编写一个f这样的函数 (args ..)返回类型T的第一个参数。以下程序似乎总是选择第一个特殊化,从而打印97(ASCII代码...

回答 2 投票 6

如何将模板参数从类型更改为非类型使SFINAE工作?

来自关于std :: enable_if的cppreference.com文章,Notes一个常见的错误是声明两个仅在默认模板参数上不同的函数模板。这是非法的,因为......

回答 6 投票 7

SFINAE和其他的表现

我知道如果否则可能会产生管道失速(气泡),因为分支预测器不能保持100%的正确猜测。总而言之,很多if ifif elif ...其他表现不佳。在里面 ...

回答 1 投票 0

模板非类型参数具有不同类型

假设输入模板参数T可能有也可能没有内部变量条。我正在尝试编写一个结构,当我们拥有它时返回bar的值,并在我们没有时返回一些常量...

回答 3 投票 2

检查模板方法是否存在而不依赖于自动模板扣除

如果定义了具有给定签名的模板方法,是否可以编写测试人员?该方法具有以下签名:模板 ReturnType get(std :: string){...

回答 1 投票 2

SFINAE以及自动推导的返回类型和可变参数模板

在本主题中,我们将学习如何将SFINAE与auto / self-deduced返回类型一起使用:如何将std :: enable_if与自推理返回类型一起使用?但是,似乎我无法应用任何......

回答 1 投票 0

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