相关疑难解决方法(0)

如何在C++中初始化静态const成员?

是否可以在构造函数外部初始化静态const值?可以在找到成员声明的同一地点进行初始化吗?

class A {
private:
  static const int a = 4;
  /*...*/
};
Run Code Online (Sandbox Code Playgroud)

c++ static

61
推荐指数
4
解决办法
8万
查看次数

静态constexpr和C++ 17中的静态内联变量有什么区别?

使用C++ 17,我们得到内联变量.

其中一个用途是在类中定义常量字段.

那么这两个常量定义之间的区别是什么:

class MyClass {
    static constexpr int myFirstVar = 10;
    static const inline int mySecondVar = 100;
};
Run Code Online (Sandbox Code Playgroud)

当然constexprmyFirstVar隐式内联.

什么是更好的选择,使用constexprinline

注意:当你不需要constness时,那就inline更容易了.随着constexpr你没有这样的选择.

c++ c++17

50
推荐指数
1
解决办法
8320
查看次数

为什么非成员静态constexpr变量不是隐式内联的?

在C++ 17中,我们得到了内联变量,我假设全局constexpr变量是隐式内联的.但显然这只适用于静态成员变量.

这背后的逻辑/技术限制是什么?

资源:

声明constexpr的静态成员变量(但不是命名空间范围变量)隐式地是内联变量.

c++ static inline c++17

7
推荐指数
2
解决办法
769
查看次数

标签 统计

c++ ×3

c++17 ×2

static ×2

inline ×1