Chr*_*bek 5 c++ debugging lambda profiling name-mangling
我们在代码中使用了很多C ++ 11 lambda,但发现这样做会带来性能分析和调试工具的困难。例如,MSVC分析器将lambda显示为:
`anonymous namespace'::<lambda0>::operator()(void)const
`anonymous namespace'::<lambda1>::operator()(double,double)const
...
Run Code Online (Sandbox Code Playgroud)
乍看之下,这实际上无助于在stacktrace或事件探查器摘要中标识lambda。
有什么办法可以给lambda一个名称来进行调试(它应该是定义它的作用域的错误名称,恕我直言)?我对特定于平台的解决方案(#pragma?)和hack没问题。
特殊的名称空间可以工作,但需要从常规名称空间跳到一些障碍。