C++14 ユーティリティのconstexpr対応

N3471 Constexpr Library Additions: utilities, v3


C++14ではユーティリティとして、以下の機能がconstexprに対応します。

  • std::initializer_listの全ての関数
  • std::move(), std::forward(), std::move_if_noexcept()
  • std::pairの操作全般(コピー、ムーブ、代入、swap以外)
  • std::tupleの操作全般(コピー、ムーブ、代入、swap以外)

C++14の他の提案によって、constexpr関数で変数書き換えが許可されたため、非const操作もconstexpr化可能にはなりましたが、提案の順番によってその対応はstd::pair、std::tupleにはまだ入りません。