[Development] Fw: Change in qt/qt5[dev]: Updated submodules.

Thiago Macieira thiago.macieira at intel.com
Wed Nov 25 07:49:59 CET 2015

On Wednesday 25 November 2015 06:25:34 Hausmann Simon wrote:
> Hi,
> It would seem that recent QPair changes have a negative impact on the
> ability to compile some existing code :)
> Is this an issue in the usage or an issue with QPair?

Compiler bug.

> C:\Users\qt\work\qt\qtbase\include\QtCore/qpair.h(65): note: This
> diagnostic occurred in the compiler generated function 'QPair<bool,QString>
> &QPair<bool,QString>::operator =(const QPair<TT1,TT2> &) noexcept(<expr>)'
> C:\Users\qt\work\qt\qtbase\include\QtCore/qpair.h(65): error C2065: 'TT2':
> undeclared identifier

The line in question (qpair.h:65) is part of the declaration:

    template <typename TT1, typename TT2>
    Q_DECL_RELAXED_CONSTEXPR QPair &operator=(QPair<TT1, TT2> &&p)
        Q_DECL_NOEXCEPT_EXPR((std::is_nothrow_assignable<T1, TT1>::value &&
                              std::is_nothrow_assignable<T2, TT2>::value))
    { first = std::move(p.first); second = std::move(p.second); return *this; 

As can be seen, TT2 is declared as a template typename parameter. If the 
compiler is complaining that it isn't declared, it must be a compiler bug.

Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

More information about the Development mailing list