[libc++] std::ranges::clamp violates [alg.clamp]p5 (original) (raw)
Navigation Menu
Appearance settings
- AI CODE CREATION
* GitHub CopilotWrite better code with AI
* GitHub SparkBuild and deploy intelligent apps
* GitHub ModelsManage and compare prompts
* MCP RegistryNewIntegrate external tools - DEVELOPER WORKFLOWS
* ActionsAutomate any workflow
* CodespacesInstant dev environments
* IssuesPlan and track work
* Code ReviewManage code changes - APPLICATION SECURITY
* GitHub Advanced SecurityFind and fix vulnerabilities
* Code securitySecure your code as you build
* Secret protectionStop leaks before they start - EXPLORE
* Why GitHub
* Documentation
* Blog
* Changelog
* Marketplace
- AI CODE CREATION
- BY COMPANY SIZE
* Enterprises
* Small and medium teams
* Startups
* Nonprofits - BY USE CASE
* App Modernization
* DevSecOps
* DevOps
* CI/CD
* View all use cases - BY INDUSTRY
* Healthcare
* Financial services
* Manufacturing
* Government
* View all industries
- BY COMPANY SIZE
- EXPLORE BY TOPIC
* AI
* Software Development
* DevOps
* Security
* View all topics - EXPLORE BY TYPE
* Customer stories
* Events & webinars
* Ebooks & reports
* Business insights
* GitHub Skills - SUPPORT & SERVICES
* Documentation
* Customer support
* Community forum
* Trust center
* Partners
- EXPLORE BY TOPIC
- COMMUNITY
* GitHub SponsorsFund open source developers - PROGRAMS
* Security Lab
* Maintainer Community
* Accelerator
* Archive Program - REPOSITORIES
* Topics
* Trending
* Collections
- COMMUNITY
- Pricing
Provide feedback
We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Saved searches
Use saved searches to filter your results more quickly
Appearance settings
llvm / llvm-project Public
Notifications You must be signed in to change notification settings
Additional navigation options
Closed
Closed
[libc++] std::ranges::clamp violates [alg.clamp]p5
#64717
Assignees
Labels
bugIndicates an unexpected problem or unintended behaviorgood first issuehttps://github.com/llvm/llvm-project/contributelibc++libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.rangesIssues related to ``
Description
opened
[alg.clamp]p5 mandates the complexity requirements for std::ranges::clamp to be at most two comparisons and three applications of the projection. libc++ however applies the projection four times. See godbolt.
llvm-project/libcxx/include/__algorithm/ranges_clamp.h
Lines 40 to 43 in5ed62c7
| if (std::invoke(__comp, std::invoke(__proj, __value), std::invoke(__proj, __low))) |
|---|
| return __low; |
| else if (std::invoke(__comp, std::invoke(__proj, __high), std::invoke(__proj, __value))) |
| return __high; |
Metadata
Metadata
Assignees
Labels
bugIndicates an unexpected problem or unintended behaviorgood first issuehttps://github.com/llvm/llvm-project/contributelibc++libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.rangesIssues related to ``
Type
No type
Projects
No projects
Milestone
No milestone
Relationships
None yet
Development
No branches or pull requests