unique_ptr<int> a;
if (a) {
cout << "ASSIGNED" << endl;
}
,甚至這樣的代碼:
unique_ptr<int> a;
if (static_cast<bool>(a)) {
cout << "ASSIGNED" << endl;
}
原因這樣的警告:
warning C4800: 'void (__cdecl *)(std::_Bool_struct<_Ty> &)' : forcing value to bool 'true' or 'false' (performance warning)
with
[
_Ty=std::unique_ptr<int>
]
在Visual Studio 2012上警戒線3.我發現的第一個評論後只有在公共語言運行時支持/ clr打開時纔會發生。我應該如何避免它?
if (a.get() != nullptr)
應該工作,但我認爲這不是如何設計unique_ptr,是嗎?
我有VS2013,但它不給我這樣的警告! – billz
在Visual Studio 2010中建立沒有警告的級別警告設置爲「/ W4」... – Johan
我正在編譯/ W3(添加到帖子) –