2017-04-21 10 views
8

C++でリファレンス変数を定数として宣言したところ、Quoraです。リファレンス定義でのconstexprとconstの使用

static constexpr const int& r = 3; 

だから、なぜ両方constexprconstは、単一のステートメントで使用されますか?

このタイプの声明の目的は何ですか?

+0

参考文献:http://stackoverflow.com/questions/14116003/difference-between-constexpr-and-const目的は何ですか?デモンストレーションだと思います。 – user4581301

+3

似たような質問、http://stackoverflow.com/questions/28614591/how-to-initialize-a-constexpr-reference。 'constexpr'は参照に適用され、' const int'は参照されるものであり、異なる意味を持っています。 –

答えて

5

const変数は、初期化後に変更できない変数です(例:const int a = 1)。

constexpr変数はconstant expressionsであり、コンパイル時に使用できます。変数宣言にconstexprを使用するにはconstが必要です。

ただし、この宣言ではconstがintに適用され、constexprconst int&(const intへの参照)に適用されます。

+0

"これは' const'が冗長であることを意味します。 –

+1

C++ 14の 'constexpr'はもはや' const'を意味しないので、メモリが私に失敗しない限り。 –

+4

@AndyProwlこれはメンバー関数用です。 –

関連する問題