在(現有的)代碼中,使用了一個共享指針實現「xBinSp」,它與std :: shared_ptr類似。有一些方法定義爲將NULL共享指針交給引用?
setBinaryValue(xBinSp &bin);
其中這樣的共享指針對象必須被移交。現在有些情況下,NULL(意味着xBinSp())將不得不移交。
調用
setBinaryValue(xBinSp());
導致一個警告
警告C4239:使用非標準擴展: '參數':從 'xBinSp' 轉換爲 'xBinSp &'
所以我的問題:如何我可以正確地交出「NULL」的東西 - 就像這種情況下,當方法期望引用這樣的共享指針嗎?創建自己的變量和使用它似乎是一些浪費資源給我...
謝謝!
我只是通過'xBinSp'。 –
我看到答案中解釋了機制,但爲什麼根本不調用函數。它有其他副作用,然後修改參數? – Marius
函數HAS將被調用由應用程序本身的邏輯定義,以重置可能早先設置的其他二進制值。所以這是一個合法的狀態,將二進制數據(即空指針又名空共享指針)交給這個方法。 – Elmi