我發現讓一個不可複製的類可以幫助我提高代碼質量。最初我用boost :: noncopyable做了這個,但我發現VC++編譯器錯誤不如私有成員(雙擊導致代碼中的錯誤位置)有用。C++不可複製除了有時
T(T const&);
T& operator=(T const&);
確實,它已經提醒我很多情況下,類沒有作爲參考傳遞給他們應該有的地方。非常如此,即使我只需要複製構造一次的類,我也非常希望得到警告。
有沒有很好的方法來做到這一點?我正在考慮以上兩種私有方法,並添加一個公共T(T const &,bool dummy)構造函數,以便在我真的想複製構造函數時進行調用。或者,也許也可以使上面兩個方法公開,並在複製構造時以某種方式激活編譯器警告,抑制我想要的警告。
或者也許有一個更好的方法嗎?
我最喜歡這個答案。根據我的經驗,複製構造函數的問題是當他們被某個巨大對象「偶然」調用時。 「顯式」迫使你在引用它時考慮它,這應該足夠了。 – Nemo
乾杯,這完全適合我的需求。謝謝。 – Cookie