binding to reference of type discards qualifiers

  • I don't know why I have this kind of error. I don't use any of const value. append() gives the same error. Does it have anything to do with the fact that append() require const T &value? I'm pretty sure that something like that worked good for me in the past. What can be wrong here?

    full error msg:
    C:\Qt\Qt5.10.1\5.10.1\mingw53_32\include\QtCore\qlist.h:-1: In instantiation of 'void QList<T>::node_construct(QList<T>::Node*, const T&) [with T = DobotMove]':
    C:\Qt\Qt5.10.1\5.10.1\mingw53_32\include\QtCore\qlist.h:584: required from 'void QList<T>::append(const T&) [with T = DobotMove]'
    C:\Qt\Qt5.10.1\5.10.1\mingw53_32\include\QtCore\qlist.h:386: required from 'QList<T>& QList<T>::operator<<(const T&) [with T = DobotMove]'
    C:\DobotChess\dobot\dobot_queue.cpp:191: required from here
    C:\Qt\Qt5.10.1\5.10.1\mingw53_32\include\QtCore\qlist.h:441: błąd: binding 'const DobotMove' to reference of type 'DobotMove&' discards qualifiers
    else reinterpret_cast<T>(n) = t;
    C:\DobotChess\dobot\dobot_queue.cpp:1: In file included from dobot\dobot_queue.cpp:1:0:
    C:\DobotChess\dobot\dobot_queue.h:12: note: initializing argument 1 of 'DobotMove& DobotMove::operator=(DobotMove&)'
    struct DobotMove

    QList<DobotMove> _queuedCmdIDList;
    struct DobotMove
        uint64_t ID;
        DOBOT_MOVE_TYPE type;
        Point3D xyz;
        DobotMove() :ID(0), type(DM_NONE), xyz(0,0,0) {}
        DobotMove(uint64_t id, DOBOT_MOVE_TYPE MT, Point3D p): ID(id), type(MT), xyz(p) {}
    void DobotQueue::addArmMoveToQueue(DOBOT_MOVE_TYPE Type, Point3D point)
        _un64CoreQueuedCmdID += 1;
        DobotMove cmdToQueue(_un64CoreQueuedCmdID, Type, point);
        _queuedCmdIDList << cmdToQueue; //HERE

    Also it would be better to have list of pointers to structs, or just list of structs?

Log in to reply

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.