Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
0546594
Cycle locations.
StephanTLavavej May 18, 2026
9cb2c63
PowerShell 7.6.1.
StephanTLavavej May 18, 2026
f86458b
Python 3.14.5 (now required).
StephanTLavavej May 18, 2026
8f6e2d6
CMake 4.3.1 (now required).
StephanTLavavej May 18, 2026
e97b522
MSVC Compiler 19.52.36405.1 (now required).
StephanTLavavej May 18, 2026
98a34a8
Clang 22.1.3 (now required).
StephanTLavavej May 18, 2026
8f79705
LLVM-81774 was fixed in Clang 22.
StephanTLavavej May 18, 2026
8b688e9
LLVM-114344 was fixed in Clang 21.
StephanTLavavej May 18, 2026
0067eff
LLVM-126516 was fixed in Clang 22.
StephanTLavavej May 19, 2026
73fda0b
LLVM-135273 was fixed in Clang 22.
StephanTLavavej May 18, 2026
8d40bf0
LLVM-158341 was fixed in Clang 22.
StephanTLavavej May 18, 2026
a942451
LLVM-160610 was fixed in Clang 22.
StephanTLavavej May 18, 2026
f84431a
Fix `tagged_bool_like` for Clang 22.
frederick-vs-ja May 20, 2026
4a3172b
Silence more `-Wdeprecated-volatile`.
StephanTLavavej May 19, 2026
173e81f
Unconditionally silence `-Wcharacter-conversion`, added in Clang 21.
StephanTLavavej May 18, 2026
2ca4130
Add 'character-conversion-warnings' as a Clang feature.
StephanTLavavej May 19, 2026
b19c942
"(anonymous class)" => "(lambda)" for Clang 22.
StephanTLavavej May 19, 2026
4a4f1cf
Work around LLVM-198580.
StephanTLavavej May 19, 2026
5c8d66b
Work around LLVM-198663.
StephanTLavavej May 19, 2026
e918bbb
Work around LLVM-198716.
StephanTLavavej May 19, 2026
b376555
Filed GH 6295 for followup.
StephanTLavavej May 20, 2026
41c6c78
clang-format, no manual changes.
StephanTLavavej May 20, 2026
639b4f2
Formatting: Remove manual wrapping that had literally no effect.
StephanTLavavej May 20, 2026
301f08a
Formatting: Remove manual wrapping that affected only indentation.
StephanTLavavej May 20, 2026
9178ce5
Formatting: Remove manual wrapping, with reasonable reflow effects.
StephanTLavavej May 20, 2026
6b40b2b
Cleanup: Extract `_Diff_max` to avoid manual wrapping.
StephanTLavavej May 20, 2026
d384978
Cleanup: Remove comment about warning C4127.
StephanTLavavej May 20, 2026
8aa5a5f
Cleanup: Extract `_Effective_max` for clarity.
StephanTLavavej May 20, 2026
764cba0
Cleanup: Extract `_Invoker1<_Callable, _Ty1>::_Strategy` for clarity.
StephanTLavavej May 20, 2026
e2f4117
Cleanup: Extract `_Valty` to avoid manual wrapping.
StephanTLavavej May 20, 2026
8fdb4b2
Cleanup: Remove unnecessary `static_assert` messages to avoid manual …
StephanTLavavej May 20, 2026
0ad23de
Cleanup: Avoid comments interfering with header sorting.
StephanTLavavej May 21, 2026
ab8d103
Cleanup: Fix order-dependent/non-self-contained charconv test headers.
StephanTLavavej May 21, 2026
ebeab86
Cleanup: Use lowercase `0x` prefix.
StephanTLavavej May 21, 2026
0dd90c8
.clang-format: Update URL and defaults. No behavior changes.
StephanTLavavej May 21, 2026
984ff33
.clang-format: AlignAfterOpenBracket is now a bool.
StephanTLavavej May 21, 2026
5c5eaff
.clang-format: Sort `<benchmark/benchmark.h>` as the first group.
StephanTLavavej May 21, 2026
0a77d30
New pools.
StephanTLavavej May 21, 2026
3247690
Mark `robust_re_difference_type.compile.pass.cpp` as SKIPPED.
StephanTLavavej May 21, 2026
cdf30a9
asan_annotate_meow: Drop Clang ASan configs.
StephanTLavavej May 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 43 additions & 8 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Copyright (c) Microsoft Corporation.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

