Joh*_*ith 7 c c++ boost header header-files
我一直在关注Boost和其他各种C++库.绝大多数Boost都是在头文件中实现的.
我的问题是:在什么条件下你做了一个只有头的实现(比如Boost)还是包含一个.cpp文件?
如果要在另一个翻译单元(即另一个源文件)中使用模板,则应该(几乎总是)在头文件中定义它.(有例外,如下面的评论指出,但恕我直言,这是一个很好的经验法则.)
如果要使用其他翻译单元的内联函数,则同样适用.
否则,您应该将实现放入单独的.cpp文件中以最小化依赖性.