sfinae 相关问题

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

std :: is_copy_constructable for std :: vector

我最近阅读了这篇博客文章,介绍了为什么必须无条件地复制vector以便可以支持不完整的类型。我了解从逻辑角度来看也是必须的,因为...

回答 1 投票 2

检查类型是否直接从“如果……启用时”上下文中的另一类型派生(是其子代)

C ++具有is_base_of 。但是,这也包括“祖父母”类型。有没有办法获得is_child_of 功能?目的是将类型用作...

回答 1 投票 4

使用构造函数中的可变参数初始化std :: tuple

我有一个创建std :: function的类。为了简单起见,在此示例中,我将说std :: function返回一个布尔值。 std :: function需要接受一个可变参数元组。目前,我有...

回答 1 投票 0

如何检查类型是智能指针还是智能指针的引用

我正在尝试实现一种结构,该结构在编译时检查给定类型是智能指针还是智能指针的引用。我重写了此解决方案(不适用于参考):...

回答 1 投票 1

C ++许多SFINAE样式的重载

是否可以一次执行许多重载/规范,如下面的代码所示。我希望很清楚,我正在尝试实现什么,但是编译器并不这么认为。 #include

回答 2 投票 2

C ++表达式SFINAE和ostream操纵器

我正在尝试学习如何使用SFINAE。出于练习目的,我试图制作一个std :: ostream包装器,以制作一个自定义格式化程序。这是我的SFINAE和自定义输出类。 //测试器...

回答 1 投票 1

noexcept + declval无法在MSVC下编译

我试图在这里实现对我的SO问题的回答:我的目标是检测模板类T中是否存在void cancel()noexcept方法。这是我的最小示例:#include

回答 2 投票 0

SFINAE禁用构造函数,如果存在从double到T的转换

以下是我可以提出的最小的有意义的程序,以重现此问题的困境。由于...

回答 2 投票 0

SFINAE不能防止歧义的运算符重载吗?

我以为下面的代码可以编译,因为有冲突的重载已经消失了。但是编译器(GCC)说:void Foo :: bar(Xd)const'不能重载。有没有简单的方法...

回答 1 投票 1

如何使用SFINAE检测noexcept方法

我在问一个(受欢迎的)问题的变体-检测类方法的存在。我已经在SO中阅读了许多答案,大多数(C ++ 17之后的)解决方案看起来都像这样:#...

回答 1 投票 1

SFINAE检查模板参数运算符

您能告诉我为什么以下代码无法编译(在MSVC中“找不到匹配的重载函数”):template struct LinearModel {//具有基本矢量template

回答 1 投票 0

MSFIN2017带有数字限制的SFINAE :: max()

以下代码:模板 类型名称std :: enable_if :: max()== std :: numeric_limits :: max(),bool> :: type same_max(){。 ..

回答 1 投票 2

如何在现代C ++中没有宏的情况下实现系统特定的功能

JetBrains ReSharper for C ++告诉我用#ifdef _WIN32#define cls system(“ cls”)#else //假设是Unix#define cls system(“ tput clear”)#endif // _WIN32替换为...

回答 1 投票 0

调用类模板中隐式删除的副本构造函数

我已经编写了一个类模板,只希望有条件地使用复制构造函数。为此,我想应用一些SFINAE技巧,并且需要将复制构造函数模板化。 ...

回答 1 投票 0

在C ++中使用SFINAE的方法

我在项目中大量使用SFINAE函数,不确定以下两种方法(样式除外)之间是否有任何区别:#include #include ]]]

回答 2 投票 22

如何使用SFINAE停用我的'Pow(T)`的非整体版本?

我被要求使用SFiNAE拒绝我的Pow(T)模板功能的非集成版本。因此,如果推导的类型为整数,则返回参数*参数,否则不执行任何操作,仅通知...

回答 1 投票 0

为什么我们不能直接使用类模板来推导方法模板? SFINAE

此代码有效:// // g ++ -std = c ++ 11 //(或)// clang ++ -std = c ++ 11 #include template struct Tester {template ... ] > ] >>

回答 1 投票 2

如何检测是否是否定义了T :: is_transparent?

是否有用于测试的通用模板/宏,例如。如果定义了名称,则为ala。 is_transparent如何工作。 is_transparent使比较器对std :: set透明(即可以使用...

回答 1 投票 1

[如果存在,则c调用c函数

我有一些自动生成的C ++代码来包装一些C代码。 C代码具有可预测的结构,但具有/不具有某些功能。由于C ++代码是...

回答 2 投票 1

SFINAE-检测类型T是具有随机访问运算符的给定值类型的指针,数组还是容器

我正在与SFINAE进行斗争,试图拥有许多只需要使用运算符[]访问类型T的功能。到目前为止,我有以下代码可以在Visual上编译并正常工作...

回答 1 投票 0

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