1
我正在使用C++(C++ 11綁定)的OpenSplice DDS 6.4 OSS版本。如果我試圖默認構建一個主題實例併發送它,也許修改它的一些字段,那麼我會在作者的內心深處發現訪問衝突異常。這是一個錯誤,還是它的默認構造對象無效的行爲?可以發佈默認構建的DDS主題類型嗎?
我正在使用的IDL有很多工會,我有一個採伐可能是相關的。
我正在使用C++(C++ 11綁定)的OpenSplice DDS 6.4 OSS版本。如果我試圖默認構建一個主題實例併發送它,也許修改它的一些字段,那麼我會在作者的內心深處發現訪問衝突異常。這是一個錯誤,還是它的默認構造對象無效的行爲?可以發佈默認構建的DDS主題類型嗎?
我正在使用的IDL有很多工會,我有一個採伐可能是相關的。
的IDL to C++語言映射說,有關工會
默認的構造函數聯盟執行聯盟任何應用程序可見初始化默認初始化以下。它不初始化鑑別器,也不初始化任何聯合成員到對應用有用的狀態。 (默認構造函數的實現可以做它想要的任何類型的初始化的,但這樣的初始化是實現相關的。不兼容的應用程序可以在不斷被正確的默認構造函數單獨初始化的工會數。)
因此,構建默認的初始化主題實例並將其發送到網絡上並不安全。
正如參考,IDL to C++11語言映射說以下
默認工會構造函數初始化工會。如果指定了默認情況,則聯合會初始化爲此默認情況。如果工會有一個隱含的默認成員,它將被初始化爲這種情況。在所有其他情況下,它被初始化爲空。分配,複製,移動和銷燬默認構建的聯合是安全的。
您正在使用哪種編程語言? –
對不起,應該說,我正在使用C++。 – Pete
爲了避免下一次,爲什麼downvote? – Pete