// Copyright 2019 Hans Dembinski // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt // or copy at http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_HISTOGRAM_DETAIL_TYPE_NAME_HPP #define BOOST_HISTOGRAM_DETAIL_TYPE_NAME_HPP #include #include #include namespace boost { namespace histogram { namespace detail { template std::string type_name_impl(boost::type) { return boost::core::demangled_name(BOOST_CORE_TYPEID(T)); } template std::string type_name_impl(boost::type) { return type_name_impl(boost::type{}) + " const"; } template std::string type_name_impl(boost::type) { return type_name_impl(boost::type{}) + " &"; } template std::string type_name_impl(boost::type) { return type_name_impl(boost::type{}) + " &&"; } template std::string type_name() { return type_name_impl(boost::type{}); } } // namespace detail } // namespace histogram } // namespace boost #endif