# https://releases.llvm.org/20.1.0/tools/clang/docs/ClangFormatStyleOptions.html
# https://releases.llvm.org/22.1.0/tools/clang/docs/ClangFormatStyleOptions.html

# To update this .clang-format file for a new clang-format version:
# 1. Update the documentation link above.
Expand All @@ -16,10 +16,10 @@
---
# Language: Cpp
BasedOnStyle: LLVM
# AlignAfterOpenBracket: true
AlignAfterOpenBracket: false
# AccessModifierOffset: -2
AccessModifierOffset: -4
# AlignAfterOpenBracket: Align
AlignAfterOpenBracket: DontAlign
# AlignArrayOfStructures: None
# AlignConsecutiveAssignments:
# Enabled: false
Expand Down Expand Up @@ -90,6 +90,7 @@ AlignEscapedNewlines: Left
# AlignOperands: Align
AlignOperands: AlignAfterOperator
# AlignTrailingComments:
# AlignPPAndNotPP: true
# Kind: Always
# OverEmptyLines: 0
AlignTrailingComments:
Expand All @@ -98,6 +99,7 @@ AlignTrailingComments:
# AllowAllParametersOfDeclarationOnNextLine: true
# AllowBreakBeforeNoexceptSpecifier: Never
AllowBreakBeforeNoexceptSpecifier: OnlyWithParen
# AllowBreakBeforeQtProperty: false
# AllowShortBlocksOnASingleLine: Never
# AllowShortCaseExpressionOnASingleLine: true
# AllowShortCaseLabelsOnASingleLine: false
Expand All @@ -114,8 +116,10 @@ AllowShortFunctionsOnASingleLine: Empty
# AttributeMacros:
# - __capability
# BinPackArguments: true
# BinPackLongBracedList: true
# BinPackParameters: BinPack
# BitFieldColonSpacing: Both
# BracedInitializerIndentWidth: -1
# BraceWrapping:
# AfterCaseLabel: false
# AfterClass: false
Expand All @@ -139,13 +143,24 @@ AllowShortFunctionsOnASingleLine: Empty
# BreakAfterAttributes: Leave
BreakAfterAttributes: Never
# BreakAfterJavaFieldAnnotations: false
# BreakAfterOpenBracketBracedList: false
# BreakAfterOpenBracketFunction: false
# BreakAfterOpenBracketIf: false
# BreakAfterOpenBracketLoop: false
# BreakAfterOpenBracketSwitch: false
# BreakAfterReturnType: None
# BreakArrays: true
# BreakBeforeBinaryOperators: None
BreakBeforeBinaryOperators: NonAssignment
# BreakBeforeCloseBracketBracedList: false
# BreakBeforeCloseBracketFunction: false
# BreakBeforeCloseBracketIf: false
# BreakBeforeCloseBracketLoop: false
# BreakBeforeCloseBracketSwitch: false
# BreakBeforeConceptDeclarations: Always
# BreakBeforeBraces: Attach
# BreakBeforeInlineASMColon: OnlyMultiline
# BreakBeforeTemplateCloser: false
# BreakBeforeTernaryOperators: true
# BreakBinaryOperations: Never
# BreakConstructorInitializers: BeforeColon
Expand All @@ -160,11 +175,12 @@ ColumnLimit: 120
# CompactNamespaces: false
# ConstructorInitializerIndentWidth: 4
# ContinuationIndentWidth: 4
# Cpp11BracedListStyle: true
# Cpp11BracedListStyle: AlignFirstComment
# DerivePointerAlignment: false
# DisableFormat: false
# EmptyLineAfterAccessModifier: Never
# EmptyLineBeforeAccessModifier: LogicalBlock
# EnumTrailingComma: Leave
# ExperimentalAutoDetectBinPacking: false
# FixNamespaceComments: true
# ForEachMacros:
Expand All @@ -189,6 +205,8 @@ IncludeBlocks: Regroup
# SortPriority: 0
# CaseSensitive: false
IncludeCategories:
- Regex: '^<benchmark/benchmark\.h>$'
Priority: 5
- Regex: '^<(yvals|yvals_core)\.h>$'
Priority: 10
- Regex: '^<__msvc_.*\.hpp>$'
Expand Down Expand Up @@ -228,10 +246,16 @@ InsertNewlineAtEOF: true
# InsertTrailingCommas: None
# IntegerLiteralSeparator:
# Binary: 0
# BinaryMinDigits: 0
# BinaryMinDigitsInsert: 0
# BinaryMaxDigitsRemove: 0
# Decimal: 0
# DecimalMinDigits: 0
# DecimalMinDigitsInsert: 0
# DecimalMaxDigitsRemove: 0
# Hex: 0
# HexMinDigitsInsert: 0
# HexMaxDigitsRemove: 0
# BinaryMinDigits: 0
# DecimalMinDigits: 0
# HexMinDigits: 0
# JavaScriptQuotes: Leave
# JavaScriptWrapImports: true
Expand All @@ -253,11 +277,17 @@ LineEnding: CRLF
MaxEmptyLinesToKeep: 2
# NamespaceIndentation: None
NamespaceIndentation: All
# NumericLiteralCase:
# ExponentLetter: Leave
# HexDigit: Leave
# Prefix: Leave
# Suffix: Leave
# ObjCBinPackProtocolList: Auto
# ObjCBlockIndentWidth: 2
# ObjCBreakBeforeNestedBlockParam: true
# ObjCSpaceAfterProperty: false
# ObjCSpaceBeforeProtocolList: true
# OneLineFormatOffRegex: ''
# PackConstructorInitializers: BinPack
# PenaltyBreakAssignment: 2
# PenaltyBreakBeforeFirstCallParameter: 19
Expand Down Expand Up @@ -287,12 +317,16 @@ RemoveSemicolon: true
# SeparateDefinitionBlocks: Leave
# ShortNamespaceLines: 1
# SkipMacroDefinitionBody: false
# SortIncludes: CaseSensitive
# SortIncludes:
# Enabled: true
# IgnoreCase: false
# IgnoreExtension: false
# SortJavaStaticImport: Before
# SortUsingDeclarations: LexicographicNumeric
# SpaceAfterCStyleCast: false
SpaceAfterCStyleCast: true
# SpaceAfterLogicalNot: false
# SpaceAfterOperatorKeyword: false
# SpaceAfterTemplateKeyword: true
# SpaceAroundPointerQualifiers: Default
# SpaceBeforeAssignmentOperators: true
Expand All @@ -308,6 +342,7 @@ SpaceAfterCStyleCast: true
# AfterFunctionDefinitionName: false
# AfterFunctionDeclarationName: false
# AfterIfMacros: true
# AfterNot: false
# AfterOverloadedOperator: false
# AfterPlacementOperator: true
# AfterRequiresInClause: false
Expand All @@ -318,7 +353,7 @@ SpaceBeforeParensOptions:
AfterRequiresInClause: true
# SpaceBeforeRangeBasedForLoopColon: true
# SpaceBeforeSquareBrackets: false
# SpaceInEmptyBlock: false
# SpaceInEmptyBraces: Never
# SpacesBeforeTrailingComments: 1
# SpacesInAngles: Never
# SpacesInContainerLiterals: true
Expand Down
6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Copyright (c) Microsoft Corporation.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

