src/tools/moc/moc.h
changeset 30 5dc02b23752f
parent 19 fcece45ef507
child 37 758a864f9613
equal deleted inserted replaced
29:b72c6db6890b 30:5dc02b23752f
    53 
    53 
    54 struct QMetaObject;
    54 struct QMetaObject;
    55 
    55 
    56 struct Type
    56 struct Type
    57 {
    57 {
    58     enum ReferenceType { NoReference, Reference, Pointer };
    58     enum ReferenceType { NoReference, Reference, RValueReference, Pointer };
    59 
    59 
    60     inline Type() : isVolatile(false), isScoped(false), firstToken(NOTOKEN), referenceType(NoReference) {}
    60     inline Type() : isVolatile(false), isScoped(false), firstToken(NOTOKEN), referenceType(NoReference) {}
    61     inline explicit Type(const QByteArray &_name) : name(_name), isVolatile(false), isScoped(false), firstToken(NOTOKEN), referenceType(NoReference) {}
    61     inline explicit Type(const QByteArray &_name) : name(_name), isVolatile(false), isScoped(false), firstToken(NOTOKEN), referenceType(NoReference) {}
    62     QByteArray name;
    62     QByteArray name;
    63     uint isVolatile : 1;
    63     uint isVolatile : 1;
   240     void checkSuperClasses(ClassDef *def);
   240     void checkSuperClasses(ClassDef *def);
   241 };
   241 };
   242 
   242 
   243 inline QByteArray noRef(const QByteArray &type)
   243 inline QByteArray noRef(const QByteArray &type)
   244 {
   244 {
   245     if (type.endsWith('&'))
   245     if (type.endsWith('&')) {
       
   246         if (type.endsWith("&&"))
       
   247             return type.left(type.length()-2);
   246         return type.left(type.length()-1);
   248         return type.left(type.length()-1);
       
   249     }
   247     return type;
   250     return type;
   248 }
   251 }
   249 
   252 
   250 QT_END_NAMESPACE
   253 QT_END_NAMESPACE
   251 
   254