>>711
列挙型を定義するときには要素の数は分かっているのだから要素数を書いた定義も書いておけば十分かもしれない。
#include <type_traits>
// プライマリテンプレート (実際にはこれが使われたらエラー)
template <class T>
class enum_count {
template <class U>
class helper : public std::integral_constant<bool, false> {};
static_assert(helper<T>::value, "expected known enum.");
};
// 列挙型を定義
enum class Foo {A, B, C, D, E};
// 列挙型 Foo の要素数が 5 であることは分かっているので 5 で定義しておく
template <> class enum_count<Foo> : public std::integral_constant<std::size_t, 5> {};
int main(void) {
// 列挙型の要素数をカウントしたかのように見える
static_assert(enum_count<Foo>::value == 5);
}
列挙型の定義と要素数の定義を同時にするようなマクロでも作っておけばなおよいと思う。
Boost にそんな感じのライブラリがあった気がするが使ったことが無いのでよく知らない。
C++相談室 part163
■ このスレッドは過去ログ倉庫に格納されています
720はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 993e-7LVk)
2023/03/19(日) 10:57:57.35ID:6gmOWdI+0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【北区小学校火災】女性教師「電気ストーブ近くで洗濯物を乾かしていた」 失火とみて捜査 燃えた残骸に“繊維片”付着 ★4 [Ailuropoda melanoleuca★]
- 【速報】北海道・旭川女子高校生殺人 内田梨瑚被告控訴しない方針 懲役27年確定へ [首都圏の虎★]
- 【W杯】元ブラジル代表ロナウド氏「日本には簡単に勝てる」決勝T1回戦で対戦可能性…避けたいのは「オランダ」 ★2 [首都圏の虎★]
- 「名古屋ほど適した場所ない」 広沢市長、副首都法案提出めぐり [首都圏の虎★]
- 仏でエボラ熱感染初確認 [首都圏の虎★]
- 若年層は「包丁キャンセル」 かつての「手抜き」は「効率化」へ [少考さん★]
- おりせん☆2
- 〓たかせん〓 2
- ハム専 ★7
- 【D専】Part.5
- 【MLB】ツインズ vs ドジャース ★3
- 【地上波/DAZNほか】 FIFAワールドカップ2026 総合スレ★163【メキシコ/カナダ/アメリカ】
- 【実況】博衣こよりのえちえちこども裁判クイズ🧪
- ジャップ円、メキシコペソにすら円安状態…「スナック菓子が1000円、小さなおにぎり500円以上。先進国とは思えない」 [667744927]
- 【高市悲報】石油枯渇まであと162日 [616817505]
- 玉木雄一郎に弄ばれて自殺した高橋茉莉(27)、後を追って母親も自殺。高市よりヤバいだろ😰 [485187932]
- 【画像】「紫雲寺家の子供たち」の新規描き下ろしイラストがエロすぎてヤバイ 興奮が止まらんぞ [933233141]
- 玉木雄一郎が公認を取り消し自殺した高橋茉莉(27)、後を追って母親も自殺😭