sfinae 相关问题

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

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

我编写了以下模板函数,它检查任意容器是否包含特定元素: 模板 类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

检查类型重载给定的运算符

这个话题有很多相关问题,但我仍然对以下案例感到困惑: #包括 #包括 结构体A{}; struct B { void 运算符 + (const B&am...

回答 1 投票 0

使用 constexpr、SFINAE 和/或 type_traits 进行 char*、char 数组和字符串文字的重载解析

我遇到了一个有趣的挑战,我花了几个小时试图解决这个挑战,但经过大量研究和多次失败的尝试后,我发现自己在问这个问题。 我想写3

回答 2 投票 0

为什么可以用 std::is_const 和 std::is_reference 来实现 std::is_function ?

以下是 std::is_function 的实现吗? 模板 结构 is_function : std::integral_constant< bool, !std::is_const::value && !...

回答 2 投票 0

模板化的 require 子句失败

我有一组大致定义如下的类: 模板 类可迭代{ // 更多代码 }; 容器类:公共可迭代 { // 更多代码 }; T 级...

回答 1 投票 0

C++ 编译器实际上符合零大小数组 SFINAE 规则吗?

大约一两年前,我读到了 C++ 中的 SFINAE 规则。他们特别指出, 以下类型错误是 SFINAE 错误: ... 尝试创建一个 void 数组、引用数组、arr...

回答 1 投票 0

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