A static assert declaration may appear at namespace and block scope (as a block declaration) and inside a class body (as a member declaration) If boolconstexpr returns true, this declaration has no effect. C:/ Qt / Qt5. 0 / 5.7 / mingw5332 / include / QtCore / qglobal. H: 746: 47: error: static assertion failed: Signal and slot arguments are not compatible. #define QSTATICASSERTX(Condition, Message) staticassert(bool(Condition), Message).
C++
Static Assertion Failed Signal And Slot Arguments Are Not Compatible In Computer
| Language | ||||
| Standard Library Headers | ||||
| Freestanding and hosted implementations | ||||
| Named requirements | ||||
| Language support library | ||||
| Concepts library(C++20) | ||||
| Diagnostics library | ||||
| Utilities library | ||||
| Strings library | ||||
| Containers library | ||||
| Iterators library | ||||
| Ranges library(C++20) | ||||
| Algorithms library | ||||
| Numerics library | ||||
| Input/output library | ||||
| Localizations library | ||||
| Regular expressions library(C++11) | ||||
| Atomic operations library(C++11) | ||||
| Thread support library(C++11) | ||||
| Filesystem library(C++17) | ||||
| Technical Specifications |
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Performs compile-time assertion checking
[edit]Syntax
static_assert(bool_constexpr,message) | (since C++11) |
static_assert(bool_constexpr) | (since C++17) |
[edit]Explanation
| bool_constexpr | - | a contextually converted constant expression of type bool |
| message | - | optional (since C++17)string literal that will appear as compiler error if bool_constexpr is false |
A static assert declaration may appear at namespace and block scope (as a block declaration) and inside a class body (as a member declaration)
If bool_constexpr returns true, this declaration has no effect. Otherwise a compile-time error is issued, and the text of message, if any, is included in the diagnostic message.
message can be omitted. | (since C++17) |
[edit]Note
Static Assertion Failed Signal And Slot Arguments Are Not Compatible Games
Since message has to be a string literal, it cannot contain dynamic information or even a constant expression that is not a string literal itself. In particular, it cannot contain the name of the template type argument.
[edit]Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| CWG 2039 | C++11 | only the expression before conversion is required to be constant | the conversion must also be valid in a constant expression |
[edit]Example
Possible output:
[edit]See also
C documentation for static_assert |