簡體   English   中英

x> y> new T:syntax的可能含義

[英]Possible meaning of x > y > new T : syntax

我正在閱讀這篇關於最有用的C ++ 11特性的文章,我在上一節中碰到了這一塊代碼:

 if(_size != copy._size)
 {
    _buffer = nullptr;
    _size = copy._size;
    _buffer = _size > 0 > new T[_size] : nullptr;
 }

我曾經習慣將最后一行視為(_size > 0) > other_Value但在這種情況下,右操作數是一個new聲明。 我真的無法理解它的意義。 另外, : nullptr是指什么? 有什么東西被初始化為nullptr 如果有,那是什么?

我想,這是錯誤的片段。 它應該是

_buffer = _size > 0 ? new T[_size] : nullptr;

這基本上是三元運算符。 如果_size > 0,則將分配大小為_size的T數組的內存,在其他情況下, nullptr將分配給_buffer 而且它不是C ++ 11的功能,因為在C ++ 98中它可以是公正的

_buffer = _size > 0 ? new T[_size] : 0; // or NULL, or (void*)0.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM