使用Visual Studio 2012年11月的CTP,它支持可变参数模板(以及其他内容)。以下代码:
template<int, typename... Args>
void myfunc(Args... args)
{
}
template<>
void myfunc<1, float>(float)
{
}
产生以下错误:
error C2785: 'void myfunc(Args...)' and 'void myfunc(float)' have different return types
error C2912: explicit specialization 'void myfunc(float)' is not a specialization of a function template
(是的,第一个非常有趣)
所以我的问题是:
1)我在这里写合法C ++ 11吗?
2)如果是,有没有办法在提交之前查明这是否是MSVC中的已知错误?