sfinae 相关问题

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

SFINAE:检测成员变量的存在对g ++不起作用

我试图结合这个答案中使用的方法来检测一个类是否有一个成员变量x和这个答案根据使用enable_if选择不同的实现。 ...

回答 2 投票 5

如何禁用某些模板类型的类成员函数

这看起来很简单,但是我对std :: enable_if的语法有些困难。情况其实很简单。带有模板参数T 2函数的模板类,不应该......

回答 1 投票 3

模糊重载函数仅由参数的模板参数不同

请考虑以下代码:SmartPointer 修复(智能指针 数据){return {/ * Fixed Data * /}; SmartPointer 修复(智能指针 dataWrapper)...

回答 2 投票 1

为什么class :: class :: class :: staticClassMember()编译(用C ++编写)?

我一定错过了C ++规范中的一些东西,因为我无法解释为什么下面的代码成功编译:class MyClass {static void fun(); }; int main(){MyClass :: MyClass :: MyClass :: ...

回答 1 投票 3

如何将反射添加到C ++应用程序?

我希望能够内省一个C ++类的名称,内容(即成员及其类型)等。我在这里说的是原生C ++,而不是托管C ++,它有反射。我意识到C ++提供了一些......

回答 32 投票 227

检查两种类型是否属于同一模板

我想检查两种类型是否属于同一模板。作为一个例子,我希望下面的代码片段返回true,因为尽管内部元素不同,但两个对象都是向量...

回答 3 投票 2

在派生类中重载模板运算符[重复]

给定基类和派生类,它们都使用SFINAE为特定参数类型提供有条件启用的运算符:#include class Base {public:template&...

回答 1 投票 5

如果enable_if确定T是容器,则启用结构?

我正在尝试构建一个模板化的结构,只接受T的容器。我发现这篇文章展示了如何确定传入的值是否是容器。所以我决定继续......

回答 1 投票 2

С++可变参数模板:实现可变参数仿函数

我的同事给了我一个“小小测验”,他让他的学生解决了一次。似乎我虚弱的头脑无法理解现代C ++功能的所有美感。主题:......

回答 2 投票 2

模板类中的模板化构造函数

我试图通过将行和列定义为模板参数来实现Matrix类。此外,我认为Vector是一个'降级'矩阵类,它共享大部分代码。我想要 ...

回答 1 投票 0

如何在C ++ 11中定义SFINAE和静态断言的约束

我正在尝试使用模板进行序列化/反序列化,现在有了一些工作。显然,在实现它时,我遇到了许多带有数百个编译器错误日志的麻烦。 ...

回答 2 投票 2

如何使用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

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