クラスがある場合:
template <typename T>
class MyClass
{
// ...
};
そして私はそれを明示的にインスタンス化します:
template class MyClass<int>;
template class MyClass<int>; // second time
一部のコンパイラでエラーが発生します (たとえば Clang ですが、VC++ 2010 では発生しません)。なぜ私はこれをしたいのですか?まあ、場合によっては別のタイプにT
なるかもしれません。typedef
template class MyClass<my_type_1>;
template class MyClass<my_type_2>;
特定のビルド オプションでmy_type_1
は、と同じですが、my_type_2
それ以外の場合は異なります。上記がすべてのシナリオでコンパイルされることを確認するにはどうすればよいですか? 重複したインスタンス化を無視する方法はありますか?