Project

General

Profile

Actions

Emulator Issues #13912

open

Dolphin's use of Qt 6.5.1 will be incompatible with MSVC Build Tools 14.51 due to stdext::checked_array_iterator

Emulator Issues #13912: Dolphin's use of Qt 6.5.1 will be incompatible with MSVC Build Tools 14.51 due to stdext::checked_array_iterator

Added by STL_MSFT 7 months ago. Updated 7 months ago.

Status:
Accepted
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
Windows
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
Yes
Regression start:
Fixed in:

Description

I'm the primary maintainer of MSVC's C++ Standard Library. We regularly build popular open-source projects, including Dolphin, with development builds of the compiler and libraries in order to find and fix regressions before they ship and cause trouble for you. This also allows us to provide advance notice of breaking changes, which is the case here.

MSVC had non-Standard iterators, stdext::checked_array_iterator and stdext::unchecked_array_iterator, which were deprecated in VS 2022 17.8 in November 2023 (for C++17 and later) and VS 2022 17.11 in August 2024 (unconditionally). They're still present (and deprecated) in the MSVC Build Tools 14.50 which will be shipping in VS 2026 18.0. However, I've completely removed them in the MSVC Build Tools 14.51, which will ship in a future update to VS 2026 18.x.

Dolphin's build is affected indirectly, via its use of an old version of Qt. The compiler error will look like this:

C:\gitP\dolphin-emu\dolphin\Externals\Qt\Qt6.5.1\x64\include\QtCore\qvarlengtharray.h(379): error C3861: 'stdext': identifier not found

Fortunately, Qt was patched to avoid using MSVC's non-Standard iterators, so you just need to update your Qt dependency in order to remain compatible with future versions of MSVC.

Specifically, Qt 6.5.5 contains the fix, which would presumably be the least disruptive upgrade for you. If you want to upgrade further, I've verified that Qt 6.6.1 contains the fix, and that Qt 6.7.0 (and all later versions) were released with the fix.

Updated by Billiard26 7 months ago Actions #1

  • Status changed from New to Accepted
  • Relates to maintainability changed from No to Yes
  • Operating system Windows added
  • Operating system deleted (N/A)
Actions

Also available in: PDF Atom