Boost.Hana  1.7.1 Your standard library for metaprogramming
Experimental features

## Description

Experimental features that may or may not make it into the library. These features should not expected to be stable.

## Classes

struct  boost::hana::experimental::types< T >
Container optimized for holding types. More...

## Functions

template<typename T >
auto boost::hana::experimental::type_name ()
Returns a hana::string representing the name of the given type, at compile-time. More...

## Variables

auto boost::hana::experimental::print
Returns a string representation of the given object. More...

## ◆ type_name()

template<typename T >
 auto boost::hana::experimental::type_name ( )

#include <boost/hana/experimental/type_name.hpp>

Returns a hana::string representing the name of the given type, at compile-time.

This only works on Clang (and apparently MSVC, but Hana does not work there as of writing this). Original idea taken from https://github.com/Manu343726/ctti.

## ◆ print

 auto boost::hana::experimental::print

#include <boost/hana/experimental/printable.hpp>

Initial value:
= [](auto const& x) -> std::string {
return tag-dispatched;
}

Returns a string representation of the given object.

This function is defined for most containers provided by Hana, and also for objects that define an operator<< that can be used with a std::basic_ostream. It can recursively print containers within containers, but do not expect any kind of proper indentation.

This function requires (the rest of) Boost to be available on the system. It also requires RTTI to be enabled.