-
尝试编译SFINAE检查中使用的方法主体时出现编译错误
我有一个众所周知的类示例,用于检测类型是否为类。 <pre class="lang-cpp prettyprint-override"><code>#include & -
构造函数SFINAE和继承在clang中失败
以下代码在GCC下可以正常编译,但在clang中失败并显示错误: <blockquote> 没有匹配的构造函数, -
`enable_if()`禁用模板化类的静态成员函数声明
我试图在模板类中声明函数,以便函数声明取决于模板类型参数。 <pre><code>template<typename T> struct -
SFINAE,如果实现了运算符,则调用函子
我有一个<code>std::tuple</code>,带有一堆函子,可实现带有不同参数的回调。我想在编译时遍历元组,并执 -
类外的类功能模板定义
因此,我一直在编码自己的unique_ptr类,并且必须以与处理其他类型不同的方式来处理数组。 <pre clas -
如何专门化容器和枚举的模板
我试图专门针对枚举类型和stl容器类型的简单功能。 SFINAE的想法适用于使用enable_if的枚举,但是类似的 -
为什么匹配模板类上的部分类模板特化与另一个没有模板匹配的部分特化模棱两可?
这个问题可能很难在标题中的句子中描述,但这是一个最小的示例: <pre><code>#include <iostream> #inc -
C ++该代码如何工作(enable_if构造函数/方法)?
我知道之前已经讨论过这两个主题,但是对于启用构造函数和方法启用的方式仍然不清楚。 这是 -
派生类的C ++重写成员函数返回派生类的数组
我正在尝试编写一个从根节点开始搜索树中节点的程序。因为我希望搜索算法尽可能通用,所以我想使 -
SFINAE-使用给定值类型检测类型T是具有随机访问运算符的指针,数组还是容器
我正在与SFINAE进行斗争,以尝试具有许多只需要使用运算符<code>[]</code>访问类型T的功能。 到目前为止, -
c ++调用c函数(如果存在)
我有一些自动生成的C ++代码来包装一些C代码。 C代码具有可预测的结构,但具有/没有特定功能。 -
为什么SFINAE无法跨多个继承工作?
代码如下: <pre><code>#include <utility> #include <type_traits> template <class T> class ClassWithDisabledFo -
类型和const类型的通用函数,不重载
我知道,除非绝对必要,否则依赖SFINAE通常是一个坏主意,但是无论如何我都很好奇。 因此,假 -
通用2D点作为C ++中的输入
我正在为模板库编写通用代码。我的输入应该是或包含某种形式的2D坐标。为了通用起见,我的代码将期 -
如何检测是否。 T :: is_transparent是否已定义?
是否有用于测试的通用模板/宏,例如。如果定义了名称,则为ala。 <a href="https://en.cppreference.com/w/cpp/utili -
为什么我们不能直接使用类模板来推导方法模板? FINAE
此代码有效: <pre><code>// g++ -std=c++11 // (or) // clang++ -std=c++11 #include <iostream> template <class T> s -
在标准C ++中完全禁用某些代码?
试图了解当前禁用代码部分的最佳方法是使用当今C ++中所有的高级功能。 我的测试实现如下。 -
如何使用SFINAE停用我的`Pow(T)`的非集成版本?
我被要求使用SFiNAE拒绝我的<code>Pow(T)</code>模板函数的非集成版本。因此,如果推导的类型为整数,则返 -
在C ++中实现SFINAE的方法
我在项目中大量使用SFINAE函数,不确定以下两种方法(样式除外)之间是否有任何区别: <pre><code>#in -
验证迭代器参数SFINAE
我正在尝试验证迭代器参数,接受所有派生自其的迭代器, <code>std</code>中给定类型的基础迭代器类。</p -
std :: is_function如何实现?
以下如何实现<code>std::is_function</code>的实现? <pre><code>template<class T> struct is_function : std::integral_co -
如何在现代C ++中没有宏的情况下实现系统特定的功能
JetBrains ReSharper for C ++告诉我更换类似的东西 <pre class="lang-cpp prettyprint-override"><code>#ifdef _WIN32 # defi -
在MSVC2017上具有numeric_limits <T> :: max()的SFINAE
以下代码: <pre><code>template <typename T, typename U> typename std::enable_if< std::numeric_limits<T>::max -
泛型枚举和其他类型的重载模板功能
我有一个通用函数,适用于任何类型的枚举。我想使用自定义定义的类以及字符串和整数重载它。但是 -
SFINAE检查模板参数运算符
您能否告诉我以下代码为什么无法编译(在MSVC中“找不到匹配的重载函数”): <pre><code>template<ty -
如何使用SFINAE检测noexcept方法
我在问一个(受欢迎的)问题的变体-检测类方法的存在。 我在这里已经读了很多答案,大多数(C -
SFINAE不能防止模棱两可的运算符重载吗?
我认为下面的代码可以编译,因为有冲突的重载已经消失了。但是编译器(GCC)表示:<code>void Foo<X> -
如果存在从double到T的转换,则SFINAE禁用构造函数
以下是我可以提出的最小的有意义程序,用于重现此问题的困境。由于<code>LinearForm<double></code>的构 -
noexcept + declval无法在MSVC下编译
我正在尝试实现对SO问题<a href="https://stackoverflow.com/questions/59908697/how-to-detect-a-noexcept-method-using-sfinae">here< -
C ++表达式SFINAE和ostream操纵器
我正在尝试学习如何使用SFINAE。 出于练习目的,我试图制作一个<code>std::ostream</code>包装器,以制作一个