BVB Source Codes

mars Show to_string.hpp Source code

Return Download mars: download to_string.hpp Source code - Download mars Source code - Type:.hpp
  1. //Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
  2.  
  3. //Distributed under the Boost Software License, Version 1.0. (See accompanying
  4. //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  5.  
  6. #ifndef UUID_7E48761AD92811DC9011477D56D89593
  7. #define UUID_7E48761AD92811DC9011477D56D89593
  8. #if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
  9. #pragma GCC system_header
  10. #endif
  11. #if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
  12. #pragma warning(push,1)
  13. #endif
  14.  
  15. #include <boost/utility/enable_if.hpp>
  16. #include <boost/exception/detail/is_output_streamable.hpp>
  17. #include <sstream>
  18.  
  19. namespace mars_boost {} namespace boost = mars_boost; namespace
  20. mars_boost
  21.     {
  22.     template <class T,class U>
  23.     std::string to_string( std::pair<T,U> const & );
  24.     std::string to_string( std::exception const & );
  25.  
  26.     namespace
  27.     to_string_detail
  28.         {
  29.         template <class T>
  30.         typename disable_if<is_output_streamable<T>,char>::type to_string( T const & );
  31.         using mars_boost::to_string;
  32.  
  33.         template <class,bool IsOutputStreamable>
  34.         struct has_to_string_impl;
  35.  
  36.         template <class T>
  37.         struct
  38.         has_to_string_impl<T,true>
  39.             {
  40.             enum e { value=1 };
  41.             };
  42.  
  43.         template <class T>
  44.         struct
  45.         has_to_string_impl<T,false>
  46.             {
  47.             static T const & f();
  48.             enum e { value=1!=sizeof(to_string(f())) };
  49.             };
  50.         }
  51.  
  52.     template <class T>
  53.     inline
  54.     typename enable_if<is_output_streamable<T>,std::string>::type
  55.     to_string( T const & x )
  56.         {
  57.         std::ostringstream out;
  58.         out << x;
  59.         return out.str();
  60.         }
  61.  
  62.     template <class T>
  63.     struct
  64.     has_to_string
  65.         {
  66.         enum e { value=to_string_detail::has_to_string_impl<T,is_output_streamable<T>::value>::value };
  67.         };
  68.  
  69.     template <class T,class U>
  70.     inline
  71.     std::string
  72.     to_string( std::pair<T,U> const & x )
  73.         {
  74.         return std::string("(") + to_string(x.first) + ',' + to_string(x.second) + ')';
  75.         }
  76.  
  77.     inline
  78.     std::string
  79.     to_string( std::exception const & x )
  80.         {
  81.         return x.what();
  82.         }
  83.     }
  84.  
  85. #if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
  86. #pragma warning(pop)
  87. #endif
  88. #endif
  89.  
downloadto_string.hpp Source code - Download mars Source code
Related Source Codes/Software:
Hero - Elegant transition library for iOS & tvOS 2017-06-09
deep-photo-styletransfer - Code and data for paper "Deep Photo Style Transfer... 2017-06-09
mastodon - A GNU Social-compatible microblogging server ... 2017-06-09
plyr - A simple HTML5, YouTube and Vimeo player ... 2017-06-08
prepack - Prepack is a partial evaluator for JavaScript. Pre... 2017-06-08
Public-APIs - 2017-06-09
lottie-ios - An iOS library to natively render After Effects ve... 2017-06-09
Awesome-Hacking - A collection of various awesome lists for hackers,... 2017-06-09
algorithms - Minimal examples of data structures and algorithms... 2017-06-10
lectures - Oxford Deep NLP 2017 course 2017-06-10
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top