【发布时间】:2012-04-04 15:49:54
【问题描述】:
所以我有一些在 C++11 之前编写的代码,它根据模板参数解析字符串。我不想为每个数量的参数都定义一个定义,而是想使用可变参数模板,但我无法理解如何正确初始化元组。请参阅我想要的简化代码,这是针对 2 个参数的特殊情况:
template <typename Arg1, typename Arg2>
struct parser
{
static tuple<Arg1, Arg2> parse(const string& str)
{
Arg1 arg1;
Arg2 arg2;
// do the parsing with for example stringstream
return tuple<Arg1, Arg2>(arg1, arg2);
}
};
在可变参数情况下将参数放入元组时遇到问题。我可以构造返回值持有者:
tuple<Args...> retVal;
但我不知道是否有办法遍历参数并将它们放在一个元组中。我已经看到了一些递归魔法来获得例如 printf 函数,但我不知道它是否适用于这种情况。
【问题讨论】:
-
您是否尝试根据字符串解析的结果更改元组的类型?