Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
如何判断一个类是否有特定的模板化成员函数?
我想知道是否可以扩展 SFINAE 方法来检测类是否具有某个成员函数 如此处讨论的 C 中有没有一种技术可以知道一个类是否具有给定签名的成员函数 检查类是否具有给定签名的成员函数 https stackoverflow com questi
c
sfinae
函数模板的非依赖默认模板参数是否允许 SFINAE?
这里的 不依赖 是指 不依赖于该特定函数模板的任何其他模板参数 回答的同时这个问题 https stackoverflow com q 15232758 500104 我以为我找到了答案 但根据 Johannes 在我的答案的评论中 我误解
c
templates
languagelawyer
sfinae
SFINAE:“enable_if 不能用于禁用此声明”
为什么我不能使用enable if在以下情况下 我想检测我的模板化对象是否具有成员函数notify exit template
c
C11
sfinae
Clang
根据成员是否存在选择模板函数
假设您有以下两个课程 class A public int a int b class B public int a int b class C public float a1 float b1 enum class Side A B 我想
c
templates
sfinae
模拟概念和约束的推荐方法是什么? [关闭]
Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在介绍概念和约束之前 有几种方法可以模拟这种编译时检查 采取一个 order 函数例如 如何实现LessThanComparable没有概念或约
c
C11
templatemetaprogramming
sfinae
enableif
sfinae 位于类体外部定义的成员函数上
有点像我的延续上一个问题 https stackoverflow com questions 11694970 c11 style sfinae and function visibility on template instantiati
c
templates
C11
sfinae
decltype
enable_if:不带参数的 void 成员函数的最小示例
我正在努力更好地理解std enable if在 C 11 中 并一直在尝试编写一个最小的示例 一个类A具有成员函数void foo 根据类型有不同的实现T来自类模板 下面的代码给出了所需的结果 但我还没有完全理解它 为什么版本V2工作 但
c
C11
void
sfinae
enableif
std::enable_if 或 SFINAE 用于迭代器或指针
我想写一个构造函数MyClass需要一个参数 我希望只有当参数是一个时才编译pointer or an iterator 有的东西iterator traits 如何实现这一目标 遗憾的是 没有标准的方法来检测一个类是否模型Iterator
c
templates
Iterator
sfinae
enableif
将 SFINAE 与通用 lambda 结合使用
泛型 lambda 可以利用 替换失败不是错误 规则 例子 auto gL auto func auto param1 auto params gt enable if t lt is integral lt std decay t
c
Lambda
c14
sfinae
genericlambda
SFINAE 在类型和非类型模板参数的情况下工作方式不同
为什么这段代码有效 template lt typename T std enable if t
c
templates
C11
overloading
sfinae
使用 SFINAE 检测 C++ 中类型的 POD 性
这里原来的标题是VS2005 C 中 SFINAE 错误的解决方法 这是暂时使用 SFINAE 来等效 TR1 中存在的 is pod 模板类 在 VS2005 中还没有 TR1 应该有它的value当模板参数是 POD 类型 包括基本类型
c
visualstudio2005
sfinae
使用异常时 SFINAE 仍然产生错误
我正在学习 C 中的 SFINAE 因此 在阅读完相关内容后 我正在尝试不同的示例以更好地理解这个概念 下面我给出了 2 个片段 其中 1 个我能理解 但第二个片段是我使用过的noexcept在声明中我无法理解 实施例1 这个我能理解 in
c
templates
Exception
c14
sfinae
如何查找类中是否存在特定原型的方法?
我正在使用 SFINAE 的一些功能 当前位于必须在 Linux 和 Windows 中运行的应用程序的一部分 Windows 应用程序的编译器选择是 MSVC Visual Studio 2010 10 0 Linux 应用程序的编译器选
c
templates
visualc
gcc
sfinae
SFINAE:static_assert 与 std::enable_if
是否存在以下缺点 建议 句法 template lt typename T gt void f static assert std is same lt T int gt value 而不是 SFINAE 看起来像拐杖 template l
c
sfinae
c14
如果模板参数不允许实例化某个类,如何编写模板重载函数并触发回退
如果我取消注释包含以下内容的行 下面的程序将无法编译foo
c
templates
templatespecialization
sfinae
MSVC 2013 'type':不是 'std::enable_if
的成员
我的 SFINAE 代码使用std enable if可在 GCC 和 Clang 中编译 但不能在 MSVC 2013 中编译 代码 也可以在 cpp sh 上找到 http cpp sh 9jsq5 is include
c
C11
visualstudio2013
variadictemplates
sfinae
我们可以使用检测惯用法来检查类是否具有具有特定签名的成员函数吗?
鉴于 减少 实施检测惯用语 http www open std org jtc1 sc22 wg21 docs papers 2015 n4502 pdf namespace type traits template
c
templates
c14
sfinae
typetraits
使 sfinae 适用于具有推导返回类型的函数?
考虑以下代码 Preprocessor include
c
Lambda
c14
templatemetaprogramming
sfinae
decltype(..., void()) 和 void_t 之间的区别
上次我发现了许多关于 SFINAE 的答案 建议使用void t帮手 但我似乎不明白它有什么特别之处 decltype void 考虑这个例子 template
c
sfinae
为什么 void_t 在 SFINAE 中不起作用,但 enable_if 可以
我试图理解如何SFINAE有效 我正在尝试这段代码 include
c
C17
sfinae
«
1
2
3
4
5
»