vs2012(vc11) を使用して c++ プログラムを作成しています。少し複雑なラムダ式を使用しようとしているとき。
RasDial(NULL, NULL, 0, 0, &[=]()
{
RasDial(NULL, NULL, 0, 0, &[=](){}, 0);
}, 0);
その後、コンパイルでエラーが発生しました: C2101 & on constant. そして、私は場所を変更し、次のようなコード:
RasDial(NULL, NULL, 0, 0, &[=](){
auto func = [=](){};
RasDial(NULL, NULL, 0, 0,&func, 0);
}, 0);
比較すると、次の式を正常にコンパイルできます。
RasDial(NULL,NULL,0,0,&[](){},0);
私は、VC コンパイルがネストされたラムダを & でうまく理解できないと推測します。
その後、vc11 は正常にコンパイルできます。それは vc11 のコンパイル バグということですか?