2
隨着reinterpret_cast
,將是這樣的:轉讓所有權
std::unique_ptr< const T , void (*) (const T *) >
to_const (std::unique_ptr< T , void (*) (T *) > &ptr)
{
return { ptr.release() ,
reinterpret_cast< void (*) (const T *) >(ptr.get_deleter()) } ;
}
這裏鑄造的deleter函數將會用object來調用,這實際上是非const的。
但有沒有更清潔的方式來做這種轉移,同時避免UB?
您能否更清楚地格式化您的代碼? – WhiZTiM