sfinae 相关问题

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

SFINAE根据类值模板参数选择构造函数

我正在尝试编写一个类,该类根据类自己的模板参数的值公开不同的构造函数。试图做到这一点的天真的代码如下:// C ++ ...

回答 2 投票 0

使用带有is_class的std :: conditional ,出现编译错误

我想拥有一个依赖于其他具有X :: value_type的其他类X的类型。如果在另一个类中没有这样的typedef,我只想单独使用X。所以我正在寻找类似的代码:...

回答 2 投票 0

在使用SFINAE的模板类之外定义函数?

在下面的示例中,我想在这种情况下在类外定义析构函数,到目前为止,我尝试过的所有万亿语法都无法正常工作:template

回答 1 投票 0

类模板SFINAE

我正在测试班模板SFINAE。 template using enable_if_class = T; template struct enable_if_test;模板

回答 2 投票 0

[SFINAE和函数重载时的隐式转换

我正在尝试编写一个模板帮助程序,该工具可以让我检查一组类型是否与结构成员的类型匹配。到目前为止,我已经写了这本书-#include #include

回答 1 投票 1

使用enable_if]出现多个重载的问题>

模板 :: value >> void qw(T t){std :: cout <

回答 1 投票 1

c ++使用std :: enable_if有条件地将吸气剂添加到可变参数变体模板中

我正在尝试为变体以int,float,bool等为模板参数的情况添加特殊化。到目前为止,我的尝试是:#include #include

回答 2 投票 0

虚拟模板参数中的SFINAE和std :: enable_if以基于两个条件选择结构

让我们说,要用part 调用模板化的结构部件,其中D是U型的:template struct part {};我们有两种情况:U是无符号类型,D%(...

回答 1 投票 0

SFINAE运算符重载

我无法理解为什么以下代码无法编译。该代码段包含两个运算符和重载,一个重载用于库标头中的一些可自定义的枚举类,另一个重载于某些...

回答 1 投票 0

[通过SFINAE对容器进行C ++测试

在C ++ 17中,我试图通过检查value_type(mapped_type)的存在来检测容器(地图)。但是,尽管它似乎适用于unordered_set ,但不适用于unordered_set ] 保持测试,应该这样 template<class N, class Enabler = void> struct is_container { static const bool value = false; }; template<class N> struct is_container<N, std::void_t<typename N::value_type>> { static const bool value = true; }; template<class N> static constexpr bool is_container_v = is_container<remove_reference_t<N>>::value;

回答 1 投票 0

SFINAE比赛未按预期进行

我正在ubuntu上同时使用g ++ 7.5.0和clang 6.0.0来根据对象的方法存在尝试自动分派函数调用的SFINAE函数,并且结果与预期不符。 ...

回答 1 投票 0

SFINAE依赖类型错误导致意外的硬错误

我有可以简化为以下代码的代码:#include template 结构依赖{使用type = typename T :: type; };模板

回答 1 投票 2

我如何使用SFINAE来区分MyMap,std :: map和std :: unordered_map?

我想制作一个可以使用任何地图实现的结构。我们称之为MapHolder。当前,它看起来像这样:template class MapType> struct ...

回答 1 投票 0

[将函数成员有条件地添加到模板类中[重复]

我有一个定义为跟随模板的类模板 class A {T t_; // void f(); };我的问题是,仅当类型T为整数而不进行编译时如何添加f()方法...

回答 2 投票 2

打印类别标识符(如果有)

目标是创建一个(宏?),当将其放置在类函数中时,它将在每个类实例(例如,this指针)上打印一个唯一的标识符,而在...时则不打印(或其他任何东西)] >

回答 3 投票 3

为什么使用SFINAE而不是函数重载?

我正在尝试了解std :: enable_if,cppreference.com上有一个示例,它比函数重载有什么好处?结构T {枚举{int_t,float_t} m_type; ...

回答 2 投票 0

SFINAE和继承

我正在寻找以下问题的解决方案:#include 类A {公共:模板 静态类型名std :: enable_if :: ... ] ] >> < [

回答 1 投票 0

为什么SFINAE失败?

struct BLA {}; template class DUMMY {public:DUMMY()=默认值; template void someFunction(){std :: cout << ...

回答 2 投票 0

如果定义了具有特定签名的函数/运算符/方法,则检测

基于这个问题,如果定义了具有特定签名的函数/运算符/方法,我们如何检测(在编译时?)?从链接的问题并查看有关std :: void_t的cppreference,我们...

回答 1 投票 0

使用函数重载解决方案的概念(而不是SFINAE)

试图向SFINAE说再见。是否可以使用概念区分函数,所以编译器可以根据发送的参数是否满足概念来匹配正确的函数...

回答 1 投票 0

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