cmake_minimum_required(VERSION 4.2.3)
cmake_minimum_required(VERSION 4.3.1)

set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
project(msvc_standard_libraries LANGUAGES CXX)

if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.52.36307.1")
message(FATAL_ERROR "The STL must be built with MSVC Compiler 19.52.36307.1 or later. Follow the README instructions.")
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.52.36405.1")
message(FATAL_ERROR "The STL must be built with MSVC Compiler 19.52.36405.1 or later. Follow the README instructions.")
endif()

include(CheckCXXSourceCompiles)
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,9 +149,9 @@ Just try to follow these rules, so we can spend more time fixing bugs and implem
- "C++ CMake tools for Windows"
- "MSVC AddressSanitizer"
- "Windows 11 SDK (10.0.28000)" or later
- "C++ Clang tools for Windows (20.1.8 - x64/x86)"
- "C++ Clang tools for Windows (22.1.3 - x64/x86)"
- *Optional, see Note 2 below:* "MSVC Build Tools for ARM64/ARM64EC (Preview)"
* Install [Python][] 3.14.4 or later.
* Install [Python][] 3.14.5 or later.
+ Select "Add python.exe to PATH" if you want to follow the instructions below that invoke `python`.
Otherwise, you should be familiar with alternative methods.

Expand Down
6 changes: 3 additions & 3 deletions azure-devops/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@

