我正在实现一个树数据结构和一些操作。每个节点都有一些值,指向其父节点的指针和子节点列表。我已经实现了一个函数 max_value,它递归地遍历树并找到存储在节点中的最高值。现在,我想使用 C++11 标准实现一个同样的异步函数。我有以下代码:
template<typename T>
T Node<T>::max_value_async(void)
{
T current_value = p_value;
list<future<T>> results;
//launch tasks
for ( auto x : p_children)
{
results.insert(async(std::launch::async, x.max_value));
}
//wait for results
for (auto r : results)
r.wait();
//find highest value
for (auto r : results)
{
if (current_value < r.get())
current_value = r.get();
}
return current_value;
}
但我无法启动异步功能。怎么了?