C++ プログラミングガイド

テンプレート宣言の入れ子

「>>」という文字を持つものは右シフト演算子と解釈されるため、あるテンプレート宣言を別のテンプレート宣言内で使用する場合は注意が必要です。隣接する「>」文字との間に、少なくとも 1 つの空白文字を入れるようにしてください。

以下に誤った書式の例を示します。


Array<String<10>> short_string_array(100); // >> は右シフトを示す。

上記の文は、次のように解釈されます。


Array<String<10  >> short_string_array(100);

正しい構文は次のとおりです。


Array<String<10> > short_string_array(100);