これは、ここで尋ねられた元の質問に基づいています。
[詳細]:コメントで要求された関連する質問は次のとおりです
p.303のLippmanのc++入門書は、次のように述べています。
class Account {
private:
static constexpr int period = 30;
double daily_tbl[period];
}
メンバーが、コンパイラーがメンバーの値を置き換えることができるコンテキストでのみ使用される場合、初期化されたconstまたはconstexprstaticを個別に定義する必要はありません。ただし、値を代入できないコンテキストでメンバーを使用する場合は、そのメンバーの定義が必要です。
また:
たとえば、Account ::periodをconstint&を取る関数に渡す場合は、periodを定義する必要があります。
では、なぜ、定義する必要Account::period
のある、を受け取る関数に渡すのでしょうか。
知っておくと非常に役立ちます、 const int&
period
- 理論的根拠は何ですか?
- 標準はこれらのシナリオを明示的に指定していますか、それともこれらはより一般的な見積もりから推測されていますか?