考虑一下这个相当无用的程序:#includeintmain(intargc,char*argv[]){inta=5;autoit=[&](autoself){return[&](autob){std::cout基本上,我们正在尝试创建一个返回自身的lambda。MSVC编译程序并运行gcc编译程序,但出现段错误clang用一条消息拒绝该程序:error:function'operator()'withdeducedreturntypecannotbeusedbeforeitisdefined哪个编译器是正确的?是否存在静态约束违规、UB或两者都没有?更新这个轻微的修改被clang接受: