this answer私はラムダで定義された構造体内にテンプレート化されたメソッドを定義できることを指摘します。私がこれをしようとするとgccはコンパイラエラーを出します。 http://webcompiler.cloudapp.net/でテストすることができます。このコードは、Visual Studioで正常に実行さ私はVisual Studioのラムダ内でテンプレート化関数を定義できます
[]{struct{
template <typename T> foo() { cout << "default\n"; }
template <> foo<char> foo() { cout << "specialized\n"; } } result;
return result; }
が、リンクGCCコード:私はここにシンプルな場合を例に書かれてきたMinimal, Complete, Verifiable Exampleの目的のために
ローカルクラスのメンバテンプレートの
無効宣言
Visual Studioでこのコードをコンパイルすることを許可してはいけないと考えていたので、それは続きましたが、私はリンクされた質問を編集しました。そして、それは間違いなくクロスプラットフォームの標準に準拠したコードではありません。 –