我有一个程序here在使用线程清理程序运行时失败,我不明白为什么。线程清理程序是否不支持这种情况(在这种情况下错误是误报?)?或者这是程序中的错误?如果它是一个bug,为什么它是一个bug?代码清单也如下所示。
#include <vector>
class A{
std::vector<int> a_;
public:
A()
{
a_ = std::vector<int>{1,2,3,4};
}
auto const& a() const { return a_;}
};
int main()
{
std::vector<A> list(100);
std::vector<std::vector<int>> g(100);
#pragma omp parallel for
for(std::size_t i=0; i < 100; ++i){
g[i] = list[i].a();
}
}
由于this bugfix,这不是重复。