diff --git a/rmw_connextdds_common/src/ndds/dds_api_ndds.cpp b/rmw_connextdds_common/src/ndds/dds_api_ndds.cpp index 1c07e88a..4e680c3a 100644 --- a/rmw_connextdds_common/src/ndds/dds_api_ndds.cpp +++ b/rmw_connextdds_common/src/ndds/dds_api_ndds.cpp @@ -208,6 +208,14 @@ rmw_connextdds_initialize_participant_qos_impl( #endif /* RMW_CONNEXT_FAST_ENDPOINT_DISCOVERY */ #if RMW_CONNEXT_SHARE_DDS_ENTITIES_WITH_CPP + // UserObjectQosPolicy is an internal, undocumented Connext policy used by the + // implementations of different language bindings to control the memory + // representations of various objects created by user applications. In this + // case, the settings match the requirements of the "modern C++" API, and they + // allow the DomainParticipant to be used directly by applications that want + // to create new entities in C++11, even though the participant was created + // using the C API. If these settings are not specified, an application will + // receive a SIGSEGV when trying to create one of these entities. dp_qos->user_object.flow_controller_user_object.size = sizeof(void*); dp_qos->user_object.topic_user_object.size = sizeof(void*); dp_qos->user_object.content_filtered_topic_user_object.size = sizeof(void*);