Visual Studio 2019 gains adds C++ Concepts

Concepts allow the C++ programmer to document constraints on templates and have the compiler enforce them

C++ 20 Concepts, which can help developers write more concise C++ code, are now supported in a beta release of the upcoming Visual Studio 2019 IDE.

Supported in Visual Studio 2019 Preview 2, C++ Concepts are predicates used to express a generic algorithm’s expectations on its template arguments. Concepts allow developers to document constraints on templates that are enforced by the compiler. Compile times can be improved by Concept-based overloading.

Support for C++ Concepts is built into both the compiler and the standard library. The feature is being debuted through a /std:c++latest mode. Once all C++ 20 features are implemented across all Visual Studio products, including the compiler, the library, IntelliSense, the builder, and the debugger, Microsoft will provide them through a /std:c++20 mode. IntelliSense support is not currently available and Microsoft’s implementation does not yet include recent changes made in ISO C++ standards.

Specifically, the compiler supports capabilities such as:

  • C++ extensions for Concepts.
  • Semantic constraint matching for concepts.

Microsoft is working on support for C++ ranges, providing components for dealing with ranges of element and tightly linked to Concepts. Microsoft is seeking feedback on Concepts, which can be left on a company blog post or via the Report a Problem tool in Visual Studio.

You can download the Visual Studio 2019 preview from the Visual Studio website.

Join the newsletter!


Sign up to gain exclusive access to email subscriptions, event invitations, competitions, giveaways, and much more.

Membership is free, and your security and privacy remain protected. View our privacy policy before signing up.

Error: Please check your email address.

More about ConceptsISOMicrosoft

Show Comments