c++ - 如何转发声明 C++ 模板类?

标签 c++ templates forward-declaration

给定一个类似如下的模板类:

template<typename Type, typename IDType=typename Type::IDType>
class Mappings
{
public:
    ...
    Type valueFor(const IDType& id) { // return value }
    ...
};

如何在头文件中前向声明这个类?

最佳答案

你会这样做:

template<typename Type, typename IDType=typename Type::IDType>
class Mappings;

template<typename Type, typename IDType>
class Mappings
{
public:
    ...
    Type valueFor(const IDType& id) { // return value }
    ...
};

请注意,默认值是在前向声明中,而不是在实际定义中。

关于c++ - 如何转发声明 C++ 模板类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13848451/

相关文章:

c++ - 表达式模板玩具示例 : user-defined cast not applied for complex types

c++ - 乘法类型的确定

c++ - 错误 C2027 : use of undefined type - how to declare class

c++ - 转发声明/什么时候最好包含标题?

c++ - 声明/定义顺序依赖

c++ - 使 POD 类(class)可 move

c++ - 使用 boost 遍历 mmaped gzip 文件

c++ - C 和 C++ 中带有 const 限定符的数组指针

c++ - 不使用 -g 选项编译,但我想获得更详细的调试信息

java - 泛型类型类定义