предположим, у меня много классов с их "* Pack" аналогами в именовании.Например, если у меня есть класс Moo, у меня есть MooPack, если у меня есть Foo, у меня также есть FooPack.
Я хочу иметь шаблонную функцию c ++, которая возвращает FooPack из Foo
template <class X, class XPack>
XPack packify(X input){
...
}
Возможно ли это сделать без указания аргумента шаблона?На данный момент это должно быть сделано следующим образом:
Moo moo;
MooPack mooppey = packify<Moo, MooPack>(moo);
Если требуется только аргумент шаблона Moo, этот бит спецификации уродливого шаблона может уйти, но кроме использования #defines, которое не 'Это действительно лучшее решение, но оно до сих пор не сделано.
Есть ли способ, или мне придется ждать c ++ 0x?