检测结构包含一个灵活的数组成员
假设我有这样的结构, struct foo { int n; int values[]; }; 可以使用Sfinae检测灵活的数组成员吗?至少,我可以构造一个不能与这种结构实例化的类模…
为什么此功能调用不拒绝不合适的过载?
考虑以下代码: #include #include #include //using namespace std; using namespace std::ranges; int main() { std::vector a = {}; sort(a); retu…
使用LVALUE参考时Sfinae,但使用RVALUE REF时成功
我搜索了,但实际上找不到答案,为什么只有在Lvalue Ref通过论点时会发生Sfinae,但是当Rvalue Ref通过ARG时,构建成功: template class A { public:…
如何将通用类方法模板参数限制为某些类型?
我已经检查了 std> std :: enable_if to有条件地编译成员功能 但是对我不起作用。我需要将类方法的 t 限制为某些类型。 template
尝试实现类型特征时,我对Sfinae的应用有什么问题?
我需要一种类型特征,使其基础类型衰落,并且与所有其他类型的 decay_t 相同。我已经编写了以下代码,显然这不是Sfinae的工作方式。但这就是我认为应…
如果可以使用constexpr'确定是否可以使用特定类型参数实例化模板函数?
假设存在以下代码: class Foo { public: void foo() const { std::cout << "foo" << std::endl; } }; class Bar { public: void bar() const { std::…
sfinae在递归功能中没有工作
让我们创建咖喱函数。 template class CurryT { public: CurryT(const TFunc &func, const TArg &arg) : func(func), arg(arg ) {} template decltype…
为什么std :: is_invocable_r拒绝返回不可移动类型的函数?
我对 std :: is_invocable_r 的定义以及它如何与不可移动类型进行交互感到好奇。根据我对应该效法的语言规则的理解,它在C ++ 20模式下的LIBC ++实现…
是否存在Sfinae技术来检查几个声明?
在C ++ 17中,我想在使用SFINAE调用一些功能之前检查一些先决条件,例如: class TestClass { public: bool foo() const { return true; } bool bar()…
Sfinae超负荷在不同尺寸的元素上
考虑一个包含两种类型的结构 - firstObjects 和 secondObjects ,它们都是 std :: tuple&lt;&gt;&gt; ,例如,例如 struct Objects { using FirstO…
为什么使用Sfinae代码编译错误,即使有一个可以匹配的模板
代码如下。 #include #include template struct Vec { using value_type = T; static constexpr size_t size() { return Type::size; } }; template s…
C&#x2B;&#x2B;通过CRTP检测朋友课的私人成员
我有一个 CRTP 基类 (Bar),它由未指定的类继承。此派生类可能有也可能没有特定成员 (internal_foo),并且该特定成员可能有也可能没有其他成员 (test(…
调用 static_assert(false) 的正确方法是什么?
我正在尝试使用 static_assert 来强制某些事情失败。如果您尝试以特定方式实例化特定模板化函数,我想生成编译器错误。我可以让它工作,但它真的很难…