- Mastering C++ Programming
- Jeganathan Swaminathan
- 216字
- 2021-07-02 18:28:46
Simplified static_assert
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++17
staticassert.cpp: In function ‘int main()’:
staticassert.cpp:7:2: error: static assertion failed: Assertion failed
static_assert ( 1 == 0, "Assertion failed" );
staticassert.cpp:8:2: error: static assertion failed
static_assert ( 1 == 0 );
From the preceding output, you can see that the message, Assertion failed, appears as part of the compilation error, while in the second compilation the default compiler error message appears, as we didn't supply an assertion failure message. When there is no assertion failure, the assertion error message will not appear as demonstrated in static_assert ( x == y ). This feature is inspired by the C++ community from the BOOST C++ library.
- ASP.NET Core:Cloud-ready,Enterprise Web Application Development
- 復雜軟件設計之道:領域驅動設計全面解析與實戰
- TensorFlow Lite移動端深度學習
- Rust Cookbook
- 零基礎學Java程序設計
- INSTANT Mercurial SCM Essentials How-to
- INSTANT Django 1.5 Application Development Starter
- Hands-On Reinforcement Learning with Python
- Learning Three.js:The JavaScript 3D Library for WebGL
- Spring Security Essentials
- Building Serverless Web Applications
- ABAQUS6.14中文版有限元分析與實例詳解
- Learning Redux
- Raspberry Pi開發實戰
- Visual FoxPro程序設計實驗教程