Fix copy constructor & assignment operator warning in FairMQChannel

Fix Weffc++ warnings

  - Add missing copy constructors and assignment operators .
  - Hide the warning from FairMQStateMachine.h where it is produced by boost and/or is intended.
  - Some code cleanup.
This commit is contained in:
Alexey Rybalchenko
2016-01-06 13:52:24 +01:00
committed by Florian Uhlig
parent 9a0a8c7516
commit e4fed2fa1b
21 changed files with 133 additions and 104 deletions

View File

@@ -6,34 +6,28 @@
*/
#ifndef BASEDESERIALIZATIONPOLICY_H
#define BASEDESERIALIZATIONPOLICY_H
#define BASEDESERIALIZATIONPOLICY_H
#include "FairMQMessage.h"
// c++11 code
#include <type_traits>
// CRTP base class
template <typename TDerived >
class BaseDeserializationPolicy
{
public:
BaseDeserializationPolicy()
{}
public:
BaseDeserializationPolicy() {}
virtual ~BaseDeserializationPolicy()
{}
virtual ~BaseDeserializationPolicy() {}
template<typename C = TDerived>
auto DeserializeMsg(FairMQMessage* msg)-> decltype(static_cast<C*>(this)->DeserializeMsg(msg) )
auto DeserializeMsg(FairMQMessage* msg)-> decltype(static_cast<C*>(this)->DeserializeMsg(msg))
{
static_assert(std::is_same<C, TDerived>{}, "BaseDeserializationPolicy::DeserializeMsg hack broken");
return static_cast<TDerived*>(this)->DeserializeMsg(msg);
static_assert(std::is_same<C, TDerived>{}, "BaseDeserializationPolicy::DeserializeMsg hack broken");
return static_cast<TDerived*>(this)->DeserializeMsg(msg);
}
};
@@ -57,5 +51,4 @@ public:
};*/
#endif /* BASEDESERIALIZATIONPOLICY_H */
#endif /* BASEDESERIALIZATIONPOLICY_H */