,借助auto,函数模板和(类模板的)构造函数的模板参数可以根据其参数自动进行类型推导(细节介绍),非类型模板参数的类型也可以从参数中自动推导出来.下面我就来介绍一下非类型模板参数的自动类型推导...."落下"(继续执行后面标签的逻辑,而不break)是有意为之的,编译器不应该诊断其为警告....case标签(或者default标签).
nodiscard
[[nodiscard]]属性可以用于函数声明,枚举声明以及类声明中.如果你丢弃了一个声明为[[nodiscard]]的函数的返回值,编译器就会产生一个编译警告....同样的,如果你丢弃了函数中返回的(声明为)[[nodiscard]]枚举或者(声明为)[[nodiscard]]类,编译器同样会给出警告,抑制该类警告的一种方法就是对返回值进行一次void转型操作....下面的示例中,第6行代码会产生一个编译警告,但在第12行代码中,由于 foo 函数返回的是引用类型(虽然引用类型本身是[[nodiscard]]属性),所以不会产生编译警告.
struct [[nodiscard