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

标签 c++ c++20 forward-declaration c++-concepts

当我尝试这个例子时:

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/

相关文章:

c++ - QtWebkit 作为桌面应用程序 GUI

c++ - 为什么 std::vector::data 和 std::string::data 不同?

c++ - C++中的自动引用

c++ - 关于强类型枚举前向声明

c++ - 可变参数结构体臃肿,在结构体末尾添加了额外的填充

c++ - 将 constexpr class static 映射到类集合的类

c++ - 有没有一种紧凑的方法可以使 std::optional<T>::value_or 处理 T 的成员变量

c++ - 为什么 std::accumulate 在 C++20 中没有被设为 constexpr?

objective-c - Cocoa:构建警告,转发声明的类和 @interface 可能不存在

c++ - 前向声明类时成员函数的行为