2013-02-25 26 views

回答

26

它會工作

從段的C++ 11標準有關​​類模板20.7.1.2.3/8-9:

unique_ptr& operator=(nullptr_t) noexcept;

效果reset()

後置條件get() == nullptr

這意味着類模板​​的定義還包括用於接受作爲其右側nullptr_t類型(如nullptr)的值的operator =過載;該段還規定,將nullptr分配給unique_ptr相當於重置unique_ptr

因此,在此作業後,您的A對象將被銷燬。

+0

我明白了。順便說一句,只有nullptr有nullptr_t,那就是它完成的方式,不是嗎? – Zhen 2013-02-25 15:58:50

+1

@珍:標準沒有指定這個。你可以創建一個'nullptr_t'類型的變量,但是我懷疑你永遠不需要這樣做。 – 2013-02-25 16:03:39

相關問題