0
是否有可能在头文件中具有通用函数声明并且在定义文件中具有后续定义?头文件中的模板实例化
我想这样做
HEADER FILE:
#ifndef PROCEDURES_H
#define PROCEDURES_H
template<class T>
T max(const T&, const T&);
#endif
DEFINITION FILE:
#include "procedures.h"
template<class T>
T max(const T& left, const T& right)
{
return left > right ? left : right;
}
这导致连接错误。
当然,如果我只是把所有的头在它的工作正常。
经典案例回答你自己的问题? –
'max'不是*“通用功能”。它是一个*模板*。这种认知上的错误可能会导致你的混淆。 –
您是否喜欢'#include -'的经典解决方案?您的定义文件位于头文件的底部?你可以建立一个像所有定义文件都有扩展名'.hpp'或'.tpp'的约定。但是,真的,你应该读一点关于_template实例化的原因,以及为什么这不起作用。 – NicholasM