"Fossies" - the Fresh Open Source Software Archive 
Member "qdiff-0.9.1/tmap.h" (21 Oct 2008, 2142 Bytes) of package /linux/privat/old/qdiff-0.9.1.tar.gz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style:
standard) with prefixed line numbers and
code folding option.
Alternatively you can here
view or
download the uninterpreted source code file.
1 /*GPL*START*
2 *
3 * tmap<> class template -- improved stl map<>
4 *
5 * Copyright (C) 2000-2001 by Johannes Overmann <Johannes.Overmann@gmx.de>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 * *GPL*END*/
21
22 #ifndef _ngw_tmap_h_
23 #define _ngw_tmap_h_
24
25
26 #ifdef DONT_USE_STL
27 # include "ttmap.h"
28 # define tmap_base ttmap
29 #else
30 # include <map>
31 # define tmap_base map
32 using namespace std;
33 #endif
34
35
36 #include "texception.h"
37
38 // history: start 08 Jul 2000
39 // 2000:
40 // 08 Jul: removing tarray and tassocarray, this should provide tmap and tvector
41 // 2001:
42 // 15 Sep: DONT_USE_STL feature added
43 // 16 Sep: splittet tstl.h into tvector.h and tmap.h
44
45
46 template<class K, class T>
47 class tmap: public tmap_base<K,T> {
48 public:
49 // 1:1 wrapper
50
51 /// access element (read/write) (this is needed for some strange reason)
52 T& operator[](const K& key) { return tmap_base<K,T>::operator[](key); };
53
54 // new functionality
55
56 /// return whether an element with key is contained or not
57 bool contains(const K& key) const { return find(key) != tmap_base<K,T>::end(); }
58 /// access element read only (const)
59 // g++ 2.95.2 does not allow this:
60 // const T& operator[](const K& key) const { const_iterator i = find(key); if(i != end()) return i->second; else throw TNotFoundException(); } // throw(TNotFoundException)
61 const T& operator[](const K& key) const { if(contains(key)) return find(key)->second; else throw TNotFoundException(); } // throw(TNotFoundException)
62 };
63
64
65 #endif /* _ngw_tmap_h_ */
66