`<vector>`: Add `_CONSTEXPR26` to `_Vaporization_guard`'s destructor once P3068R6 gets implemented
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 11.1k
- Forks
- 1.7k
- Avg merge
- 4d 15h
- Merged PRs (30d)
- 22
Description
#4977 added several scope guard types to our implementation of vector, while one of them doesn't have constexpr destructor yet.
Lack of constexpr was deliberate - since _Vaporization_guard objects are only created and destroyed during exception handling, which can't happen during exception at this moment.
However, WG21-P3068R6 (tracked by #5136) makes exception handling compatible with constant evaluation, and the paper is recently adopted for C++26. So we need to add _CONSTEXPR26 once P3068 gets implemented (which means that this issue is blocked until that moment).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
First check #5136 and the P3068R6 implementation status, since this issue is explicitly blocked by constant-evaluation support for exception handling. Then inspect stl/inc/vector around lines 637-645; once the prerequisite is available, add _CONSTEXPR26 to _Vaporization_guard's destructor and verify the vector implementation builds and supports the intended constant-evaluation case.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100