我有一組具有以下結構類:如何從類型列表繼承,然後在繼承成員列表中調用成員?
class U
{
public:
explicit U(int) { ... }
U() {...}
Init(int) {...}
};
我需要能夠撰寫1以上這些類爲類X.僞代碼:
template<class TypeSequence>
class X that derives publicly from all the classes in TypeSequence
{
X(int): all bases are initialized with the integer passed
{}
//if the above constructor is impossible, then the following will do as well:
X(int)
{
Call Init on all bases and pass the given int to them.
}
};
我想我需要很多mpl,但我並不擅長。我想要做什麼?代碼示例會很棒。
我的錯誤:忘了提及我不能使用C++ 11功能。我正在尋找MPL解決方案。
+1問得好。你聽說過mixin的方式嗎?也許,它可以適用於此,或它的變體? – Nawaz
我之前用[Boost.MPL](http://www.boost.org/libs/mpl/)完成了這個操作,但我沒有代碼,並且沒有時間寫一個現在完整回答。如果到那時還沒有人回答,我今晚會重新回顧一下。作爲一個提示,我記得做了一個特殊的mixin,它將兩個'boost :: mpl :: vector <>'迭代器作爲模板參數。 – ildjarn
U與TypeSequence有什麼關係? –