假設我有很多類與他們的「* Pack」對應的命名。例如,如果我有Moo班,我有MooPack,如果我有Foo,我也有FooPack。Stringify和Unstringify模板參數
我想有一個C++模板函數,它從一個Foo
template <class X, class XPack>
XPack packify(X input){
...
}
是否有可能做到這一點返回FooPack而不必指定模板參數?目前,這必須像做了以下內容:
Moo moo;
MooPack mooppey = packify<Moo, MooPack>(moo);
如果只需要哞模板參數,那個醜陋的模板規範位可以使用#定義走開,但除了,這是不是真的最好的解決方案要麼仍然不這樣做。
有沒有辦法,或者我會不得不等待C++ 0x?
啊是的,我認爲只指定一個參數實際上是可以接受的(兩個參數看起來很醜)。嵌套類是一個好主意,但是我無法改變現有的類聲明。 – kamziro 2011-01-07 13:28:11