当我尝试这个例子时:
template <typename T>
concept only_int = std::same_as<T, int>;
int add_ints(only_int auto&&... args) {
return (std::forward<decltype(args)>(args) + ... + 0);
}
它有效......但是当我只这样声明时:template <typename T>
concept only_int;
...
// defined later on...
它会抛出编译错误。这是缺少的功能吗?还是打算就这样离开?
最佳答案
如果您可以预先声明概念,那么您可以递归地使用它们。通过防止前向声明,概念声明中不必有明确的规定来阻止您递归使用它们。
关于c++ - 为什么概念 c++ 中没有前向声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68045643/