首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以发布默认构造的DDS主题类型吗?

可以发布默认构造的DDS主题类型吗?
EN

Stack Overflow用户
提问于 2015-01-14 15:52:01
回答 1查看 122关注 0票数 1

我正在使用OpenSplice DDS6.4OSS与C++ ( C++11绑定)版本。如果我尝试默认构造一个主题实例并发送它,可能会修改它的一些字段,那么我就会在作者的内心深处发现访问冲突异常。这是一个错误,还是默认构造的对象无效的行为?

我使用的IDL有很多联盟,我有一个感觉可能是相关的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-16 11:10:05

从IDL到C++语言映射显示了联合的默认初始化

默认的联合构造函数不执行联合的应用程序可见初始化。它不初始化鉴别器,也不将任何联合成员初始化为对应用程序有用的状态。(默认构造函数的实现可以执行它想要的任何类型的初始化,但是这种初始化依赖于实现。任何兼容的应用程序都不能指望仅由默认构造函数正确地初始化联合。)

因此,构造默认初始化的主题实例并将其发送到线路上是不安全的。

作为参考,从IDL到C++11语言映射如下

默认的联合构造函数初始化联合。如果指定了默认情况,则将联合初始化为此默认情况。如果联合具有隐式默认成员,则初始化为该情况。在所有其他情况下,它被初始化为空。分配、复制、移动和破坏默认构造的联合是安全的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27947041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档