[Interest] Is it safe to call qRegisterMetaType() before main()?

Nikos Chantziaras realnc at gmail.com
Mon Jul 29 20:58:09 CEST 2019


The linker might remove it from the executable when linking statically, 
because 'registerHelper' is not referenced anywhere.


On 29/07/2019 19:25, Tomasz Olszak wrote:
> What's is the cons of putting something like that in anonymous namespace 
> instead of constructor?
> 
> namespace {
> struct RegisterHelper
> {
>      RegisterHelper()
>      {
>          qRegisterMetaType<MyClass>();
>          qRegisterMetaType<MyEnum>();
>          qRegisterMetaTypeStreamOperators<MyClass>();
>      }
> };
> static RegisterHelper registerHelper;
> }
> 
> 
> niedz., 28 lip 2019 o 06:22 Thiago Macieira <thiago.macieira at intel.com 
> <mailto:thiago.macieira at intel.com>> napisał(a):
> 
>     On Friday, 26 July 2019 17:35:03 PDT Nikos Chantziaras wrote:
>      > I didn't (although I use Q_ENUM, but it does the same job.) But
>     there's
>      > no constructor to put qRegisterMetaType() in. It's an enum.
>     There's no
>      > constructor. Some enums are in a namespace, some are in a class, but
>      > even with an enum that is in a class, users of can just use the
>     enum in
>      > their own signals/slots prior to instantiating the class that
>     declares
>      > the enum. It will stay unregistered until the first instance of the
>      > class is created.
>      > ____________________
> 
>     I meant in the class it's most likely to be used in.
> 
>     This is only required when referring to it by name, such as in
>     old-style
>     signal-slot connection, QML, D-Bus, etc.
> 
>     Loading it into a QVariant automatically registers, as QVariant calls
>     qMetaTypeId<Enum>() to get the metatype ID.
> 
>     -- 
>     Thiago Macieira - thiago.macieira (AT) intel.com <http://intel.com>
>        Software Architect - Intel System Software Products
> 
> 
> 
>     _______________________________________________
>     Interest mailing list
>     Interest at qt-project.org <mailto:Interest at qt-project.org>
>     https://lists.qt-project.org/listinfo/interest
> 
> 
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> https://lists.qt-project.org/listinfo/interest
> 





More information about the Interest mailing list