Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_34_1/boost/wave/util/symbol_table.hpp @ 30

Last change on this file since 30 was 29, checked in by landauf, 17 years ago

updated boost from 1_33_1 to 1_34_1

File size: 2.1 KB
Line 
1/*=============================================================================
2    Boost.Wave: A Standard compliant C++ preprocessor library
3
4    http://www.boost.org/
5
6    Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
7    Software License, Version 1.0. (See accompanying file
8    LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9=============================================================================*/
10
11#if !defined(SYMBOL_TABLE_HPP_32B0F7C6_3DD6_4113_95A5_E16516C6F45A_INCLUDED)
12#define SYMBOL_TABLE_HPP_32B0F7C6_3DD6_4113_95A5_E16516C6F45A_INCLUDED
13
14#include <map>
15
16#include <boost/wave/wave_config.hpp>
17#if BOOST_WAVE_SERIALIZATION != 0
18#include <boost/serialization/serialization.hpp>
19#include <boost/serialization/map.hpp>
20#endif
21
22// this must occur after all of the includes and before any code appears
23#ifdef BOOST_HAS_ABI_HEADERS
24#include BOOST_ABI_PREFIX
25#endif
26
27///////////////////////////////////////////////////////////////////////////////
28namespace boost {
29namespace wave {
30namespace util {
31
32///////////////////////////////////////////////////////////////////////////////
33//
34//  The symbol_table class is used for the storage of defined macros.
35//
36///////////////////////////////////////////////////////////////////////////////
37
38template <typename StringT, typename MacroDefT>
39struct symbol_table 
40:   public std::map<StringT, boost::shared_ptr<MacroDefT> > 
41{
42    typedef std::map<StringT, boost::shared_ptr<MacroDefT> > base_type;
43   
44    symbol_table(long uid_ = 0) 
45    {}
46   
47#if BOOST_WAVE_SERIALIZATION != 0   
48private:
49    friend class boost::serialization::access;
50    template<typename Archive>
51    void serialize(Archive &ar, const unsigned int version)
52    {
53        ar & boost::serialization::base_object<base_type>(*this);
54    }
55#endif
56};
57
58///////////////////////////////////////////////////////////////////////////////
59}   // namespace util
60}   // namespace wave
61}   // namespace boost
62
63// the suffix header occurs after all of the code
64#ifdef BOOST_HAS_ABI_HEADERS
65#include BOOST_ABI_SUFFIX
66#endif
67
68#endif // !defined(SYMBOL_TABLE_HPP_32B0F7C6_3DD6_4113_95A5_E16516C6F45A_INCLUDED)
Note: See TracBrowser for help on using the repository browser.