给定一个模板类,如下列:
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
{
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 }
...
};
请注意,默认是向前声明,而不是实际的定义。
您可以只为模板的第一个声明模板声明默认参数。 如果您希望允许用户转发声明一个类模板,你应该提供一个转发头部。 如果你要转发使用默认值申报别人的类模板,你的运气了!