替换失败不是错误。这是一种C ++编程技术,允许模板验证有关其模板参数的属性,从而允许在某些类型的对象可用时使用不同的特化。
为什么编译器说:'enable_if'不能用来禁用这个声明?
模板 使用 Enable_if = typename std::enable_if type; class Degree; template constexpr inline bool Is_Degree() { ...
我有一个std::variants,包含有不同接口的对象。目标是调用一些方法,如果变体中的对象拥有它。我试图做几个模板装饰器,并寻找...。
我想知道是否有可能在C ++ 20中实现一个特征来检查类型T是否具有可能重载/可能是模板化的函数调用operator:operator()。 // ...
我想通过使用enable_if_t根据类型更改函数定义。与此类似的东西:#include template struct A;模板
将`template zero()`扩展/专业化为可调用的T'
我正在尝试定义函数模板 zero()并将其专门用于各种情况。 zero ()应该返回静态T :: zero()(如果存在)。否则static_cast (如果...
因此,我正在遵循此网页上某处代码所设置的示例:http://eli.thegreenplace.net/2014/sfinae-and-enable_if/这是我所拥有的:template void fun(const ...
[必需是类型T的类型特征,如果T具有typedef value_type,则提供类型为T :: value_type的typedef类型,否则为T。我已经尝试了以下实现,但没有实现...
我有一个具有某些类型成员的类模板。此类型是根据实例化模板时提供的类型确定的。它使用默认值(在下面的示例中为两倍)...
我正在学习SFINAE和特质,我知道我可以定义SFINAE特质(在实现中使用SFINAE的特质)。特征的经典实现,可检测类型是否为...
我正在尝试将不同类型的值的集合映射到连续的空间中。为了做到这一点(有效地),我需要知道所有元素的总大小和每个元素的偏移量。如果...
我正在尝试实现一个简单的序列化程序类,该类具有一个Serialize函数,该函数将实际的序列化分派给不同的重载函数模板,这些模板在编译时使用...
为什么我们需要在C ++ 20的map emplace中使用piecewise_construct?
这是关于std :: map emplace函数潜在的重载的理论问题,该函数检测是否已传递2个元组,这不是C ++ 20中是否存在此功能的问题。从我...
嵌套std :: void_t,std :: enable_if和包扩展
我想拥有一个可变参数模板,仅当所有模板参数均为整数类型时才启用。我下面的解决方案嵌套了std :: void_t,std :: enable_if,std :: is_integral并打包...
#include / ****我很困惑在这里使用sfinae方法****** / template struct hasTypeFoo {// .. static constexpr bool value = true; }; ///////////////// ...
我正在尝试编写一个类,该类根据类自己的模板参数的值公开不同的构造函数。试图做到这一点的天真的代码如下:// C ++ ...
使用带有is_class的std :: conditional ,出现编译错误
我想拥有一个依赖于其他具有X :: value_type的其他类X的类型。如果在另一个类中没有这样的typedef,我只想单独使用X。所以我正在寻找类似的代码:...
在下面的示例中,我想在这种情况下在类外定义析构函数,到目前为止,我尝试过的所有万亿语法都无法正常工作:template
我正在测试班模板SFINAE。 template using enable_if_class = T; template struct enable_if_test;模板
我正在尝试编写一个模板帮助程序,该工具可以让我检查一组类型是否与结构成员的类型匹配。到目前为止,我已经写了这本书-#include #include
模板 :: value >> void qw(T t){std :: cout <