【发布时间】:2018-04-22 01:34:55
【问题描述】:
C++17 引入了inline variable,并且可以在类定义中使用初始化器定义内联静态数据成员。它不需要类外定义。例如,
struct X {
inline static int n = 1;
};
鉴于此,我认为没有理由不始终使用内联静态数据成员,因为它的语法简洁。这样做有什么陷阱吗?请注意,我不介意编译速度较慢。
【问题讨论】:
-
如果您的代码需要 C++17(或更高版本),那么我会使用它。
-
@JiveDadson 只有
constexpr静态数据成员是隐式内联的。 -
我建议阅读这些关键字在应用于变量时的含义。
标签: c++ inline c++17 static-members inline-variable