[odb-users] Qt6: error: redefinition of 'class odb::access::container_traits<QList<T>

CETONI GmbH - Uwe Kindler uwe.kindler at cetoni.de
Wed Nov 22 08:01:46 EST 2023


> CETONI GmbH - Uwe Kindler <uwe.kindler at cetoni.de> writes:
>
>> The generated header files include the odb container traits files such as
>> qlist-traits.hxx and qvector-traits.hxx. The problem here is, that in Qt6
>> QVector is just a typedef for QList (snipped from Qt source):
>>
>> ...
>> template<typename T> using QVector = QList<T>;
>> ...
> Thanks for the bug report and the analysis.
>
>
>> I could fix this by wrapping the code in qvector-traits.hxx into:
>>
>> #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
>>
>> ...
>>
>> #endif
>>
>> But I'm not sure, if this is the right solution.
> Yes, I fixed this slightly differently (but based on the same
> underlying idea). If you could try this fix and confirm it
> works as expected for you, that would be helpful:
>
> https://git.codesynthesis.com/cgit/odb/libodb-qt/commit/?id=c020bda61fe4a8108772309561d1f8e2f089aec0

I just tested your fix and everything works fine. I think this is the 
right way to fix this.

Thank you.



More information about the odb-users mailing list