为什么C++概念中没有前向声明?

Des*_*old 8 c++ forward-declaration c++-concepts c++20

当我尝试这个例子时:

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);
}
Run Code Online (Sandbox Code Playgroud)

它有效......但是当我只像这样声明它时:

template <typename T>
concept only_int;

...

// defined later on...
Run Code Online (Sandbox Code Playgroud)

它会抛出编译错误。

这是缺少的功能吗?还是打算就这样离开?

Nic*_*las 6

如果您可以前向声明概念,那么您就可以递归地使用它们。通过防止前向声明,概念声明中不必有明确的规定来阻止您递归地使用它们。