gpt4 book ai didi

c++ - 模板成员函数上的外线 sfinae 是否可能?

转载 作者:太空狗 更新时间:2023-10-29 21:13:33 25 4
gpt4 key购买 nike

Demo

A::foo 的类声明中的 A。

struct A {
template <typename T>
void foo(T a);
};

A::foo 现在被 sfinae 拆分。

template <typename T>
typename std::enable_if<(sizeof(T) > 4), void>::type A::foo(T a ) {
std::cout << "> 4 \n";
}

这行不通。这是不允许的吗?

最佳答案

声明中的返回类型必须与定义匹配。

struct A {
template <typename T>
typename std::enable_if<(sizeof(T) > 4), void>::type
foo(T a);
};

SFINAE 不能封装为实现细节。

( demo )

关于c++ - 模板成员函数上的外线 sfinae 是否可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43818137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com