替换失败不是错误。这是一种C ++编程技术,允许模板验证有关其模板参数的属性,从而允许在某些类型的对象可用时使用不同的特化。
我想把我的模板中所有不和谐的enable_ifs去掉,用C++20的概念来代替,然而几乎没有任何关于概念的信息,而且语法的变化与我的任何源 ...
我想定义一个模板类IE,它提供了public method().method()调用底层的private run(),它可能会接受与传递给IE的模板参数相关的参数。所以,我想 对于IE来说
我想检查一个函数模板是否可以为给定类型实例化。举个例子,对于模板:模板 void f() { T{}; } 我想断言f
SFINAE在概念论证里面能用吗?也许这里不叫SFINAE)。例如:模板 需要 std::invocable && /
我写了一些东西,使用SFINAE在某些条件下不生成函数。当我直接使用元代码时,它能正常工作,但当我通过另一个间接使用该代码时, ...
我有一个类模板,它可以正确地适用于所有可能的类型T1,T2.模板 class Basic { int a; float b; public: void foo(T1 t1, T2 t2) { ...
为什么编译器说:'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; }; ///////////////// ...