short
General topics | ||||||||||||||||
Flow control | ||||||||||||||||
Conditional execution statements | ||||||||||||||||
Iteration statements (loops) | ||||||||||||||||
Jump statements | ||||||||||||||||
Functions | ||||||||||||||||
Function declaration | ||||||||||||||||
Lambda function expression | ||||||||||||||||
inline specifier | ||||||||||||||||
Dynamic exception specifications(until C++17*) | ||||||||||||||||
noexcept specifier(C++11) | ||||||||||||||||
Exceptions | ||||||||||||||||
Namespaces | ||||||||||||||||
Types | ||||||||||||||||
Specifiers | ||||||||||||||||
| ||||||||||||||||
Storage duration specifiers | ||||||||||||||||
Initialization | ||||||||||||||||
Expressions | ||||||||||||||||
Alternative representations | ||||||||||||||||
Literals | ||||||||||||||||
Boolean -Integer -Floating-point | ||||||||||||||||
Character -String -nullptr(C++11) | ||||||||||||||||
User-defined(C++11) | ||||||||||||||||
Utilities | ||||||||||||||||
Attributes(C++11) | ||||||||||||||||
Types | ||||||||||||||||
typedef declaration | ||||||||||||||||
Type alias declaration(C++11) | ||||||||||||||||
Casts | ||||||||||||||||
Memory allocation | ||||||||||||||||
Classes | ||||||||||||||||
Class-specific function properties | ||||||||||||||||
| ||||||||||||||||
Special member functions | ||||||||||||||||
Templates | ||||||||||||||||
Miscellaneous | ||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Identifiers with special meaning | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
#include <climits>#include <concepts>#include <iostream>#include <limits> static_assert(sizeof(short)>=16/CHAR_BIT);static_assert(sizeof(unsignedshort)>=16/CHAR_BIT);static_assert(std::numeric_limits<short>::min()<=-32'768); //'static_assert(std::numeric_limits<short>::max()>=32'767); //'static_assert(std::numeric_limits<unsignedshort>::max()>=65'535u); //' // concepts are available since C++20static_assert(std::integral<short> andstd::integral<unsignedshort>); template<typename T,typename...Ts>concept all_same=(...andstd::same_as<T, Ts>); static_assert(all_same<short,shortint,signedshort,signedshortint>);static_assert(all_same<unsignedshort,unsignedshortint>); #define OUT(...) std::cout << #__VA_ARGS__ << " = " << __VA_ARGS__ << '\n' int main(){ OUT(sizeof(short)); OUT(sizeof(unsignedshort)); OUT(std::numeric_limits<short>::min()); OUT(std::numeric_limits<short>::max()); OUT(std::numeric_limits<unsignedshort>::max());} #undef OUT
Possible output:
sizeof(short) = 2sizeof(unsigned short) = 2std::numeric_limits<short>::min() = -32768std::numeric_limits<short>::max() = 32767std::numeric_limits<unsigned short>::max() = 65535
void
,std::nullptr_t(since C++11).int
.Modifiers:signed
,unsigned
,short
,long
.bool
.Boolean literals:false
,true
.char
,char8_t
(since C++20),char16_t
,char32_t
(since C++11),wchar_t
.float
,double
.