【发布时间】:2014-03-01 04:40:56
【问题描述】:
我的问题如下: 我有一个这样声明的类:
template<typename ReturnType, typename... Args>
class API
{
ReturnType operator()(Args... args)
{
// Get argument 0
// Get argument 1
}
};
我需要将参数加一,到目前为止,我想出的唯一方法(但我无法让它工作)是使用std::get,例如:
std::get<0>(args);
当然,这会导致很多错误。 我是可变参数模板(以及 C++11 的新手),所以我现在很迷茫。
我怎样才能一一得到这些论点? 任何帮助将不胜感激。
【问题讨论】:
-
你所说的“得到...一个一个”到底是什么意思?
-
我的意思是这样获取它们:
DWORD arg0 = "args[0]"、DWORD arg1 = args[1]等我的意思是,foreach arg 传递给函数,访问它的值 -
尝试
std::tuple<Args>,但对于您的应用程序,我有点迷失了方向。您可能需要运行时索引,而不是静态 (0,1,2)。不知道。你比我更了解你的需求。 -
你想用这些参数做什么?
-
这很难解释,我要推它的值,比如
foreach argument: (code)=0x68, (code+1)=value
标签: c++ c++11 variadic-templates variadic-functions