有没有一种方法可以声明将使用constexpr在源文件中定义的公共静态const(有什么区别?)>

问题描述 投票:0回答:1

在标头中,我声明了一个公共的静态const,并在源文件中将其定义为类成员。我想在源文件中定义它,因为我要包含它并使用它中的常量,而我不想包含在标题中。

如果我在标题中使用静态constexpr,则需要在其中定义。

标题

public:
  static const double DEG_TO_RADIANS;

来源

#include <math.h>

const double MyClass::DEG_TO_RADIANS = (M_PI/180.0);

这是您不能使用constexpr的情况,这有关系吗?

为什么静态const允许我不定义变量,而静态constexpr不允许?

编辑:M_PI是这种情况的简单示例。

在标头中,我声明了一个公共的静态const,并在源文件中将其定义为类成员。我想在源文件中定义它,因为我要从其中包含并使用一个常量,...

c++ c++11 static const constexpr
1个回答
0
投票

constexpr的全部要点是将其用于在编译时可以知道的值。如果定义在完全不同的文件中,那将不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.