使用 Visual Studio Nov 2012 CTP,它支持可变参数模板(除其他外)。以下代码:
template<int, typename... Args>
void myfunc(Args... args)
{
}
template<>
void myfunc<1, float>(float)
{
}
产生以下错误:
错误 C2785:“void myfunc(Args...)”和“void myfunc(float)”具有不同的返回类型
错误 C2912:显式特化“void myfunc(float)”不是函数模板的特化
(是的,第一个很有趣)
所以我的问题是:
1)我在这里写合法的 C++11 吗?
2)如果是,有没有办法在提交之前找出这是否是 MSVC 中的一个已知错误?