1
最近,我在使用Template Metaprogramming(使用現代C++設計作爲我當前的參考)構建個人庫方面取得了進展。用於C++模板的聲明和定義分離
我一直在想最好的方式來佈局我的模板代碼。顯然,編譯器希望模板的定義在聲明的同一個文件中可見。但是,我想將聲明從定義中分離出來,所以當我只想查看方法原型或其他東西時,我不太會去查看。
因此,要解決這個問題,我已經開始做可以通過下面的例子來說明:
SomeClass.hpp
#ifndef _someclass_hpp
#define _someclass_hpp
template<typename T>
class SomeClass {
public:
...
private:
...
};
#include "SomeClass_Implementation.hpp"
#endif
SomeClass_Implementation.hpp
#ifndef _someclass_impl_hpp
#define _someclass_impl_hpp
#include "SomeClass.hpp"
/* SomeClass Implementation... */
#endif
我個人喜歡這個比在一個文件中擁有所有東西,但我我很好奇,如果任何人有任何提示接近這個或任何推理,可能會讓我考慮只是把它全部存入一個文件。
我喜歡做的實現頭文件與懷念稍有不同的延伸。它很微妙,但正如你所說,它有助於表明它與定義標題不同。直到你的例子我還沒有意識到有一個.hxx擴展名!我會等待看到其他任何迴應,看看是否還有其他有趣的方法。 – spektr