| title | Warning C26455 | ||
|---|---|---|---|
| description | Learn more about the C26455 DEFAULT_CTOR_NOEXCEPT | ||
| ms.date | 04/29/2022 | ||
| f1_keywords |
|
||
| helpviewer_keywords |
|
||
| ms.assetid | 27e86063-d969-49d8-8912-dcc2dc57249f | ||
| author | kylereedmsft | ||
| ms.author | kylereed | ||
| ms.custom | kr2b-contr-experiment |
Default constructor should not throw. Declare it '
noexcept' (f.6)
The C++ Core Guidelines suggest that default constructors shouldn't do anything that can throw. When the default constructor can throw, all code that relies on a properly instantiated object may also throw.
Consider the default constructors of the STL types, like std::vector. In these implementations, the default constructors initialize internal state without making allocations. In the std::vector case, the size is set to 0 and the internal pointer is set to nullptr. The same pattern should be followed for all default constructors.
Code analysis name: DEFAULT_CTOR_NOEXCEPT