如何转发声明C ++模板类? [英] How to forward declare a C++ template class?

查看:95
本文介绍了如何转发声明C ++模板类?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给出如下的模板类:

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

有人如何在头文件中转发声明此类?

How can someone forward declare this class in a header file?

推荐答案

这是您要执行的操作:

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 }
    ...
};

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

Note that the default is in the forward declaration and not in the actual definition.

这篇关于如何转发声明C ++模板类?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