variables:
- name: x64SlowPoolName
value: 'Stl-2026-04-17T0531-x64-Fasv6-Pool'
value: 'Stl-2026-05-21T0342-x64-Fasv6-Pool'
readonly: true
- name: x64FastPoolName
value: 'Stl-2026-04-17T0531-x64-Fasv7-Pool'
value: 'Stl-2026-05-21T0342-x64-Fasv7-Pool'
readonly: true
- name: arm64PoolName
value: 'Stl-2026-04-17T0531-arm64-Dpsv6-Pool'
value: 'Stl-2026-05-21T0342-arm64-Dpsv6-Pool'
readonly: true
- name: poolDemands
value: 'EnableSpotVM -equals false'
Expand Down
2 changes: 1 addition & 1 deletion azure-devops/create-1es-hosted-pool.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ if ($VMSku -ieq 'Fasv6') {
$AvailableLocations = @('eastus2', 'northeurope', 'uksouth')
}

$AvailableLocationIdx = 8 # Increment for each new set of pools, to cycle through the available locations.
$AvailableLocationIdx = 9 # Increment for each new set of pools, to cycle through the available locations.
$Location = $AvailableLocations[$AvailableLocationIdx % $AvailableLocations.Length]

if ($Arch -ieq 'x64') {
Expand Down
8 changes: 4 additions & 4 deletions azure-devops/provision-image.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -58,17 +58,17 @@ foreach ($workload in $VisualStudioWorkloads) {

# https://github.com/PowerShell/PowerShell/releases/latest
if ($Provisioning_x64) {
$PowerShellUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.6.0/PowerShell-7.6.0-win-x64.msi'
$PowerShellUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.6.1/PowerShell-7.6.1-win-x64.msi'
} else {
$PowerShellUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.6.0/PowerShell-7.6.0-win-arm64.msi'
$PowerShellUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.6.1/PowerShell-7.6.1-win-arm64.msi'
}
$PowerShellArgs = @('/quiet', '/norestart')

# https://www.python.org
if ($Provisioning_x64) {
$PythonUrl = 'https://www.python.org/ftp/python/3.14.4/python-3.14.4-amd64.exe'
$PythonUrl = 'https://www.python.org/ftp/python/3.14.5/python-3.14.5-amd64.exe'
} else {
$PythonUrl = 'https://www.python.org/ftp/python/3.14.4/python-3.14.4-arm64.exe'
$PythonUrl = 'https://www.python.org/ftp/python/3.14.5/python-3.14.5-arm64.exe'
}
$PythonArgs = @('/quiet', 'InstallAllUsers=1', 'PrependPath=1', 'CompileAll=1', 'Include_doc=0')

Expand Down
2 changes: 1 addition & 1 deletion benchmarks/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Copyright (c) Microsoft Corporation.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

cmake_minimum_required(VERSION 4.2.3)
cmake_minimum_required(VERSION 4.3.1)
project(msvc_standard_libraries_benchmarks LANGUAGES CXX)

if(DEFINED STL_BINARY_DIR)
Expand Down
3 changes: 2 additions & 1 deletion benchmarks/src/adjacent_difference.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
// Copyright (c) Microsoft Corporation.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

#include <algorithm>
#include <benchmark/benchmark.h>

#include <algorithm>
#include <cstddef>
#include <cstdint>
#include <limits>
Expand Down
3 changes: 2 additions & 1 deletion benchmarks/src/adjacent_find.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
// Copyright (c) Microsoft Corporation.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

#include <algorithm>
#include <benchmark/benchmark.h>

#include <algorithm>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
Expand Down
3 changes: 2 additions & 1 deletion benchmarks/src/any_swap.cpp
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
// Copyright (c) Microsoft Corporation.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

#include <benchmark/benchmark.h>

#include <any>
#include <array>
#include <benchmark/benchmark.h>
#include <type_traits>

using trivial = std::array<int, 2>;
Expand Down
3 changes: 2 additions & 1 deletion benchmarks/src/bitset_from_string.cpp
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
// Copyright (c) Microsoft Corporation.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

#include <benchmark/benchmark.h>

#include <algorithm>
#include <array>
#include <benchmark/benchmark.h>
#include <bitset>
#include <cstddef>
#include <random>
Expand Down
3 changes: 2 additions & 1 deletion benchmarks/src/bitset_to_string.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
// Copyright (c) Microsoft Corporation.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

#include <array>
#include <benchmark/benchmark.h>

#include <array>
#include <bit>
#include <bitset>
#include <climits>
Expand Down
1 change: 1 addition & 0 deletions benchmarks/src/charconv_floats.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

#include <benchmark/benchmark.h>

#include <bit>
#include <charconv>
#include <cstddef>
Expand Down
1 change: 1 addition & 0 deletions benchmarks/src/efficient_nonlocking_print.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
// --benchmark_out=efficient_nonlocking_print.log --benchmark_out_format=console

#include <benchmark/benchmark.h>

#include <cstdio>
#include <format>
#include <print>
Expand Down
1 change: 1 addition & 0 deletions benchmarks/src/filesystem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

#include <benchmark/benchmark.h>

#include <filesystem>
#include <system_error>

Expand Down
3 changes: 2 additions & 1 deletion benchmarks/src/fill.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
// Copyright (c) Microsoft Corporation.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

#include <algorithm>
#include <benchmark/benchmark.h>

#include <algorithm>
#include <cstring>
#include <vector>

Expand Down
3 changes: 2 additions & 1 deletion benchmarks/src/find_and_count.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
// Copyright (c) Microsoft Corporation.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

#include <algorithm>
#include <benchmark/benchmark.h>

#include <algorithm>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
Expand Down
3 changes: 2 additions & 1 deletion benchmarks/src/find_first_of.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
// Copyright (c) Microsoft Corporation.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

#include <algorithm>
#include <benchmark/benchmark.h>

#include <algorithm>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
Expand Down
1 change: 1 addition & 0 deletions benchmarks/src/flat_meow_assign.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

#include <benchmark/benchmark.h>

#include <flat_map>
#include <flat_set>
#include <string>
Expand Down
1 change: 1 addition & 0 deletions benchmarks/src/has_single_bit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

#include <benchmark/benchmark.h>

#include <bit>
#include <cstdint>

Expand Down
3 changes: 2 additions & 1 deletion benchmarks/src/includes.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
// Copyright (c) Microsoft Corporation.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

#include <algorithm>
#include <benchmark/benchmark.h>

#include <algorithm>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
Expand Down
Loading