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 <[email protected]
<mailto:[email protected]>> 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
[email protected] <mailto:[email protected]>
https://lists.qt-project.org/listinfo/interest
_______________________________________________
Interest mailing list
[email protected]
https://lists.qt-project.org/listinfo/interest
_______________________________________________
Interest mailing list
[email protected]
https://lists.qt-project.org/listinfo/interest