template alias is not supported in gcc4.6, msvc