我目前正在編寫一些必須是可移植的代碼。爲此,我使用pimpl成語,因爲我認爲它從API中清楚地分離了實際的實現。 總而言之,如果實現不共享代碼(即跨實現共享的一些泛型函數),則pimpl習慣用法只起作用。C++:跨pimpl實現的共享代碼
另一種選擇是我猜的抽象接口.-無論如何,因爲我在整個項目中使用pimpl,我真的不認爲將它與抽象接口(API級別)混合是一個好主意。
那麼你會建議在不同的pimpls上共享代碼有哪些選擇?我想到了pimpl本身的一個抽象接口類,所以實際的API仍然是完全分離的,但這似乎也是一個奇怪的想法。 PS:我不想討論pimpl或抽象接口是否更好。從API的角度來看,我決定和pimpl一起去,我想堅持下去。
謝謝,聽起來很不錯! – moka
該標準看起來好像是在十五年前寫的:遺憾的是錯過了C++以來發生的所有事情。 –
@NicolaMusatti:這可能是真的。你應該檢查VTK支持的編譯器。這個標準非常重要,我對改進非常滿意,但另一方面,我們應該研究真正的編譯器。 :) – Naszta