title | description | ms.date | f1_keywords | helpviewer_keywords | ms.assetid | author | ms.author | ms.custom | |||
---|---|---|---|---|---|---|---|---|---|---|---|
Warning C26455 |
Learn more about the C26455 DEFAULT_CTOR_NOEXCEPT |
04/29/2022 |
|
|
27e86063-d969-49d8-8912-dcc2dc57249f |
kylereedmsft |
kylereed |
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