- nullptr是个新关键字,它会被自动转换为各种pointer类型,但不会被转换成任何整数类型,它的类型是:std::nullptr_t
- auto完成自动类型推倒,如: auto i = 42。但是一定要加上初始化操作,语法糖的干活
- 一致性初始化: 任何初始化动作,都可以使用大括号这个相同的语法:
点击(此处)折叠或打开
- std::vector<int> v{2,3,4};
- int x{5.3};// dev会warning
- move语义和右值引用:用于避免非必要的拷贝和临时对象创建。需要程序员必须自行指明move可行。位于当中的std::move()会将指定元素转换为右值引用,这意味着这个变量将不会再被需要,可以填充其他。这需要该类型实现一个所谓的move constructor: X(X&& rvalue)和一个move assignment: X& operator=(X&& rvalue),如果没有,默认执行相应的copy语义。
- 字符串字面常量: R"delim(xxxx)delim",其中xxxx就是raw string,这点跟python有点像,delim是一个字符序列,最多16个基本字符,不可包含反斜线、空格和小括号,delim是为了可以在xxxx中写入)"而用。
- noexcept: 指明某个函数不打算抛出异常,如果其抛出异常,程序会终止(-->std::terminate()---> std::abort())。
- constexpr: 让表达式核定于编译期
- 带域的(Scoped)Enumeration: 其定义如下:
点击(此处)折叠或打开
- enum class test1:char{t1, t2, t3, t4};