DDS-PSM-Cxx 1.1 RTF Avatar
  1. OMG Issue

DDSPSMC11_ — DataReader.hpp, ContentFilteredTopic.hpp, Topic.hpp, TopicDescription.hpp o not compile with MS Visual Studio

  • Key: DDSPSMC11_-58
  • Legacy Issue Number: 18644
  • Status: open  
  • Source: Leonardo S.p.A ( Simon McQueen)
  • Summary:

    In src/hpp/dds/sub/DataReader.hpp; src/hpp/dds/topic/ContentFilteredTopic.hpp; src/hpp/dds/topic/Topic.hpp; src/hpp/dds/topic/TopicDescription.hpp

    ... the template header file includes need to be moved as MSVC appears to ignore any attempt to 're-declare' a template class with a 'new' default argument and only considers defaults on the first time of asking.

    Without the move the compiler emits an error in each case like something like e.g.:

    dds/topic/detail/AnyTopicDescription.hpp(48): error C2976: 'dds::topic::TopicDescription' : too few template arguments
    dds/topic/TTopicDescription.hpp(41) : see declaration of 'dds::topic::TopicDescription'

    Suggested resolutions:

    diff --git a/src/hpp/dds/sub/DataReader.hpp b/src/hpp/dds/sub/DataReader.hpp
    index b38ddaa..b476779 100644
    --- a/src/hpp/dds/sub/DataReader.hpp
    +++ b/src/hpp/dds/sub/DataReader.hpp
    @@ -1,10 +1,8 @@
     #ifndef OMG_DDS_SUB_DATA_READER_HPP_
     #define OMG_DDS_SUB_DATA_READER_HPP_
    
    
    -#include <dds/sub/TDataReader.hpp>
     #include <dds/sub/detail/DataReader.hpp>
    
    
    -
     namespace dds {
       namespace sub {
         template <typename T,
    @@ -15,6 +13,7 @@ namespace dds {
       }
     }
    
    
    +#include <dds/sub/TDataReader.hpp>
    
    
     // = Manipulators
     namespace dds {
    
    
    diff --git a/src/hpp/dds/topic/ContentFilteredTopic.hpp b/src/hpp/dds/topic/ContentFilteredTopic.hpp
    index 057a2f6..cbc5cfc 100644
    --- a/src/hpp/dds/topic/ContentFilteredTopic.hpp
    +++ b/src/hpp/dds/topic/ContentFilteredTopic.hpp
    @@ -20,11 +20,12 @@
      */
    
    
     #include <dds/topic/detail/ContentFilteredTopic.hpp>
    -#include <dds/topic/TContentFilteredTopic.hpp>
    
    
     namespace dds { namespace topic {
       template <typename T, template <typename Q> class DELEGATE = dds::topic::detail::ContentFilteredTopic>
       class ContentFilteredTopic;
     } }
    
    
    +#include <dds/topic/TContentFilteredTopic.hpp>
    +
     #endif /* OMG_DDS_TOPIC_CONTENT_FILTERED_TOPIC_HPP_ */
    
    
    diff --git a/src/hpp/dds/topic/Topic.hpp b/src/hpp/dds/topic/Topic.hpp
    index cd69316..5545f76 100644
    --- a/src/hpp/dds/topic/Topic.hpp
    +++ b/src/hpp/dds/topic/Topic.hpp
    @@ -2,11 +2,12 @@
     #define OMG_DDS_TOPIC_TOPIC_HPP_
    
    
     #include <dds/topic/detail/Topic.hpp>
    -#include <dds/topic/TTopic.hpp>
    
    
     namespace dds { namespace topic {
       template <typename T, template <typename Q> class DELEGATE = dds::topic::detail::Topic>
       class Topic;
     } }
    
    
    +#include <dds/topic/TTopic.hpp>
    +
     #endif /* OMG_DDS_TOPIC_TOPIC_HPP_ */
    
    
    diff --git a/src/hpp/dds/topic/TopicDescription.hpp b/src/hpp/dds/topic/TopicDescription.hpp
    index 47e2dd1..6e908b0 100644
    --- a/src/hpp/dds/topic/TopicDescription.hpp
    +++ b/src/hpp/dds/topic/TopicDescription.hpp
    @@ -20,7 +20,6 @@
      */
    
    
     #include <dds/topic/detail/TopicDescription.hpp>
    -#include <dds/topic/TTopicDescription.hpp>
    
    
     namespace dds { namespace topic {
       template <typename T,
    @@ -28,5 +27,6 @@ namespace dds { namespace topic {
       class TopicDescription;
     } }
    
    
    +#include <dds/topic/TTopicDescription.hpp>
    
    
     #endif /* OMG_DDS_TOPIC_TOPIC_DESCRIPTION_HPP_ */
    
  • Reported: DDS-PSM-Cxx 1.0b2 — Tue, 9 Apr 2013 04:00 GMT
  • Updated: Sun, 30 Sep 2018 23:30 GMT