Windows Visual Studio 2010 warning C4251 'needs to have dll interface'
qpid::amqp_0_10::MapCodec::contentType
-------------------------------------------------------------------------------------------------------------
Key: QPID-3478
URL: https://issues.apache.org/jira/browse/QPID-3478
Project: Qpid
Issue Type: Bug
Components: C++ Broker, C++ Client
Affects Versions: 0.12
Environment: Windows builds using Visual Studio 2010
Reporter: Chuck Rolke
Fix For: Future
File cpp/include/qpid/amqp_0_10/Codecs.h has code to the effect of:
class QPID_COMMON_EXTERN MapCodec
{
public:
static const std::string contentType;
private:
};
VS2010 warns that exporting a std::string from a DLL may have unexpected
consequences.
One possible solution is from
http://www.eggheadcafe.com/software/aspnet/30952961/a-solution-to-warning-c4251--class-needs-to-have-dllinterface.aspx
2. You can define a wrapper class that has no inline functions and defines all
the potentially compiler-generated functions (default ctor, copy ctor, dtor,
and assignment operator) and dllexport that.
Other discussion of this issue:
http://stackoverflow.com/questions/2132747/warning-c4251-when-building-a-dll-that-exports-a-class-containing-an-atlcstring
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]