common: Make frequently called util methods more efficient
[quassel.git] / src / common / types.h
index 5c80095..eb0c0ca 100644 (file)
@@ -115,7 +115,7 @@ typedef QList<BufferId> BufferIdList;
  * @returns A reference to the stream
  */
 template<typename T,
-         typename std::enable_if<std::is_enum<T>{}, int>::type = 0>
+         typename = typename std::enable_if<std::is_enum<T>::value>::type>
 QDataStream &operator<<(QDataStream &out, T value) {
     out << static_cast<typename std::underlying_type<T>::type>(value);
     return out;
@@ -125,24 +125,14 @@ QDataStream &operator<<(QDataStream &out, T value) {
  * Catch-all stream serialization operator for enum types.
  *
  * @param[in,out] in    Stream to deserialize from
- * @param[in]     value Value to deserialize into
+ * @param[out]    value Value to deserialize into
  * @returns A reference to the stream
  */
 template<typename T,
-         typename std::enable_if<std::is_enum<T>{}, int>::type = 0>
+         typename = typename std::enable_if<std::is_enum<T>::value>::type>
 QDataStream &operator>>(QDataStream &in, T &value) {
     typename std::underlying_type<T>::type v;
     in >> v;
     value = static_cast<T>(v);
     return in;
 }
-
-//! Base class for exceptions.
-struct Exception {
-    Exception(QString msg = "Unknown Exception") : _msg(msg) {}
-    virtual ~Exception() {} // make gcc happy
-    virtual inline QString msg() { return _msg; }
-
-protected:
-    QString _msg;
-};