Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
O
ogs
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 41
    • Issues 41
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 24
    • Merge Requests 24
  • Requirements
    • Requirements
    • List
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • ogs
  • ogs
  • Merge Requests
  • !3343

Merged
Created Dec 18, 2020 by Dmitry Yu. Naumov@endJunctionOwner1 of 1 task completed1/1 task

Enable C++20 standard.

  • Overview 10
  • Commits 7
  • Pipelines 7
  • Changes 7

Of course, not all of the features are supported by the current compiler selection and we are restricted in that sense.

For now we have

    "gcc": "9.0",
    "clang": "9.0",
    "apple_clang": "11.0.0",
    "msvc": {
      "year": "2019",
      "number": "16",
      "toolset": "142"

where the msvc compiler has version 19 and the currently tested minimum is 19.24.

So according to the compiler support page the few interesting, IMO, things are now available:

  • constexpr try catch blocks
  • Allow lambda-capture [=, this]
  • Designated initializers
  • Concepts (partial)
  • init-statements for range-based for

and from the library:

  • std::endian
  • String prefix and suffix checking
  • std::lerp() and std::midpoint()
  • std::erase() and std::erase_if()
  1. Feature description was added to the changelog
Edited Dec 21, 2020 by Dmitry Yu. Naumov
Assignee
Assign to
Reviewer
Request review from
6.4.0
Milestone
6.4.0 (Past due)
Assign milestone
Time tracking
Source branch: C++20