Issue 16354: Inheritance via dominance warning on Visual Studio (dds-psm-cxx-ftf) Source: Real-Time Innovations (Dr. Sumant Tambe, sumant(at)rti.com) Nature: Enhancement Severity: Minor Summary: Visual Studio spits out many #C4250 warnings on the diamond hierarchy of listeners: for instance, DomainParticipantListener.hpp(48): warning C4250: 'dds::domain::NoOpDomainParticipantListener' : inherits 'dds::pub::NoOpPublisherListener::dds::pub::NoOpPublisherListener::on_offered_deadline_missed' via dominance Proposed solution: Add empty bodies for all the inherited virtual functions in all the NoOp*Listener classes. Particularly, NoOpDomainParticipantListener, NoOpPublisherListener, and NoOpSubscriberListener. Alternatively, #pragma warning( disable : 4250 ) could be used but its purpose will be less clear even with documentation: "Prevents via dominance warning." Resolution: Revised Text: Actions taken: June 30, 2011: received issue Discussion: End of Annotations:===== m: webmaster@omg.org Date: 30 Jun 2011 16:45:04 -0400 To: Subject: Issue/Bug Report ******************************************************************************* Name: Sumant Tambe Employer: Real-Time Innovations mailFrom: sumant@rti.com Terms_Agreement: I agree Specification: DDS-PSM-Cxx Section: 7 FormalNumber: ptc/2011-01-02 Version: Beta 1 Doc_Year: 2011 Doc_Month: January Doc_Day: 01 Page: 4 Title: Inheritance via dominance warning on Visual Studio Nature: Enhancement Severity: Minor CODE: 3TMw8 B1: Report Issue Description: Visual Studio spits out many #C4250 warnings on the diamond hierarchy of listeners: for instance, DomainParticipantListener.hpp(48): warning C4250: 'dds::domain::NoOpDomainParticipantListener' : inherits 'dds::pub::NoOpPublisherListener::dds::pub::NoOpPublisherListener::on_offered_deadline_missed' via dominance Proposed solution: Add empty bodies for all the inherited virtual functions in all the NoOp*Listener classes. Particularly, NoOpDomainParticipantListener, NoOpPublisherListener, and NoOpSubscriberListener. Alternatively, #pragma warning( disable : 4250 ) could be used but its purpose will be less clear even with documentation: "Prevents via dominance warning."