Landing: e4f550457b0b
Project / Subsystem
gcc / libstdc++
Date
2026-09-17
Author
Patrick Palka
Commit
e4f550457b0b5c9c87356f6dfc60ae980e319585
Source
github
Perf win
No
Breaking
No
All attributes
- project
- gcc
- subsystem
- libstdc++
- patch_id
- —
- commit_hash
- e4f550457b0b5c9c87356f6dfc60ae980e319585
- source_type
- github
- headline
- libstdc++: Fix SFINAE with shared_ptr and invalid deleter
- tldr
- Ensures correct SFINAE behavior for shared_ptr constructors that accept deleters, aligning with C++20 constraints.
- author
- Patrick Palka
- outcome
- committed
- performance_win
- false
- breaking_change
- false
- series_id
- —
- series_parts
- []
- tags
-
- • libstdc++
- • smart pointers
- • SFINAE
- • C++20
- discussion_id_link
- —
- bugzilla_pr
- —
- date
- 2026-09-17T00:00:00.000Z
This change fixes SFINAE (Substitution Failure Is Not An Error) issues in libstdc++ concerning shared_ptr constructors that take a deleter. It implements the C++20 constraints for these constructors and proactively adopts a proposed resolution for LWG 4110, which relaxes constraints on nullptr_t overloads. New tests have been added to verify the corrected behavior.