x > y >新 T 的可能含义:语法
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.
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 助记符和指向成员语法的指针
- 有人能分解一下这个c++模板的语法吗
- C++避免重复声明的语法是什么
- QMetaObject invokeMethod的基于函数指针的语法
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- EASTL矢量<向量<int>>连续的
- 单独定义模板化嵌套类方法的正确语法
- 共享指针和具有自定义删除程序的唯一指针之间的语法差异背后的任何原因
- 错误 C2760:语法错误:映射迭代器上意外的标记"标识符",预期的";"
- 为什么我会收到错误 C2143 语法错误:缺少"*"之前的';'?
- 奇怪的代码抛出编译错误模板< J,int aSize=10> C2143:语法错误:在"<"之前缺少";"
- 使用基类指针调用基类的值构造函数的语法是什么?
- 很好的语法来获取对向量/数组数据的大小引用?
- C++语法运算符功能?
- C++使用 rand 定义函数语法
- 什么文件可以修改 atom 的C++语法?
- 创建模板嵌套类实例的语法?
- C++语法差异:二维和一维数组(指针算术)