On 27/10/2018 03.07, Tom Isaacson wrote:
I'm using Qt 5.6 in Visual Studio 2017. I've got a class that looks like:
class tClass : public QObject
{
Q_OBJECT
private:
enum class eMode
{
Mode1,
Mode2,
Mode3
};
When I add:
Q_ENUM(eMode)
after the enum declaration I get an error:
moc_tclass.cpp(): error C2248: 'tClass::eMode': cannot access private enum
declared in class 'tClass'
tclass.h(348): note: see declaration of 'tClass:: eMode'
tclass.h(): note: see declaration of 'tClass
Is this a known limitation of Q_ENUM? Is it fixed in later versions of Qt?
Hi, the Q_ENUM macro relies on static data structures declared in the
moc_tclass.cpp file (outside of the scope of the tclass) and these
declarations fail for private stuff. So changing that "private:" to
"public:" is the pretty much your only choice for Q_ENUM to work :-(
Rgrds Henry
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest