/usr/include/boost/exception
Edit: /usr/include/boost/exception/to_string.hpp (2291B)
//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
//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_EXCEPTION_7E48761AD92811DC9011477D56D89593
#define BOOST_EXCEPTION_7E48761AD92811DC9011477D56D89593
#include
#include
#include
#ifndef BOOST_EXCEPTION_ENABLE_WARNINGS
#if __GNUC__*100+__GNUC_MINOR__>301
#pragma GCC system_header
#endif
#ifdef __clang__
#pragma clang system_header
#endif
#ifdef _MSC_VER
#pragma warning(push,1)
#endif
#endif
namespace
boost
{
template
std::string to_string( std::pair const & );
std::string to_string( std::exception const & );
namespace
to_string_detail
{
template
typename disable_if,char>::type to_string( T const & );
using boost::to_string;
template
struct has_to_string_impl;
template
struct
has_to_string_impl
{
enum e { value=1 };
};
template
struct
has_to_string_impl
{
static T const & f();
enum e { value=1!=sizeof(to_string(f())) };
};
}
template
inline
typename enable_if,std::string>::type
to_string( T const & x )
{
std::ostringstream out;
out << x;
return out.str();
}
template
struct
has_to_string
{
enum e { value=to_string_detail::has_to_string_impl::value>::value };
};
template
inline
std::string
to_string( std::pair const & x )
{
return std::string("(") + to_string(x.first) + ',' + to_string(x.second) + ')';
}
inline
std::string
to_string( std::exception const & x )
{
return x.what();
}
}
#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
#pragma warning(pop)
#endif
#endif