很確定我已經知道答案了,但它值得一試。我可以從類型列表中聲明模板專門化嗎?
所以,說我有一個類型串:
template <typename ...Ts>
struct typelist{};
包含一些對象:
struct foo{};
struct bar{};
struct quux{};
using objects = typelist<foo, bar, quux>;
現在我有一個模板類(baz
),可以採取任何這些對象。但是,由於代碼庫大小和編譯時間的緣故,我希望在cpp文件中實現我的模板化方法。
因此,在baz.cpp的底部我:
template <> class baz<foo>;
template <> class baz<bar>;
template <> class baz<quux>;
的問題是我有很多類,如baz
,他們用同樣千變萬化的工作對象的列表。所以...無論如何,我可以保留我的單個類型的對象類型列表,並在每個類似baz
的對象的cpp文件中使用它來專門化?然後,我所要做的就是在我有一個新對象時更新我的類型列表,並重建所有對象文件。
您不必*特殊化*,只顯式*實例化*它們。 – Jarod42
這絕對可以使用宏來完成。鑑於這將與您的其他代碼庫隔離,爲什麼不這樣做呢? –