September 2017
Beginner to intermediate
384 pages
8h 4m
English
The static_assert macro helps identify assert failures during compile time. This feature has been supported since C++11; however, the static_assert macro used to take a mandatory assertion failure message till, which is now made optional in C++17.
The following example demonstrates the use of static_assert with and without the message:
#include <iostream>#include <type_traits>using namespace std;int main ( ) { const int x = 5, y = 5; static_assert ( 1 == 0, "Assertion failed" ); static_assert ( 1 == 0 ); static_assert ( x == y ); return 0;}
The output of the preceding program is as follows:
g++-7 staticassert.cpp -std=c++17staticassert.cpp: In function ‘int main()’:staticassert.cpp:7:2: error: static assertion failed: ...