[cstddef.syn] # 17 Language support library [[support]](./#support) ## 17.2 Common definitions [[support.types]](support.types#cstddef.syn) ### 17.2.1 Header synopsis [cstddef.syn] // all freestandingnamespace std {using [ptrdiff_t](#lib:ptrdiff_t "17.2.1 Header synopsis [cstddef.syn]") = *see below*; using [size_t](cstdio.syn#lib:size_t "31.13.1 Header synopsis [cstdio.syn]") = *see below*; using [max_align_t](support.types.layout#lib:max_align_t "17.2.4 Sizes, alignments, and offsets [support.types.layout]") = *see below*; using [nullptr_t](support.types.nullptr#lib:nullptr_t "17.2.3 Null pointers [support.types.nullptr]") = decltype(nullptr); enum class [byte](#lib:byte "17.2.1 Header synopsis [cstddef.syn]") : unsigned char {}; // [[support.types.byteops]](support.types.byteops "17.2.5 byte type operations"), byte type operationstemplateconstexpr byte& operator<<=(byte& b, IntType shift) noexcept; templateconstexpr byte operator<<(byte b, IntType shift) noexcept; templateconstexpr byte& operator>>=(byte& b, IntType shift) noexcept; templateconstexpr byte operator>>(byte b, IntType shift) noexcept; constexpr byte& operator|=(byte& l, byte r) noexcept; constexpr byte operator|(byte l, byte r) noexcept; constexpr byte& operator&=(byte& l, byte r) noexcept; constexpr byte operator&(byte l, byte r) noexcept; constexpr byte& operator^=(byte& l, byte r) noexcept; constexpr byte operator^(byte l, byte r) noexcept; constexpr byte operator~(byte b) noexcept; templateconstexpr IntType to_integer(byte b) noexcept;}#define [NULL](cstdio.syn#lib:NULL "31.13.1 Header synopsis [cstdio.syn]") *see below*#define [offsetof](diff.offsetof#lib:offsetof "C.8.5.2 Macro offsetof(type, member-designator) [diff.offsetof]")(P, D) *see below* [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/support.tex#L82) The contents and meaning of the header are the same as the C standard library header [](support.c.headers.general#header:%3cstddef.h%3e "17.15.1 General [support.c.headers.general]"), except that it does not declare the type wchar_t, that it does not define the macro unreachable, that it also declares the type byte and its associated operations ([[support.types.byteops]](support.types.byteops "17.2.5 byte type operations")), and as noted in[[support.types.nullptr]](support.types.nullptr "17.2.3 Null pointers") and[[support.types.layout]](support.types.layout "17.2.4 Sizes, alignments, and offsets")[.](#1.sentence-1) See also: ISO/IEC 9899:2024, 7.22