プログラムでc 問題紹介でコンパイル時間で静的配列を作成することは、従来、Cの静的配列をコンパイル時に定義することができます。サイズ配列。ただし、特定のシナリオでは、コンパイル時にプログラムで値を割り当てることが望ましい場合があります。この記事では、静的配列のこのような動的な作成を実現するためのメタプログラム技術について説明します。 Variadic Template引数リスト。この回避策には、最大テンプレートのインスタンス化の深さが原因で制限があります。 MetaFUNCテンプレートは、インデックスに基づいて値のシーケンスを生成するパラメーターパックとして機能します。 Generate_arrayテンプレートは、生成された値を使用して目的のサイズの配列を作成できます。 };テンプレート class f> struct generate_array { typedef typename generate_array_impl :: result result;};テンプレート class f、unsigned ... args> struct generate_array_impl { typedef typename generate_array_impl :: value、args ...> :: result result;};テンプレート<テンプレート class f、unsigned ... args> struct generate_array_impl <0、f、args ...> { typedef arrayholder :: value、args ...>結果;};テンプレート< unsigned ... args> struct arrayholder { static const unsignedデータ[sizeof ...(args)];};テンプレート< unsigned ... args> const unsigned arrayholder< args ...> :: data [sizeof ...(args)] = {args ...}; << \"\\ n\";} この例は、MetaFUNC Metafunctionを使用してコンパイル時間に割り当てられた値{1、2、3、4、5}のサイズ5の静的配列を定義します。