5
std::optional<T>
のAPIをcppreferenceに探していました。私は好奇心がどのようにvalue_or
が働くだろう。そこに見ると、2つのオーバーロードがあるようだ。後続のconst&または&&関数宣言で
template< class U >
constexpr T value_or(U&& value) const&;
template< class U >
T value_or(U&& value) &&;
は、関数宣言を末尾const&
と&&
何ですか?関数を宣言してconst
とし、それをconst&
と宣言することとの違いは何ですか?
これは実際にはコンパイラが最近サポートを得ているC++ 11の機能です。 – chris
@chris乾杯。私は*これに対する評価値の参照を知っていましたが、それはおそらく実装される最後の機能の1つなので、私はそれらをまったく調べることに気にしませんでした。 – Yuushi
@chris正直なところ私はこの質問に答えるのを待っていました。私はC++の答えを少し前に見ましたが、あまりにも悪いとは思いませんでした。 – aaronman