私はこれに対する答えをすでに知っていますが、それは価値があります。テンプレートの専門用語をタイプリストから宣言できますか?
template <typename ...Ts>
struct typelist{};
いくつかのオブジェクトが含まれています:
struct foo{};
struct bar{};
struct quux{};
using objects = typelist<foo, bar, quux>;
は、今私は、これらのオブジェクトのいずれかを取ることができますテンプレートクラス(
baz
)を持っている
だから、私はtypelistにを持っていると言います。しかし、コードベースのサイズとコンパイル時間のために、テンプレート化されたメソッドの実装をcppファイルに入れたいと思っています。
は、だから私は持っているbaz.cppの下部にある:
template <> class baz<foo>;
template <> class baz<bar>;
template <> class baz<quux>;
問題は、私はbaz
のようなクラスがたくさんあるし、彼らはで動作するオブジェクトのリストも絶えず変化しています。だから...とにかく私は単一のタイプリストのオブジェクトを保持し、それを各baz
のようなオブジェクトのcppファイルで使用することができますか?次に、新しいオブジェクトを作成したときにタイプリストを更新するだけです。すべてのオブジェクトファイルが再構築されます。
* specialize *は明示的に*インスタンス化*する必要はありません。 – Jarod42
これは間違いなくマクロを使って行うことができます。これが残りのコードベースから分離されていることを考えれば、それだけじゃないの? –