- 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.
- Visual FoxPro程序設計教程
- MATLAB圖像處理超級學習手冊
- JIRA 7 Administration Cookbook(Second Edition)
- Apache Hive Essentials
- Building Mobile Applications Using Kendo UI Mobile and ASP.NET Web API
- Visual C
- Java程序設計:原理與范例
- TradeStation交易應用實踐:量化方法構建贏家策略(原書第2版)
- Mastering JBoss Enterprise Application Platform 7
- Mastering JavaScript High Performance
- Microsoft Dynamics AX 2012 R3 Financial Management
- Java Web開發就該這樣學
- 好好學Java:從零基礎到項目實戰
- Java SE實踐教程
- Zabbix Performance Tuning