这是基于此处提出的原始问题。
[详细]:这是评论中要求的相关问题
Lippman 在 p.303 的 c++ 入门书提到:
class Account {
private:
static constexpr int period = 30;
double daily_tbl[period];
}
如果成员仅在编译器可以替换成员值的上下文中使用,则不需要单独定义初始化的 const 或 constexpr static。但是,如果我们在值不能被替换的上下文中使用该成员,则该成员必须有一个定义。
还:
例如,如果我们将 Account::period 传递给接受 const int& 的函数,则必须定义 period。
那么,为什么传递Account::period
给一个需要 a 的函数const int&
需要period
定义呢?
知道会很有帮助,
- 理由是什么?
- 标准是否明确指定了这些场景,或者这些场景是从更通用的引用中推导出来的?