- 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.
- LabVIEW Graphical Programming Cookbook
- Debian 7:System Administration Best Practices
- Java EE框架整合開發入門到實戰:Spring+Spring MVC+MyBatis(微課版)
- Advanced Express Web Application Development
- Mastering React
- Rust游戲開發實戰
- Distributed Computing in Java 9
- 硬件產品設計與開發:從原型到交付
- Ext JS 4 Plugin and Extension Development
- Apache Solr PHP Integration
- Akka入門與實踐
- Offer來了:Java面試核心知識點精講(框架篇)
- Java程序設計及應用開發
- Learning Ionic(Second Edition)
- Python深度學習與項目實戰