C++ Union v.s. Struct

Union是一种特殊的数据结构,常用在一些对内存要求严格的地方。 Union和Struct的区别: 1、Struct中的每个成员有各自的内存空间,而Union中各成员共享一段内存空间,且该段内存空间的长度为各成员中最长的长度; 2、Struct中每个成员都可以有自己的Value,而Union中是冲突的,新成员-Value替代旧成员-Value; 3、Union中成员的赋值只能通过Union.成员名=xx进行;而Struct不用。

C++ 17, C++ 20 nodiscard announcement

nodiscard从C++ 17引入,对于C++ 17版本的语法为[[nodiscard]],C++ 20 为[[nodiscard(“string”)]]。nodiscard一般用于标记函数的返回值或者某个类,当使用弃值表达式或者而不是cast to void调用相关函数时编译器会发出警告。 当函数返回class的引用或者指针时,nodiscard无效。