Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-45368

foreach over QVector<QXmlStreamAttribute> together with QT_STRICT_ITERATORS leads to linker errors

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Out of scope
    • Icon: Not Evaluated Not Evaluated
    • None
    • 5.4.1
    • None

      This innocent looking example leads to two MSVC linker errors:

      #define QT_STRICT_ITERATORS
      
      #include <QXmlStreamAttributes>
      #include <QDebug>
      
      int main()
      {
          QVector<QXmlStreamAttribute> attributes;
          foreach (const QXmlStreamAttribute &attr, attributes) {
              qDebug() << attr.name();
          }
      }
      
      main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class QTypedArrayData<class QXmlStreamAttribute>::const_iterator __thiscall QVector<class QXmlStreamAttribute>::begin(class QTypedArrayData<class QXmlStreamAttribute>::const_iterator)const " (__imp_?begin@?$QVector@VQXmlStreamAttribute@@@@QBE?AVconst_iterator@?$QTypedArrayData@VQXmlStreamAttribute@@@@V23@@Z) referenced in function "public: __thiscall QForeachContainer<class QVector<class QXmlStreamAttribute> >::QForeachContainer<class QVector<class QXmlStreamAttribute> >(class QVector<class QXmlStreamAttribute> const &)" (??0?$QForeachContainer@V?$QVector@VQXmlStreamAttribute@@@@@@QAE@ABV?$QVector@VQXmlStreamAttribute@@@@@Z)
      main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class QTypedArrayData<class QXmlStreamAttribute>::const_iterator __thiscall QVector<class QXmlStreamAttribute>::end(class QTypedArrayData<class QXmlStreamAttribute>::const_iterator)const " (__imp_?end@?$QVector@VQXmlStreamAttribute@@@@QBE?AVconst_iterator@?$QTypedArrayData@VQXmlStreamAttribute@@@@V23@@Z) referenced in function "public: __thiscall QForeachContainer<class QVector<class QXmlStreamAttribute> >::QForeachContainer<class QVector<class QXmlStreamAttribute> >(class QVector<class QXmlStreamAttribute> const &)" (??0?$QForeachContainer@V?$QVector@VQXmlStreamAttribute@@@@@@QAE@ABV?$QVector@VQXmlStreamAttribute@@@@@Z)
      debug\xmlstreamattribute.exe : fatal error LNK1120: 2 unresolved externals
      

      I'm not able to reproduce this so far though with other types (like QVector<QString>)

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            thiago Thiago Macieira
            kkohne Kai Köhne
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes