这段代码适用于 g++ 和 Clang:
template <typename Sig, Sig& S> struct OpF;
template <typename TR, typename ... Ts, TR (&f)(Ts...)>
struct OpF<TR (Ts...), f> {
};
int foo(int x) {
return 0;
}
OpF<int (int), foo> f;
但是新的闪亮的 VS2013 编译器通过
f.cpp(4) : error C3520: 'Ts' : parameter pack must be expanded in this context
哪一个有错?