2010-07-23 47 views
4

我傾向於原型C++類作爲自包含的類,即,如:是否有任何現有的工具將C++頭文件轉換爲頭+實現?

class BlahBlahBlah 
{ 
public: 
    void SomeMethod() 
    { 
    // some code here 
    } 
}; 

再後來當我很高興與設計我會變成一個.H /的.cpp對。這主要是一項機械任務,所以有沒有可以幫助解決這個問題的任何工具?

+0

決定哪些功能應該在班級定義中內聯執行,哪些功能不應該是有意識的決定,由多種因素驅動。在優先考慮這些因素時,C++社區是不同的陣營。你認爲一個工具應該怎麼做? – sbi 2010-07-23 15:20:41

+0

@sbi這就是爲什麼我說/主要/機械。我希望事後做一些調整。 – danio 2010-07-23 15:27:57

回答

2

嘗試Lzz

+0

不錯的工具,但不幸的是它幾乎太聰明瞭。它有一個完整的解析器,所以所有的註釋都被刪除。它還重新命令一些構造(例如const&),這會需要另一個智能解析器放回。 – danio 2010-07-23 15:49:46

1

作爲Lzz的替代品,您可以考慮看看Preprocess - A preprocessor for C and C++ modules。與Lzz不同,它確實保留了評論。但是,它有一些限制。它不支持名稱空間或嵌套類。但是由於它是用PERL編寫的,我想這不會太難以擴展和定製。

還有inlsplit: Inline C++ Source and Header splitter。它是一個非常簡單的awk腳本,用於解析單個.inl文件,並將所有成員函數的原型放在源文件中,只保留頭文件中的聲明。還有一個用於代碼直接進入實現的@source標記。與lzz和預處理相比,它非常輕巧。然而它已經被放棄,沒有新的發展。

相關問題