OpenMP私有类实例变量

问题描述 投票:0回答:1

我正在使用OpenMP,我在Windows VC ++ 13中将变量设置为私有。这些变量是类实例。该类是一个复杂的类,包含指针,其他类的实例,嵌套和深层。我可以确定所有内容都适当地提供给线程的私有副本吗?

它说,我也无法将类实例设为私有,它不会链接

 error LNK2019: unresolved external symbol "public: __cdecl ClassName::ClassName(void)" (??0ClassName@@QEAA@XZ) referenced in function ...
c++ openmp
1个回答
0
投票

声明为private的变量不是私有副本。它的初始值就好像它是在没有初始化器的情况下在本地声明的。所以对于class,它是默认构造的。该标准明确要求

A variable of class type (or array thereof) that appears in a private clause requires an accessible, unambiguous default constructor for the class type.

您的错误消息只是告诉您它丢失了。

也许你把privatefirstprivate混淆,qazxswpoi实际上是从并行区域之外的原始值初始化。对于那些,您需要一个复制构造函数。代码的正确性取决于正确实现的复制构造函数。

© www.soinside.com 2019 - 2024. All rights reserved.