avatar
文章
87
标签
24
分类
15

主页
归档
标签
分类
列表
  • 音乐
  • 电影
链接
关于
Vinda's Blog
搜索
主页
归档
标签
分类
列表
  • 音乐
  • 电影
链接
关于
C++ 11:user-defined literals(用户定义字面量)
发表于2022-08-30|更新于2022-08-30|C++|C++ Feature•C++ 11
user-defined literals(用户定义字面量) 通过定义用户定义的后缀,允许整数、浮点数、字符及字符串字面量产生用户定义类型的对象。 1-4) 用户定义整数字面量,例如 12_km 5-6) 用户定义浮点字面量,例如 0.5_Pa 7) 用户定义字符字面量,例如 ‘c’_X 8) 用户定义字符串字面量,例如 “abd”_L 或 u"xyz"_M 十进制字面量 - 与整数字面量中相同,非零的十进制数位后随零或多个十进制数位 八进制字面量 - 与整数字面量中相同,零后随零或多个八进制数位 十六进制字面量 - 与整数字面量中相同,0x 或 0X 后随一个或多个十六进制数位 二进制字面量 - 与整数字面量中相同,0b 或 0B 后随一或多个二进制数位 数字序列 - 与浮点字面量中相同,一个十进制数字序列 分数常量 - 与浮点字面量中相同,要么是一个后随小数点的 数字序列(123.),要么是一个可选的 数字序列 后随小数点和另一个 数字序列(1.0 或 .12) 指数部分 - 与浮点字面量中相同,字母 e 或字母 E 后随可选的正负号,后随 数字序列 字符字面量 ...
C++ 11:attributes(属性)
发表于2022-08-30|更新于2022-08-30|C++|C++ Feature•C++ 11
attributes(属性) 属性说明符序列(C++11 起) 为类型、对象、代码等引入由实现定义的属性。 [[属性]] [[属性1, 属性2, 属性3(实参)]] [[命名空间::属性(实参)]] alignas说明符 正式而言,语法是 [[ 属性列表 ]] 其中 属性列表 是由逗号分隔的零或更多个 属性 的序列(可以以指示包展开的省略号 … 结束) 标识符 属性命名空间 :: 标识符 标识符 (实参列表) 属性命名空间 :: 标识符 (实参列表) 简单属性,例如 [[noreturn]] 有命名空间的属性,例如 [[gnu::unused]] 有实参的属性,例如 [[deprecated("because")]] 既有命名空间又有实参列表的属性 属性为各种由实现定义的语言扩展(例如 GNU 与 IBM 的语言扩展 __attribute__((...)),微软的语言扩展 __declspec() 等)提供了统一化的语法。 属性可用在 C++ 程序中的几乎所有位置,而且可应用于几乎所有事物:类型、变量、函数、名字、代码块、整个翻译单元,不过每个特定的属性都只在 ...
C++ 11:unicode string literals(Unicode 字符串字面量)
发表于2022-08-30|更新于2022-09-11|C++|C++ Feature•C++ 11
Unicode 字符串字面量 语法 说明 “s字符序列(可选)” 通常字符串字面量。无前缀字符串字面量的类型是 const char[N],其中 N 是以执行窄编码 (C++23 前)通常字面量编码 (C++23 起)的编码单元计的字符串的大小,包含空终止符。 L"s字符序列(可选)" 宽字符串字面量。L"…" 字符串字面量的类型是 const wchar_t[N],其中 N 是以执行宽编码 (C++23 前)宽字面量编码 (C++23 起)的编码单元计的字符串的大小,包含空终止符。 u8"s字符序列(可选)" UTF-8 字符串字面量。u8"…" 字符串字面量的类型是 const char[N] (C++20 前)const char8_t[N] (C++20 起),其中 N 是以 UTF-8 编码单元计的字符串的大小,包含空终止符。 u"s字符序列(可选)" UTF-16 字符串字面量。u"…" 字符串字面量的类型是 const char ...
C++ 11:generalized PODs (trivial types and standard-layout types)(推广的 POD (平凡类型与标准布局类型))
发表于2022-08-30|更新于2022-08-30|C++|C++ Feature•C++ 11
推广的 POD 指定类型为 POD(Plain Old Data,简旧数据)类型。这表示该类型与用于 C 程序语言的类型兼容,即它能直接以二进制形式与 C 库交互。 注意:标准中并没有定义具有这个名字的具名要求。这是核心语言所定义的一种类型类别。将它作为具名要求包含于此只是为了保持一致性。
C++ 11:generalized (non-trivial) unions(推广的(非平凡)联合体)
发表于2022-08-30|更新于2022-08-30|C++|C++ Feature•C++ 11
联合体 联合体是特殊的类类型,它在一个时刻只能保有其一个非静态数据成员。 联合体声明的类说明符与类或结构体的声明相似: union 属性 类头名 { 成员说明 } 名词 解释 属性 (C++11 起) 任意数量属性的可选序列 类头名 被定义的联合体的名字。可以前附 嵌套名说明符(名字与作用域解析运算符的序列,以作用域解析运算符结尾)。可以忽略名字,此时联合体是无名的 成员说明 访问说明符、成员对象和成员函数的声明与定义的列表。 联合体可以拥有成员函数(包含构造函数和析构函数),但不能有虚函数。 联合体不能有基类且不能用作基类。 联合体不能拥有引用类型的非静态数据成员。 联合体不能含有带非平凡特殊成员函数(复制构造函数、复制赋值运算符或析构函数)的非静态数据成员。(C++11 前) 如果联合体含有带非平凡特殊成员函数(复制/移动构造函数,复制/移动赋值,或析构函数)的非静态数据成员,那么该联合体中的那些函数默认被弃置,且需要程序员显式定义。 如果联合体含有带非平凡默认构造函数的非静态数据成员,那么该联合体的默认构造函数默认被弃置,除非该联合体的变体成员拥有一个 ...
C++ 11:variadic templates(可变参数模板)
发表于2022-08-30|更新于2022-08-30|C++|C++ Feature•C++ 11
形参包 模板形参包是接受零个或更多个模板实参(非类型、类型或模板)的模板形参。函数形参包是接受零个或更多个函数实参的函数形参。 至少有一个形参包的模板被称作变参模板。 变参类模板可以用任意数量的模板实参实例化: 1234567template<class... Types>struct Tuple {}; Tuple<> t0; // Types 不包含实参Tuple<int> t1; // Types 包含一个实参:intTuple<int, float> t2; // Types 包含两个实参:int 与 floatTuple<0> error; // 错误:0 不是类型 变参函数模板可以用任意数量的函数实参调用(模板实参通过模板实参推导推导): 123456template<class... Types>void f(Types... args); f(); // OK:args 不包含实参f(1); // OK:args ...
C++ 11:type aliases(类型别名)
发表于2022-08-30|更新于2022-08-30|C++|C++ Feature•C++ 11
type aliases(类型别名) 类型别名,别名模版 (C++11 起) 类型别名是指代【先前定义的类型】的名字(与 typedef 类似)。 别名模版是指代一族类型的名字。 语法 别名声明是具有下列语法的声明: using 标识符 属性(可选) = 类型标识 ; 类型别名声明引入一个名字,可用做 类型标识 所指代的类型的同义词。它不引入新类型,且不能更改既存类型名的含义。类型别名声明和 typedef 声明之间没有区别。此类声明可出现于块作用域、类作用域或命名空间作用域。 template < 模板形参列表 > using 标识符 属性(可选) = 类型标识 ; 别名模板是一种模板,当其特化时等价于以别名模板的模板实参来替换 类型标识 中的模板形参的结果。 12345template<class T>struct Alloc { };template<class T>using Vec = vector<T, Alloc<T>>; // 类型标识为 vector<T, Alloc ...
C++ 11:char16_t 与 char32_t(字符类型)
发表于2022-08-30|更新于2022-09-11|C++|C++ Feature•C++ 11
char16_t 与 char32_t(字符类型) char16_t - UTF-16 字符表示的类型,要求大到足以表示任何 UTF-16 编码单元(16 位)。它与 std::uint_least16_t 具有相同的大小、符号性和对齐,但它是独立的类型。 char32_t - UTF-32 字符表示的类型,要求大到足以表示任何 UTF-32 编码单元(32 位)。它与 std::uint_least32_t 具有相同的大小、符号性和对齐,但它是独立的类型。
C++ 11:long long
发表于2022-08-30|更新于2022-08-30|C++|C++ Feature•C++ 11
整数类型 int - 基本整数类型。如果使用了下列任何修饰符就可以省略关键词 int。如果没有长度修饰符,那么它保证拥有至少 16 位宽度。然而在 32/64 位系统上,几乎专门保证它拥有至少 32 位宽度。 修饰符 修饰整数类型。能以任何顺序混合使用。类型名中每组只能有一个。 符号性 signed - 目标类型将拥有有符号表示(默认符号性) unsigned - 目标类型将拥有无符号表示 大小 short - 目标类型将为空间优化,且将有至少 16 位的宽度。 long - 目标类型将有至少 32 位的宽度。 long long - 目标类型将有至少 64 位的宽度。(C++11 起) 注意:与所有类型说明符相同,容许采用任何顺序:unsigned long long int 与 long int unsigned long 指名同一类型。
C++ 11: 指针字面量(nullptr)
发表于2022-08-30|更新于2022-08-30|C++|C++ Feature•C++ 11
指针字面量(nullptr) 关键词 nullptr 代表指针字面量。它是 std::nullptr_t 类型的纯右值。存在从 nullptr 到任何指针类型及任何成员指针类型的隐式转换。同样的转换对于任何空指针常量也存在,空指针常量包括 std::nullptr_t 的值,以及宏 NULL。 123456789101112131415161718192021222324#include <cstddef>#include <iostream> template<class T>constexpr T clone(const T& t){ return t;} void g(int*){ std::cout << "函数 g 已调用\n";} int main(){ g(nullptr); // 良好 g(NULL); // 良好 g(0); // 良好 g(clo ...
1234…9
avatar
Vinda
开到荼蘼
文章
87
标签
24
分类
15
My GitHub
公告
欢迎大家收藏我的博客!
联系方式
QQ: 210968619
Email: hwnd1024@163.com
最新文章
QtGlobal 常用函数2022-10-08
qUtf8Printable2022-10-08
NotePadNext:简介和源码编译2022-10-07
NotePadNext:序2022-10-07
Qt问题-QtCreator调试程序问题2022-10-07
分类
  • C++42
  • CI/CD5
  • Firefox1
  • GitHub1
  • NotePadNext2
  • Python1
  • Qt8
  • Qt Creator 源码分析5
标签
Blog C++ C++ 11 C++ 14 C++ 17 C++ 20 C++ Design Pattern C++ Feature CI/CD Firefox GitHub GitLab Jenkins NotePadNext Python Qt QtCreator QtExamples QtProblems Tiled tdesktop vlc 杂记 源码分析
归档
  • 十月 20225
  • 九月 202214
  • 八月 202231
  • 七月 20224
  • 六月 20221
  • 五月 20222
  • 四月 202216
  • 三月 20228
网站资讯
文章数目 :
87
已运行时间 :
本站访客数 :
本站总访问量 :
最后更新时间 :
©2022 - 2023 By Vinda
框架 Hexo|主题 Butterfly
Hi, welcome to my GitHub!
本地搜索
数据库加载中