You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
50 lines
1.5 KiB
50 lines
1.5 KiB
//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 UUID_6F463AC838DF11DDA3E6909F56D89593 |
|
#define UUID_6F463AC838DF11DDA3E6909F56D89593 |
|
#if defined(__GNUC__) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) |
|
#pragma GCC system_header |
|
#endif |
|
#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) |
|
#pragma warning(push,1) |
|
#endif |
|
|
|
#include <boost/exception/detail/type_info.hpp> |
|
#include <iomanip> |
|
#include <ios> |
|
#include <string> |
|
#include <sstream> |
|
#include <cstdlib> |
|
|
|
namespace |
|
boost |
|
{ |
|
namespace |
|
exception_detail |
|
{ |
|
template <class T> |
|
inline |
|
std::string |
|
object_hex_dump( T const & x, std::size_t max_size=16 ) |
|
{ |
|
std::ostringstream s; |
|
s << "type: " << type_name<T>() << ", size: " << sizeof(T) << ", dump: "; |
|
std::size_t n=sizeof(T)>max_size?max_size:sizeof(T); |
|
s.fill('0'); |
|
s.width(2); |
|
unsigned char const * b=reinterpret_cast<unsigned char const *>(&x); |
|
s << std::setw(2) << std::hex << (unsigned int)*b; |
|
for( unsigned char const * e=b+n; ++b!=e; ) |
|
s << " " << std::setw(2) << std::hex << (unsigned int)*b; |
|
return s.str(); |
|
} |
|
} |
|
} |
|
|
|
#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) |
|
#pragma warning(pop) |
|
#endif |
|
#endif
|
|
|