std::future
的析构开销是多少?
当我阅读这个PDF时,注意到:
// Example 1
// (a)
{
async( []{ f(); } );
async( []{ g(); } );
}
// (b)
{
auto f1 = async( []{ f(); } );
auto f2 = async( []{ g(); } );
}
用户经常惊讶地发现 (a) 和 (b) 的行为不同,因为通常情况下,如果我们最终决定不关心返回值并且这样做不会改变程序的含义,我们就忽略 (或者不看) 返回值。
但是我在 quickbench 中检查了一下,结果与我所想的相反。我是否漏掉了讨论的要点?