sfinae 相关问题

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

模板替换时访问参数包中的索引

我在C++17中有一个模板函数,其中N个第一个参数需要是整数类型,并且应该在模板替换期间检查这一点。 (对于参数来说,模板函数不应该存在...

回答 1 投票 0

为什么未使用的成员模板函数和成员函数声明的隐式实例化类模板实例化失败

这有什么问题: #包括 结构体A; 模板 结构B { 模板::值>> ...

回答 3 投票 0

为什么 SFINAE (enable_if) 不适用于类模板的成员函数? [重复]

#包括 结构体A{}; 结构体 B{}; 模板 结构体Foo { 类型名 std::enable_if::value>::type 酒吧() {} 输入...

回答 1 投票 0

为什么模板参数中的enable_if_t会抱怨重新定义?

我有以下使用 std::enable_if 的情况: 模板::值>::类型* = nullptr> 无效 f() { } 你...

回答 5 投票 0

使用“表达式 SFINAE”时如何获得普通 `auto` 返回类型的行为?

考虑以下代码。 结构小部件{ int& get(); }; 模板 自动 func_1(X& x) { 返回 x.get(); } 模板 自动 func_2(X& x) ->

回答 1 投票 0

如果类具有特定的成员函数,如何启用函数模板?

我编写了以下模板函数,它检查任意容器是否包含特定元素: 模板 类container_t,类item_t,类...

回答 1 投票 0

启用非模板成员函数,前提是它会进行类型检查

例如 模板 类 foo { T1 t1; T2 t2; T1 栏(); //一直存在 decltype(t1(t2)) baz(); //仅当 t1(t2) 有效时才存在 }; 如果巴兹在...

回答 1 投票 0

std::conditional 中 true_type 和 false_type 的 SFINAE

编译此文件的最佳方法是什么? // 前提条件:Dims 要么是指针,要么是 std::map。 使用 T = std::conditional_t, std::remove_pointer_t...

回答 2 投票 0

在模板函数中,如果输入的类型是枚举类,如何使用 std::underlying_type ?

我有一段代码,它返回给定数字的某些位的值(我也使用 static_cast 将枚举类计算为数字)。 模板 bool get_bits(键入输入,u...

回答 3 投票 0

SFINAE 的概念

我有一个抽象基类,然后是一个模板化派生类,对于某些类型(由模板指定),我想在派生类中实现虚拟基方法,对于其他类型,这个sh...

回答 2 投票 0

为什么 Eclipse 会抱怨 C++ 模板的这种使用? [重复]

在 Eclipse 中,我正在查看的代码与 codereview.SX 问题“C++17:基于 Boost.Hana 的编译时插件注册”中发布的示例基本相同,只是浓缩为一个.. .

回答 1 投票 0

如何检查 C++ 类是否不完整(仅声明)? [重复]

我想编写一个C++函数来检查其模板参数类是否不完整,因此只有类声明可用,但没有所有类成员的完整定义。 我的功能...

回答 3 投票 0

仅当 STL 未提供时才有条件声明 make_unique,否则,使用 std::make_unique 声明

我有以下代码: 命名空间 notstd{ // 仅当 std::make_unique 存在时才声明 使用 std::make_unique ; // 仅当 std::make_unique 不存在时才声明 模板<...

回答 1 投票 0

定义类型 A 等于类型 B(如果 B 存在)

如果 T 有成员类型 Tag,我希望 TagOrInt 等于 T::Tag,否则等于 int。喜欢: 模板 使用 TagOrint = typename T::Tag; // 如果这是有效的 模板...

回答 1 投票 0

add_rvalue_reference的实现

为什么当直接从函数返回类型推导函数类型时,结果会变成右值引用,而 bool_constant 中的实现会产生正确的类型? #包括...

回答 1 投票 0

理解 SFINAE:部分专门化类之外的成员函数声明以及可变参数类中的模板

我想做的事: 创建一个“指令集”对象 由别处的指针持有 保存可变数量的指令对象,其类型满足概念“is_instruction_type” 有'额外...

回答 1 投票 0

我什么时候想使用 auto&& 而不是 decltype(auto) 或 ->decltype(return-expr) 作为函数定义的返回类型?

采用三个返回纯右值、左值、x值的函数: int f(); int&f(int); int&& f(int, int); 并通过返回 decltype(auto) 的函数调用它们 decltype(auto) 返回DecltypeOf(

回答 1 投票 0

模板类中方法的部分特化

鉴于: 结构A { 虚拟布尔什么()= 0; }; 模板 结构 B :公共 A { 虚拟布尔什么(); }; 我想部分专业化: 模板<

回答 4 投票 0

如何将函数模板参数限制为特定类模板的特化

我的结构如下: 模板 类模板类 { ... }; 模板 类 UsesTemplateClass { 民众: UsesTemplateClass( TClass...

回答 3 投票 0

如何将函数模板参数限制为特定类模板的特化

我的结构如下: 模板 类模板类 { ... }; 模板 类 UsesTemplateClass { 民众: UsesTemplateClass( TClass...

回答 3 投票 0

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