在this answer中,我指出我可以在lambda中定义的结构中定义一个模板化方法。当我尝试这样做时,gcc会出现编译错误。
在Minimal, Complete, Verifiable Example结束时,我在这里写了一个更简单的示例:
[]{struct{
template <typename T> foo() { cout << "default\n"; }
template <> foo<char> foo() { cout << "specialized\n"; } } result;
return result; }
此代码在Visual Studio中运行良好,可在http://webcompiler.cloudapp.net/进行测试,但链接的gcc代码:
本地类
中的成员模板声明无效