C++でリファレンス変数を定数として宣言したところ、Quoraです。リファレンス定義でのconstexprとconstの使用
static constexpr const int& r = 3;
だから、なぜ両方constexpr
とconst
は、単一のステートメントで使用されますか?
このタイプの声明の目的は何ですか?
C++でリファレンス変数を定数として宣言したところ、Quoraです。リファレンス定義でのconstexprとconstの使用
static constexpr const int& r = 3;
だから、なぜ両方constexpr
とconst
は、単一のステートメントで使用されますか?
このタイプの声明の目的は何ですか?
const
変数は、初期化後に変更できない変数です(例:const int a = 1
)。
constexpr
変数はconstant expressionsであり、コンパイル時に使用できます。変数宣言にconstexprを使用するにはconstが必要です。
ただし、この宣言ではconst
がintに適用され、constexpr
はconst int&
(const intへの参照)に適用されます。
"これは' const'が冗長であることを意味します。 –
C++ 14の 'constexpr'はもはや' const'を意味しないので、メモリが私に失敗しない限り。 –
@AndyProwlこれはメンバー関数用です。 –
参考文献:http://stackoverflow.com/questions/14116003/difference-between-constexpr-and-const目的は何ですか?デモンストレーションだと思います。 – user4581301
似たような質問、http://stackoverflow.com/questions/28614591/how-to-initialize-a-constexpr-reference。 'constexpr'は参照に適用され、' const int'は参照されるものであり、異なる意味を持っています。 –