是否首选将模板函数的主体放在头文件或其相应的cpp文件中?为什么?
由于在Nikos Athanasiou帖子中找到this所写的答案,我有一些我稍微修改过的代码,如下所示。目前,我在单个头文件中包含以下所有代码。
我已经阅读了那里的线程,解释了如何在cpp文件的头文件和模板函数体中获得模板函数定义,但我想知道哪些被认为是正确的。两种选择都有任何性能优劣吗?
typedef std::chrono::duration<float> fsec;
template<typename F, typename... Args>
float ftime_fsec(F func, Args&&... args){
auto t1 = std::chrono::high_resolution_clock::now();
func(std::forward<Args>(args)...);
return std::chrono::duration_cast<fsec>
(std::chrono::high_resolution_clock::now() - t1).count();
}
答案 0 :(得分:0)
将它放入头文件中绝对是正确的。它可以帮助您避免输入冗余代码,它也可以用作某种&#34;指南&#34;的声明。对于编译器。它实际上并没有在对象意义上定义任何东西,它只是为后面的定义提供了一个指定类型的指南。