Namespaces
Variants

std::type_index::name

From cppreference.com
 
 
Utilities library
General utilities
Relational operators (deprecated in C++20)
Integer comparison functions
(C++20)(C++20)(C++20)    
(C++20)
Swap and type operations
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Common vocabulary types
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
 
const char* name() const noexcept;
(since C++11)

Returns the name of the associated std::type_info object. Equivalent to calling std::type_info::name() directly.

Return value

The name of the associated std::type_info object.

Example

#include <iostream>
#include <typeindex>

#ifdef __has_include
#   if __has_include(<meta>)
#       include <meta>
#   endif
#endif

int main()
{
    std::cout << std::type_index(typeid(std::cout)).name() << '\n';

#ifdef __cpp_lib_reflection
    std::cout << std::meta::display_string_of(^^std::cout) << '\n';
#endif
}

Possible output:

NSt3__113basic_ostreamIcNS_11char_traitsIcEEEE
std::cout

Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 2144 C++11 type_index::name was not required to be noexcept required

See also

obtains a string suitable for identifying the reflected entity
(function) [edit]
if the reflected entity has an identifier, obtains its name
(function) [edit]