我偶然发现了以下lambda语法,我不明白:
#include <iostream>
template<typename Callback>
void do_it(Callback callback) {
callback();
}
template<typename T>
void p() {
std::cout << __PRETTY_FUNCTION__ << std::endl;
}
int main() {
auto a = <:&:> { };
p<decltype(a)>();
do_it(<:&:> { std::cout << "Hello" << std::endl; }); //this
}
Run Code Online (Sandbox Code Playgroud)
上面的程序产生一个输出:
void p() [with T = main()::__lambda0]
Hello
Run Code Online (Sandbox Code Playgroud)
你能解释一下,是什么<:&:> {/* ... */}意思?是否有可能将这种方式声明为带有参数的lambda?
在使用 Google Chrome 时间轴功能时,我注意到一件奇怪的事情。在我的 PC 上,工作场所火焰图非常平坦,仅显示 1-2 个深度的函数调用。我的第一个想法是:“嗯,这就是这件事的运作方式”。但是当我从家里打开同一个 web 应用程序时,火焰图要高得多,显示了所有的函数调用。
两个浏览器的版本相同(51.0.2704.84 m - 目前最新)。DevTools 中的所有设置都是相同的。
工作中电脑的火焰图:

家里电脑的火焰图:

我的问题很简单:为什么工作中的计算机没有显示完整的调用图,我该如何解决这个问题?