Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
6.4.1
-
None
-
configure options :
-cmake-generator Ninja -platform linux-clang -release -shared -c++std c++20
Ubuntu 22.04.1
Clang 14
C++20
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 40 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Vendor ID: AuthenticAMD
Model name: AMD EPYC Processor (with IBPB)
CPU family: 23
Model: 1
Thread(s) per core: 1
Core(s) per socket: 8
Socket(s): 1
Stepping: 2
configure options : -cmake-generator Ninja -platform linux-clang -release -shared -c++std c++20 Ubuntu 22.04.1 Clang 14 C++20 Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 40 bits physical, 48 bits virtual Byte Order: Little Endian CPU(s): 8 On-line CPU(s) list: 0-7 Vendor ID: AuthenticAMD Model name: AMD EPYC Processor (with IBPB) CPU family: 23 Model: 1 Thread(s) per core: 1 Core(s) per socket: 8 Socket(s): 1 Stepping: 2
-
-
d0734df0e (6.4.2), ee60340a9 (6.4)
Description
QtQuick3D fails to compile with C++20 : unsupported function allocator.destroy called in qtquick3d/src/3rdparty/embree//common/sys/vector.h:137 alloc.destroy(&items[i])
qt-everywhere-src-6.4.1/qtquick3d/src/3rdparty/embree/kernels/common/../../common/sys/vector.h:137:17: error: no member named 'destroy' in 'std::allocator<embree::RawBufferView>'
alloc.destroy(&items[i]);
age-old code of intel vector::clear() calls unsupported member function destroy on allocator object (deprecated in C+17, unsupported in C+20).
Fix is easy: line 137 should be replaced by
std::allocator_traits<decltype(alloc)>::destroy(alloc, &items[i]);
Attachments
For Gerrit Dashboard: QTBUG-109157 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
446537,5 | Fix compilation in C++20 mode | 6.4 | qt/qtquick3d | Status: MERGED | +2 | 0 |
446562,2 | Fix compilation in C++20 mode | 6.4.2 | qt/qtquick3d | Status: MERGED | +2 | 0 |