[C++] C++でstaticのarrayで値としてenumを使いたい
バージョン
C++ 11
概要
staticとしてstd::arrayをenumの値を使って初期化して使いたいがコンパイルエラーとなってしまう。
そんな時はconstexprを使う。
コード
// .h class AnimalShop { public: enum class AnimalType { DOG = 0, CAT, MOUSE, LION, ELEPHANT }; // これはNG // static std::array<AnimalType, 2> CATEGORY = {AnimalType::DOG , AnimalType::CAT}; // これはOK static constexpr std::array<AnimalType, 2> CATEGORY = {AnimalType::DOG , AnimalType::CAT}; };
Effective Modern C++ ―C++11/14プログラムを進化させる42項目
- 作者: Scott Meyers,千住治郎
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/09/18
- メディア: 大型本
- この商品を含むブログ (7件) を見る