PageRenderTime 20ms CodeModel.GetById 13ms app.highlight 4ms RepoModel.GetById 1ms app.codeStats 0ms

/Src/Dependencies/Boost/boost/iostreams/detail/ios.hpp

http://hadesmem.googlecode.com/
C++ Header | 66 lines | 45 code | 15 blank | 6 comment | 5 complexity | ddfef4d132ba5bd9ffffb12f98de17d1 MD5 | raw file
 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_DETAIL_IOS_HPP_INCLUDED
 9#define BOOST_IOSTREAMS_DETAIL_IOS_HPP_INCLUDED
10
11#if defined(_MSC_VER) && (_MSC_VER >= 1020)
12# pragma once
13#endif              
14                 
15#include <boost/config.hpp> // BOOST_MSVC.
16#include <boost/detail/workaround.hpp>
17#include <boost/iostreams/detail/config/wide_streams.hpp>
18#ifndef BOOST_IOSTREAMS_NO_STREAM_TEMPLATES
19# if !BOOST_WORKAROUND(__MWERKS__, <= 0x3003)
20#  include <ios>
21# else
22#  include <istream>
23#  include <ostream>
24# endif
25#else 
26# include <exception>
27# include <iosfwd>
28#endif 
29
30namespace boost { namespace iostreams { namespace detail {
31
32#ifndef BOOST_IOSTREAMS_NO_STREAM_TEMPLATES //--------------------------------//
33# define BOOST_IOSTREAMS_BASIC_IOS(ch, tr)  std::basic_ios< ch, tr >
34# if !BOOST_WORKAROUND(__MWERKS__, <= 0x3003) && \
35     !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && \
36     !BOOST_WORKAROUND(BOOST_MSVC, < 1300) \
37     /**/
38
39#define BOOST_IOS                std::ios
40#define BOOST_IOSTREAMS_FAILURE  std::ios::failure
41
42# else
43
44#define BOOST_IOS                std::ios_base
45#define BOOST_IOSTREAMS_FAILURE  std::ios_base::failure
46
47# endif
48#else // #ifndef BOOST_IOSTREAMS_NO_STREAM_TEMPLATES //-----------------------//
49
50#define BOOST_IOS                          std::ios
51#define BOOST_IOSTREAMS_BASIC_IOS(ch, tr)  std::ios
52#define BOOST_IOSTREAMS_FAILURE            boost::iostreams::detail::failure
53
54class failure : std::exception {    
55public:
56    explicit failure(const std::string& what_arg) : what_(what_arg) { }
57    const char* what() const { return what_.c_str(); }
58private:
59    std::string what_;
60};
61
62#endif // #ifndef BOOST_IOSTREAMS_NO_STREAM_TEMPLATES //----------------------//
63
64} } } // End namespace failure, iostreams, boost.
65
66#endif // #ifndef BOOST_IOSTREAMS_DETAIL_IOS_HPP_INCLUDED