refs #140, removed MACRO DBUS_ENUM_MARSHALLING, changed to template

discussed in https://dev.vatsim-germany.org/issues/140#change-864
This commit is contained in:
Klaus Basan
2014-03-11 21:08:59 +01:00
parent ffc03e46f5
commit 0d306861f0
13 changed files with 21 additions and 38 deletions

View File

@@ -297,6 +297,22 @@ namespace BlackMisc
return argument >> static_cast<CValueObject &>(valueObject);
}
/*!
* Non-member non-friend operator for streaming enums to QDBusArgument.
*
* \param argument
* \param enumType
* \return
*/
template <class ENUM> typename std::enable_if<std::is_enum<ENUM>::value, QDBusArgument>::type const &
operator>>(const QDBusArgument &argument, ENUM &enumType)
{
uint e;
argument>> e;
enumType = static_cast<ENUM>(e);
return argument;
}
/*!
* Non-member non-friend operator for streaming T objects from QDBusArgument.
* Needed because we can't rely on the friend operator in some cases due to