Statistics
| Revision:

root / tmp / org.txm.statsengine.r.core.win32 / res / win32 / library / BH / include / boost / archive / basic_text_iarchive.hpp @ 2486

History | View | Annotate | Download (2.9 kB)

1
#ifndef BOOST_ARCHIVE_BASIC_TEXT_IARCHIVE_HPP
2
#define BOOST_ARCHIVE_BASIC_TEXT_IARCHIVE_HPP
3

    
4
// MS compatible compilers support #pragma once
5
#if defined(_MSC_VER)
6
# pragma once
7
#endif
8

    
9
/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
10
// basic_text_iarchive.hpp
11

    
12
// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
13
// Use, modification and distribution is subject to the Boost Software
14
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
15
// http://www.boost.org/LICENSE_1_0.txt)
16

    
17
//  See http://www.boost.org for updates, documentation, and revision history.
18

    
19
// archives stored as text - note these ar templated on the basic
20
// stream templates to accommodate wide (and other?) kind of characters
21
//
22
// note the fact that on libraries without wide characters, ostream is
23
// is not a specialization of basic_ostream which in fact is not defined
24
// in such cases.   So we can't use basic_ostream<IStream::char_type> but rather
25
// use two template parameters
26

    
27
#include <boost/config.hpp>
28
#include <boost/detail/workaround.hpp>
29

    
30
#include <boost/archive/detail/common_iarchive.hpp>
31

    
32
#include <boost/archive/detail/abi_prefix.hpp> // must be the last header
33

    
34
#ifdef BOOST_MSVC
35
#  pragma warning(push)
36
#  pragma warning(disable : 4511 4512)
37
#endif
38

    
39
namespace boost {
40
namespace archive {
41

    
42
namespace detail {
43
    template<class Archive> class interface_iarchive;
44
} // namespace detail
45

    
46
/////////////////////////////////////////////////////////////////////////
47
// class basic_text_iarchive - read serialized objects from a input text stream
48
template<class Archive>
49
class BOOST_SYMBOL_VISIBLE basic_text_iarchive : 
50
    public detail::common_iarchive<Archive>
51
{
52
#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
53
public:
54
#else
55
protected:
56
    #if BOOST_WORKAROUND(BOOST_MSVC, < 1500)
57
        // for some inexplicable reason insertion of "class" generates compile erro
58
        // on msvc 7.1
59
        friend detail::interface_iarchive<Archive>;
60
    #else
61
        friend class detail::interface_iarchive<Archive>;
62
    #endif
63
#endif
64
    // intermediate level to support override of operators
65
    // fot templates in the absence of partial function 
66
    // template ordering
67
    typedef detail::common_iarchive<Archive> detail_common_iarchive;
68
    template<class T>
69
    void load_override(T & t){
70
        this->detail_common_iarchive::load_override(t);
71
    }
72
    // text file don't include the optional information 
73
    void load_override(class_id_optional_type & /*t*/){}
74

    
75
    BOOST_ARCHIVE_OR_WARCHIVE_DECL void
76
    load_override(class_name_type & t);
77

    
78
    BOOST_ARCHIVE_OR_WARCHIVE_DECL void
79
    init(void);
80

    
81
    basic_text_iarchive(unsigned int flags) : 
82
        detail::common_iarchive<Archive>(flags)
83
    {}
84
    ~basic_text_iarchive(){}
85
};
86

    
87
} // namespace archive
88
} // namespace boost
89

    
90
#ifdef BOOST_MSVC
91
#pragma warning(pop)
92
#endif
93

    
94
#include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
95

    
96
#endif // BOOST_ARCHIVE_BASIC_TEXT_IARCHIVE_HPP