cost 114 ms
检查 class 是用哪个模板参数实例化的(编译时) - Check with which template parameter a class was instantiated (compile time)

我尝试编写一个元函数type_par_same_as ,只要true_type的模板参数与给定类型匹配,它就会选择 true_type : 演示 这是我得到的: 我的方法是原始模板模板参数只接受模板的任何特化,例如std::vector (无类型)。 然后我 SFINAE-out class 与 ...

带有默认参数的 SFINAE 适用于 msvc 但不适用于 gcc 和 clang - SFINAE with default argument works with msvc but not with gcc and clang

我在 c++ 中学习了 SFINAE。然后我编写了以下程序,它使用 msvc 编译(和执行)但不使用 gcc 和 clang。现场演示 正如我们所见,调用e.common()适用于 msvc,但被 gcc 和 clang 拒绝。GCC 说: 我想知道根据 C++ 标准的正确行为是什么。 请注意,我 ...

如果未实现,请避免调用 function size_t Print::print(unsigned long long n, int base) - Avoid calling of function size_t Print::print(unsigned long long n, int base) if it is not implemented

我维护一个 Arduino 库,它使用以下代码(简化)打印红外线接收到的结果。 大多数 32 位 arduino 内核提供 function size_t Print::print(unsigned long long n, int base)并且编译没有错误。 但是有 32 位内核,不提供siz ...

进行类似但不同的专业化时,“已经定义了类模板” - "Class template has already been defined" when making similar but different specializations

我有两个 class 专业。 我希望其中一个在 T::A 存在时使用,另一个在 T::B 存在时使用,这在实践中应该是相互排斥的。 我正在使用 std::void_t< decltype(... ) > 来测试是否存在。 我希望该表达式无法针对一个或另一个专业化进行评估,因此我希望 S ...

推导模板定义基类 class 构造函数参数的类型 - Deduce types of template-defined base class constructor parameters

我有一个派生的 class, Wrapper ,它继承自模板定义的基类 class。我想配置Wrapper ,以便如果基类 class 具有构造函数参数, Wrapper的构造函数还包括基类的构造函数参数,以便它可以将它们转发给基础 class 构造函数:struct Base1 { Base1 ...

如何转换 C++17 的“if constexpr(std::is_literal_type<t> ::value)" 到 C++11 SFINAE 代码?</t> - How to convert C++17's "if constexpr(std::is_literal_type<T>::value)" to C++11 SFINAE code?

目前,我的代码库中有这个模板化的 function,它在 C++17 中运行良好: 但是,function 有两个问题: 它使用if constexpr ,这意味着它不会在 C++11 或 C++14 下编译。 它使用std::is_literal_type ,它在 C++17 中被弃用并在 C+ ...

在查询 SFINAE-friendly 表达式是否有效时,Hana 的 type_c-and-declval dance 有什么优势? - What is the advantage of Hana's type_c-and-declval dance when querying whether a SFINAE-friendly expression is valid?

一方面,function boost::hana::is_valid呈现如下检查 SFINAE 友好的表达式是否有效。 给定一个 SFINAE 友好的 function, is_valid返回 function 调用是否对给定的 arguments 有效。 具体来说,给定一个 function f ...

为什么 SFINAE 在 gcc &lt;11 与 &gt;12 的情况下具有不同的行为? - Why SFINAE has different behavior with gcc <11 vs >12?

我在 这里看到了这个使用 SFINAE 检查类型是否可流式传输的示例。 但是,我注意到它不可移植,即使用不同的编译器为模板类型返回不同的结果。 我很高兴有任何提示来理解这里的问题。 下面的代码返回true, false对于 GCC 12 或更高版本返回true, true ,而对于早期版本的 GC ...

对现有 function 重载的通用 function 模板推导 - Generic function template deduction over existing function overloads

我正在编写一个可扩展的库,可以方便地为自定义类型重载 STL 的to_string() 。 为此,我设计了一个通用的重载模板,如果不是专门的,它会引发异常: 这很有用,主要是因为描述将清楚地解释该问题以及如何解决它,并避免必须使用多态性来实现派生实现(function 对于某些应用程序(例如序列化、 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM