C配列の初期化「int arr [] = {e1、e2、e3、…}」の動作をstd :: arrayでエミュレートする方法は?
(注:この質問は、要素の数を指定する必要はなく、ネストされた型を直接初期化できるようにする必要があります。) この質問では、のようなC配列の残りの使用について説明しint arr[20];ます で彼の答え、@James観世ショーC配列の最後の砦の一つ、それはユニークな初期特性です: int arr[] = { 1, 3, 3, 7, 0, 4, 2, 0, 3, 1, 4, 1, 5, 9 }; 要素の数を指定する必要はありません。ここで、C ++ 11関数std::beginとstd::endfrom <iterator>(または独自のバリアント)を使用して反復処理します。サイズについて考える必要はありません。 今、同じことを達成する(おそらくTMP)方法はありますstd::arrayか?見栄えを良くするために許可されたマクロの使用。:) ??? std_array = { "here", "be", "elements" }; 編集:さまざまな回答からコンパイルされた中間バージョンは、次のようになります。 #include <array> #include <utility> template<class T, class... Tail, class Elem = typename std::decay<T>::type> …