小编Fir*_*kar的帖子

C++17:在 .cpp 文件中定义静态 constexpr 成员函数

我在 .h 文件中声明了一个静态 constexpr 成员函数。如果我立即在头文件中定义该函数,则一切正常。我一般倾向于在 .cpp 文件中定义函数(即使我希望它们内联,我也会使用 inline 关键字并再次这样做)所以当我尝试这样做时,起初似乎没问题,但是当我尝试时要调用此函数,我收到以下错误:

static constexpr uint16_t ClassA::myFoo()' used before its definition

我想了解是否有办法在 .cpp 文件而不是头文件中定义静态 constexpr 成员函数。如果那不可能或可能由于我使用的编译器而受到限制,那么在 .h 文件中定义函数是否有任何副作用?(我知道它对于普通函数是显式内联的,但我不确定 constexper 静态函数)。

PS:我在一个小型嵌入式项目中使用 arm-none-eabi-g++ (c++17) 和 Clion。

c++ constexpr c++17

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

标签 统计

c++ ×1

c++17 ×1

constexpr ×1