sfinae 相关问题

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

SFINAE的模板专业化

我一直在使用模板很长一段时间,但最近我遇到了一个奇怪的SFINAE模板编程。我的问题是为什么我们写typename = {something}作为模板......

回答 3 投票 0

如何检测一个类是否有成员变量?

问题我想检测一个类是否有成员变量,如果有的话就失败静态断言。类似于:struct b {int a; } static_assert(!has_member_variables,“Class ...

回答 2 投票 8

带有typename的Concepts / SFINAE错误

我正在尝试使用新的概念语法为自己做一个简单的例子。我决定测试一个类型是否定义了operator(),并创建了一个结构来使用SFINAE范例来测试它,但我...

回答 2 投票 1

使`std :: get`与SFINAE一起玩得很好

std :: get似乎不是SFINAE友好的,如以下测试用例所示:模板 auto foo(C&c) - > decltype(std :: get (c)){return std :: get

回答 3 投票 15

在编译时迭代检查函数是否存在

关于我现在面临的一个问题,我有一个问题。在C ++中,我创建了一个帮助程序,能够检测给定模板方法的模板参数是否实现了序列化方法(...

回答 2 投票 1

隐藏超载虚拟功能的模板访问者:使用SFINAE?

我正在编写访问者模板(取决于我们想要访问的类型):#include #包括 #包括 #包括 上课;上课...

回答 2 投票 1

SFINAE:它如何与派生类一起使用?

我写了以下代码:template class Int {public:int value; };模板 class类:public Int {}; int var;模板

回答 1 投票 0

SFINAE未能使用中间类型特征

请考虑以下测试代码://预处理器#include #包括 //没有类型别名模板的结构 struct invalid {}; // 结构体 ...

回答 3 投票 1

如何区分功能类型与SFINAE

我正在读书C ++模板。它提到SFINAE(替换失败不是错误)主体可用于检测函数类型。代码示例:模板 class IsFunctionT {...

回答 2 投票 4

SFINAE模板成员重载

我想专门研究getVector成员函数,我正在尝试使用SFINAE。但它只有在Dim为3或更高时才有效。模板 class Mat {...模板

回答 1 投票 2

具有特征参数的模板特化函数

我试图用特殊类型的模板特化来编写一些函数,遵循这个问题:Eigen:类型演绎模板特化基类我写道:#include

回答 2 投票 1

用于成员函数检测的递归type_traits

我试图递归地应用type_trait has_fun,这样只有当T有一个时,C才会启用其有趣的成员函数。有没有办法让C :: fun被有条件地检测出来?模板

回答 4 投票 4

如何使用布尔模板参数启用成员函数?

我希望一个类有两个不同的push实现,并根据布尔模板参数进行选择。我尝试使用此答案中描述的SFINAE原则,如下所示:template&...

回答 2 投票 3

混合void_t和可变参数模板?

请考虑以下代码:template > struct is_invokable:std :: false_type {};模板 struct is_invokable&...

回答 2 投票 4

SFINAE在无效和非空方法之间发送

我有类似以下内容:模板 struct Base {auto func(){// do stuff auto x = static_cast (*此).func_impl(); // 做东西 ...

回答 2 投票 2

基于SFINAE的序列化解决方案无法在C ++中实例化重载的模板化函数

我正在尝试序列化模板类MState 或多或少一般。为此,我有一个父抽象类MVariable,它使用以下形式实现了几个序列化函数:...

回答 1 投票 1

SFINAE和参数数量

我有一个模板类C 我打算用T作为其他一些类A和B进行实例化 有一个方法foo我的签名我想依赖于T是否被实例化...

回答 2 投票 1

C ++构造函数SFINAE

#包括 using namespace std;模板 class test {public:T value;模板 测试(Args ... args):...

回答 1 投票 4

结合void_t和enable_if?

在C ++ 17中,void_t允许使用类/结构模板:模板轻松地执行SFINAE struct test {static constexpr auto text =“general case”; };模板

回答 2 投票 1

C ++中的过载歧义,用于自动将对象转换为“可打印”格式

我正在尝试编写一个输入的函数。如果该输入可以直接传送到流(例如使用std :: cout <

回答 3 投票 4

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