diff options
Diffstat (limited to 'src/third_party/boost-1.56.0/boost/archive/iterators/wchar_from_mb.hpp')
-rw-r--r-- | src/third_party/boost-1.56.0/boost/archive/iterators/wchar_from_mb.hpp | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/src/third_party/boost-1.56.0/boost/archive/iterators/wchar_from_mb.hpp b/src/third_party/boost-1.56.0/boost/archive/iterators/wchar_from_mb.hpp deleted file mode 100644 index ab81f17b680..00000000000 --- a/src/third_party/boost-1.56.0/boost/archive/iterators/wchar_from_mb.hpp +++ /dev/null @@ -1,129 +0,0 @@ -#ifndef BOOST_ARCHIVE_ITERATORS_WCHAR_FROM_MB_HPP -#define BOOST_ARCHIVE_ITERATORS_WCHAR_FROM_MB_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// wchar_from_mb.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to 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) - -// See http://www.boost.org for updates, documentation, and revision history. - -#include <boost/assert.hpp> -#include <cctype> -#include <cstddef> // size_t -#include <cstdlib> // mblen - -#include <boost/config.hpp> -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std{ - using ::mblen; - using ::mbtowc; -} // namespace std -#endif - -#include <boost/serialization/throw_exception.hpp> -#include <boost/serialization/pfto.hpp> - -#include <boost/iterator/iterator_adaptor.hpp> -#include <boost/archive/iterators/dataflow_exception.hpp> - -namespace boost { -namespace archive { -namespace iterators { - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// class used by text archives to translate char strings to wchar_t -// strings of the currently selected locale -template<class Base> -class wchar_from_mb - : public boost::iterator_adaptor< - wchar_from_mb<Base>, - Base, - wchar_t, - single_pass_traversal_tag, - wchar_t - > -{ - friend class boost::iterator_core_access; - typedef typename boost::iterator_adaptor< - wchar_from_mb<Base>, - Base, - wchar_t, - single_pass_traversal_tag, - wchar_t - > super_t; - - typedef wchar_from_mb<Base> this_t; - - wchar_t drain(); - - wchar_t dereference_impl() { - if(! m_full){ - m_current_value = drain(); - m_full = true; - } - return m_current_value; - } - - wchar_t dereference() const { - return const_cast<this_t *>(this)->dereference_impl(); - } - - void increment(){ - dereference_impl(); - m_full = false; - ++(this->base_reference()); - }; - - wchar_t m_current_value; - bool m_full; - -public: - // make composible buy using templated constructor - template<class T> - wchar_from_mb(BOOST_PFTO_WRAPPER(T) start) : - super_t(Base(BOOST_MAKE_PFTO_WRAPPER(static_cast< T >(start)))), - m_full(false) - {} - // intel 7.1 doesn't like default copy constructor - wchar_from_mb(const wchar_from_mb & rhs) : - super_t(rhs.base_reference()), - m_full(rhs.m_full) - {} -}; - -template<class Base> -wchar_t wchar_from_mb<Base>::drain(){ - char buffer[9]; - char * bptr = buffer; - char val; - for(std::size_t i = 0; i++ < (unsigned)MB_CUR_MAX;){ - val = * this->base_reference(); - *bptr++ = val; - int result = std::mblen(buffer, i); - if(-1 != result) - break; - ++(this->base_reference()); - } - wchar_t retval; - int result = std::mbtowc(& retval, buffer, MB_CUR_MAX); - if(0 >= result) - boost::serialization::throw_exception(iterators::dataflow_exception( - iterators::dataflow_exception::invalid_conversion - )); - return retval; -} - -} // namespace iterators -} // namespace archive -} // namespace boost - -#endif // BOOST_ARCHIVE_ITERATORS_WCHAR_FROM_MB_HPP |