Pimpl's是許多C++代碼中樣板的來源。它們看起來像是宏,模板和一些外部工具幫助可以解決的組合,但我不確定最簡單的方法是什麼。 I've seen templates有助於做一些提升但不是太多 - 你最終還是需要爲你想要包裝的每個類的方法編寫轉發函數。有更容易的方法嗎?自動化C++類的pimpl'ing - 有沒有簡單的方法?
我在想象一個工具作爲make過程的一部分。你希望你的公共頭文件是pimpl的類,所以你提供了一些輸入文件,比如說pimpl.in,它列出了你想要打包的類(實現un-pimpl'd),然後檢查這個文件,生成pimpl類,並且在'make install'期間只安裝它們的頭文件(不是原始類的頭文件)。問題是如果沒有完整的C++解析器,我沒有辦法做到這一點,即使編譯器供應商也無法正確使用。也許這些類可以用一些方式編寫,這使得外部工具的工作更容易,但是我確信我最終會錯過各種各樣的角落案例(例如,模板化類和/或模板化成員函數)。
任何想法?其他人是否已經爲此問題提供瞭解決方案?
懶C++做類似的事情 – Amnon 2010-12-23 13:44:17