Namespaces
Variants
Views
Actions

typeof operators (since C23)

From cppreference.com
< c‎ | language
Revision as of 05:09, 22 September 2023 by Alex DeWHu (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Determines the type of an object.

Contents

[edit] Syntax

typeof( type ) (1)
typeof( expression ) (2)
typeof_unqual( type ) (3)
typeof_unqual( expression ) (4)

[edit] Explanation

1) produces the type-name with any nested typeof-specifier evaluated
2) yields the type-name representing the type of its operand. No implicit conversions are applied to expression.
3,4) the same as (1) and (2) respectively but remove qualifiers

[edit] Notes

typeof and typeof_unqual are collectively called the typeof operators. The typeof operators cannot be applied to bit-field members. If the type of the operand is a variably modified type, the operand is evaluated; otherwise, the operand is not evaluated. The result of the typeof_unqual operator is the non-atomic unqualified type that would result from the typeof operator. The typeof operator preserves all qualifiers.

[edit] Example

[edit] References

  • C23 standard (ISO/IEC 9899:2024):
  • 6.7.2.5 The typeof specifiers (p: 115-118)

[edit] See also

C++ documentation for decltype