今回は"Extern template"(外部テンプレート)。
「外部テンプレート」っていうとなんだかよくわからない感じもしますが、"extern template"と書けば明らかというかそのままというか。
C++を使っていて、恥ずかしながら全く気が付いていなかったのですが、今まで次のようなプログラム
extern template class std::vector<SampleClass>;
のような引数が完全に指定されたテンプレートクラスのextern宣言を書いても、"この翻訳単位ではテンプレートのインスタンス化をしない"ということはなかったようです。
C++0xからは上のような構文を用いると、"この翻訳単位ではテンプレートのインスタンス化をしない"ようになるそうです。これはコンパイル時間の短縮に大きく寄与する可能性があります。