我傾向於原型C++類作爲自包含的類,即,如:是否有任何現有的工具將C++頭文件轉換爲頭+實現?
class BlahBlahBlah
{
public:
void SomeMethod()
{
// some code here
}
};
再後來當我很高興與設計我會變成一個.H /的.cpp對。這主要是一項機械任務,所以有沒有可以幫助解決這個問題的任何工具?
我傾向於原型C++類作爲自包含的類,即,如:是否有任何現有的工具將C++頭文件轉換爲頭+實現?
class BlahBlahBlah
{
public:
void SomeMethod()
{
// some code here
}
};
再後來當我很高興與設計我會變成一個.H /的.cpp對。這主要是一項機械任務,所以有沒有可以幫助解決這個問題的任何工具?
作爲Lzz的替代品,您可以考慮看看Preprocess - A preprocessor for C and C++ modules。與Lzz不同,它確實保留了評論。但是,它有一些限制。它不支持名稱空間或嵌套類。但是由於它是用PERL編寫的,我想這不會太難以擴展和定製。
還有inlsplit: Inline C++ Source and Header splitter。它是一個非常簡單的awk腳本,用於解析單個.inl文件,並將所有成員函數的原型放在源文件中,只保留頭文件中的聲明。還有一個用於代碼直接進入實現的@source標記。與lzz和預處理相比,它非常輕巧。然而它已經被放棄,沒有新的發展。
Visual Assist有a refactor tool that does this。您可以將其綁定到鍵盤快捷方式,以便逐個執行,而不是通過機器人執行。
決定哪些功能應該在班級定義中內聯執行,哪些功能不應該是有意識的決定,由多種因素驅動。在優先考慮這些因素時,C++社區是不同的陣營。你認爲一個工具應該怎麼做? – sbi 2010-07-23 15:20:41
@sbi這就是爲什麼我說/主要/機械。我希望事後做一些調整。 – danio 2010-07-23 15:27:57