Namespaces
Variants

std::meta::info

From cppreference.com
< cpp | meta
 
 
Metaprogramming library
Type traits
Type categories
(C++11)
(C++11)(DR*)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11) 
(C++11)
(C++11)
Type properties
(C++11)
(C++11)
(C++14)
(C++11)(deprecated in C++26)
(C++11)(until C++20*)
(C++11)(deprecated in C++20)
(C++11)
Type trait constants
Metafunctions
(C++17)
Supported operations
Relationships and property queries
Type modifications
(C++11)(C++11)(C++11)
Type transformations
(C++11)(deprecated in C++23)
(C++11)(deprecated in C++23)
(C++11)
(C++11)(until C++20*)(C++17)

(C++11)
(C++17)
Compile-time rational arithmetic
Compile-time integer sequences
 
Defined in header <meta>
using info = decltype(^^::);
(since C++26)

std::meta::info is the type of reflection values. It is a distinct fundamental type. There exists a unique null reflection; every other reflection represents:

  • a value of scalar type;
  • an object of static storage duration;
  • a variable;
  • a structured binding;
  • a function;
  • a function parameter;
  • an enumerator;
  • an annotation;
  • a type alias;
  • a type;
  • a class member;
  • an unnamed bit-field;
  • a class template;
  • a function template;
  • a variable template;
  • an alias template;
  • a concept;
  • a namespace alias;
  • a namespace;
  • a direct base class relationship; or
  • a data member description.

For the purpose of argument-dependent lookup, the namespace std::meta is an associated namespace of this type.

Values of type std::meta::info are equality-comparable. Note that a reflection of a type alias compares unequal to a reflection of the aliased type.

Example

See also