このコードは 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
どちらが間違っていますか?