BVB Source Codes

mars Show imbue.hpp Source code

Return Download mars: download imbue.hpp Source code - Download mars Source code - Type:.hpp
  1. // (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
  2. // (C) Copyright 2003-2007 Jonathan Turkanis
  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. // See http://www.boost.org/libs/iostreams for documentation.
  7.  
  8. #ifndef BOOST_IOSTREAMS_IMBUE_HPP_INCLUDED
  9. #define BOOST_IOSTREAMS_IMBUE_HPP_INCLUDED
  10.  
  11. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  12. # pragma once
  13. #endif
  14.  
  15. #include <boost/config.hpp>  // DEDUCED_TYPENAME, MSVC.
  16. #include <boost/detail/workaround.hpp>
  17. #include <boost/iostreams/detail/dispatch.hpp>
  18. #include <boost/iostreams/detail/streambuf.hpp>
  19. #include <boost/iostreams/detail/wrap_unwrap.hpp>
  20. #include <boost/iostreams/operations_fwd.hpp>
  21. #include <boost/mpl/if.hpp>
  22.  
  23. // Must come last.
  24. #include <boost/iostreams/detail/config/disable_warnings.hpp>
  25.  
  26. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost { namespace iostreams {
  27.  
  28. namespace detail {
  29.  
  30. // Implementation templates for simulated tag dispatch.
  31. template<typename T>
  32. struct imbue_impl;
  33.  
  34. } // End namespace detail.
  35.  
  36. template<typename T, typename Locale>
  37. void imbue(T& t, const Locale& loc)
  38. { detail::imbue_impl<T>::imbue(detail::unwrap(t), loc); }
  39.  
  40. namespace detail {
  41.  
  42. //------------------Definition of imbue_impl----------------------------------//
  43.  
  44. template<typename T>
  45. struct imbue_impl
  46.     : mpl::if_<
  47.           is_custom<T>,
  48.           operations<T>,
  49.           imbue_impl<
  50.               BOOST_DEDUCED_TYPENAME
  51.               dispatch<
  52.                   T, streambuf_tag, localizable_tag, any_tag
  53.               >::type
  54.           >
  55.       >::type
  56.     { };
  57.  
  58. template<>
  59. struct imbue_impl<any_tag> {
  60.     template<typename T, typename Locale>
  61.     static void imbue(T&, const Locale&) { }
  62. };
  63.  
  64. template<>
  65. struct imbue_impl<streambuf_tag> {
  66.     template<typename T, typename Locale>
  67.     static void imbue(T& t, const Locale& loc) { t.pubimbue(loc); }
  68. };
  69.  
  70. template<>
  71. struct imbue_impl<localizable_tag> {
  72.     template<typename T, typename Locale>
  73.     static void imbue(T& t, const Locale& loc) { t.imbue(loc); }
  74. };
  75.  
  76. } // End namespace detail.
  77.  
  78. } } // End namespaces iostreams, boost.
  79.  
  80. #include <boost/iostreams/detail/config/enable_warnings.hpp>
  81.  
  82. #endif // #ifndef BOOST_IOSTREAMS_IMBUE_HPP_INCLUDED
  83.  
downloadimbue.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