【发布时间】:2013-05-31 15:39:18
【问题描述】:
首先,如果我在英语方面犯了大错误,我很抱歉,我是法国人,但我会尽力写得最好!好吧,我正在努力使用 C++11 可变参数模板。我想做一些有点棘手的事情。
确实,我想专门化我的模板的返回类型,知道它是一个可变参数模板。
我的目标是实现以下目标:
l.callFun<int>("addition", 40, 1, 1);
特化对应于用户想要的返回类型。它是一个 Lua 绑定,所以如果用户不精确,我无法确定返回类型(显然,如果没有专门化,默认值将是 void 返回)。后来,是在 Lua 中调用的函数的名称。然后,这 3 个整数对应于我的可变参数模板。
现在,我的模板如下所示:
template <typename Z, typename T, typename... U>
Z LuaScript::callFun(const std::string& name, const T& head, const U&... tail);
但我似乎无法对模板函数进行部分特化。有没有人可以帮助我?
非常感谢!
【问题讨论】:
-
那么你想写的偏特化是什么?您可以在调用时部分指定模板参数,但这是另一回事。
-
我要专精的是返回类型!
-
我认为你的意思是你想参数化返回类型;)。在我的回答中,我包含了一篇关于部分专业化的文章的链接,以防您想了解更多信息。
标签: c++ templates c++11 specialization variadic