-
Key: DDSPSMC-5
-
Legacy Issue Number: 16338
-
Status: closed
-
Source: Real-Time Innovations ( Sumant Tambe)
-
Summary:
Description: The sources obtained from dds-psm-cxx.googlecode.com do not compile on Visual Studio compilers without significant efforts. There are multiple issues most related to type conversion.
1. All the classes that inherit from dds::core::Value<D> seem to be missing a copy-ctor. For example, QosPolicyCount in src\hpp\tdds\core\policy\QosPolicyCount.hpp. Without a copy-ctor, VS2010 issues a “cannot convert from ...” error.
Most of these classes are found in the following files:
src\hpp\tdds\core\InstanceHandle.hpp
src\hpp\tdds\core\policy\CorePolicy.hpp
src\hpp\tdds\core\policy\QosPolicyCount.hpp
src\hpp\tdds\core\qos\EntityQos.hppProposed Solution: Add a copy constructor to all the classes that inherit from dds::core::Value<D> as follows:
QosPolicyCount(const QosPolicyCount& src) : dds::core::Value<DELEGATE>(src.delegate()) { }
2. The exception classes in dds-psm-cxx\src\hpp\dds\core\Exception.hpp do not need copy-ctor because there is nothing to copy and the base classes don’t have copy constructors either.
Proposed resolution: Remove the declarations of copy constructors in dds-psm-cxx\src\hpp\dds\core\Exception.hpp
3. The private constructor of SampleRejectedStatus in dds-psm-cxx-read-only\src\hpp\dds\core\status\State.hpp needs a typecast to avoid compilation errors on Visual studio versions of STL.
The following constructor can’t be called due to ambiguous overloads of bistset<N> constructors.
private: SampleRejectedState(uint32_t s) : MaskType(s) { }
Proposed solution: Change the call to the base constructor to include an explicit static_cast to int.
private: SampleRejectedState(uint32_t s) : MaskType(static_cast<int>(s)) { }
-
Reported: DDS-PSM-Cxx 1.0b1 — Fri, 17 Jun 2011 04:00 GMT
-
Disposition: Resolved — DDS-PSM-Cxx 1.0b2
-
Disposition Summary:
The Visual Studio C++ 2010 compiler was raising a series of errors and warning that were not caught by GCC relating to some lacking ctors and conversion operators in some template classes. All the errors raised by Visual Studio C++ 2010 have been addressed as verifiable on the latest version of the dds-psm-cxx source code available at https://github.com/kydos/dds-psm-cxx
-
Updated: Fri, 6 Mar 2015 20:58 GMT
DDSPSMC — Compilation errors on Visual Studio 2008/2010
- Key: DDSPSMC-5
- OMG Task Force: ISO/IEC C++ DDS PSM FTF