34 #include <boost/type_traits.hpp>
36 #include <boost/format.hpp>
40 #include "rsc/rscexports.h"
123 RSC_EXPORT std::string
typeName(
const std::type_info& type);
147 std::string
typeName(
const T&
object);
174 std::string
typeString(
const std::string& known_type_string,
175 const std::string& unknown_type_string,
const T& value);
182 template<
typename Ch,
typename Tr>
183 basic_ostream<Ch, Tr>&
184 operator<<(basic_ostream<Ch, Tr>& stream,
const type_info& type_info_);
200 return demangle(
typeid(
object).name());
205 const std::string&,
const T& value, boost::true_type) {
206 return (boost::format(known_type_string) % value).str();
211 const std::string& unknown_type_string,
const T&, boost::false_type) {
212 return unknown_type_string;
217 const std::string& unknown_type_string,
const T& value) {
218 return doTypeString(known_type_string, unknown_type_string, value,
227 template<
typename Ch,
typename Tr>
228 basic_ostream<Ch, Tr>&
229 operator<<(basic_ostream<Ch, Tr>& stream,
const type_info& type_info_) {