diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2019-02-28 20:47:03 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2019-02-28 20:47:03 +0100 |
commit | bfd866c6df75ad9dd805744c3acd2adf1b6644d8 (patch) | |
tree | 4bda1c3b4e904688472a4ce576dcc256fea06090 /options | |
parent | ab0512b9088cf4fea0a49229465cb78f14c0c81c (diff) |
options/metatype: simplify definition
Diffstat (limited to 'options')
-rw-r--r-- | options/metatype.cpp | 17 | ||||
-rw-r--r-- | options/metatype.hpp | 2 |
2 files changed, 8 insertions, 11 deletions
diff --git a/options/metatype.cpp b/options/metatype.cpp index 3b8ec690..4db0b3fd 100644 --- a/options/metatype.cpp +++ b/options/metatype.cpp @@ -4,25 +4,22 @@ namespace options::detail { template<typename t> -int declare_metatype_for_type(const char* str) +void declare_metatype_for_type(const char* str) { qRegisterMetaType<t>(str); qRegisterMetaTypeStreamOperators<t>(); - - return -1; } } // ns options::detail -#define OPENTRACK_DEFINE_METATYPE2(t, sym) \ - class sym { /* NOLINT */ \ - static const int dribble; \ - }; /* NOLINT */ \ - static sym sym; \ - const int sym :: dribble = ::options::detail::declare_metatype_for_type<t>(#t); +#define OPENTRACK_DEFINE_METATYPE2(t, ctr) \ + namespace { /* NOLINT(cert-dcl59-cpp) */ \ + static const char ctr = /* NOLINT(misc-definitions-in-headers) */ \ + (::options::detail::declare_metatype_for_type<t>(#t), 0); \ + } // anon ns #define OPENTRACK_DEFINE_METATYPE(t) \ - OPENTRACK_DEFINE_METATYPE2(t, PP_CAT(init, __COUNTER__)) + OPENTRACK_DEFINE_METATYPE2(t, PP_CAT(kipple_, __COUNTER__)) #define OPENTRACK_METATYPE_(x) OPENTRACK_DEFINE_METATYPE(x) #include "metatype.hpp" diff --git a/options/metatype.hpp b/options/metatype.hpp index bf149200..ca0947fb 100644 --- a/options/metatype.hpp +++ b/options/metatype.hpp @@ -10,7 +10,7 @@ #include <QMetaType> -#if !defined OPENTRACK_METATYPE_ || defined Q_CREATOR_RUN || defined __clang_analyzer__ +#if !defined OPENTRACK_METATYPE_ # define OPENTRACK_METATYPE(x) Q_DECLARE_METATYPE(x) #else # define OPENTRACK_METATYPE(x) Q_DECLARE_METATYPE(x) OPENTRACK_METATYPE_(x) |