Visual Studio 2019 gains C++ Concepts

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

Visual Studio 2019 gains C++ Concepts
SPainter VFX / Getty Images

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.

Copyright © 2019 IDG Communications, Inc.