Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

hash_map.h

Go to the documentation of this file.
00001 /* SimData: Data Infrastructure for Simulations
00002  * Copyright (C) 2002 Mark Rose <tm2@stm.lbl.gov>
00003  * 
00004  * This file is part of SimData.
00005  * 
00006  * This program is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU General Public License
00008  * as published by the Free Software Foundation; either version 2
00009  * of the License, or (at your option) any later version.
00010  * 
00011  * This program is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014  * GNU General Public License for more details.
00015  * 
00016  * You should have received a copy of the GNU General Public License
00017  * along with this program; if not, write to the Free Software
00018  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00019  */
00020 
00027 #ifndef __SIMDATA_HASH_MAP_H__
00028 #define __SIMDATA_HASH_MAP_H__
00029 
00030 #if defined(__GNUC__) || defined(__INTEL_COMPILER)
00031   #if __GNUC__ >= 3
00032     #include <ext/hash_map>
00033     #if __GNUC_MINOR__ > 0
00034         #define HASH_MAP __gnu_cxx::hash_map
00035         #define HASH __gnu_cxx::hash
00036     #else
00037         #define HASH_MAP std::hash_map
00038         #define HASH std::hash
00039     #endif
00040   #else
00041     #include <hash_map>
00042     #define HASH_MAP std::hash_map
00043     #define HASH std::hash
00044   #endif
00045 #else
00046   #ifdef _MSC_VER 
00047    #if (_MSC_VER <= 1200) && defined(_STLP_WIN32)
00048     #include <hash_map>
00049     #define HASH_MAP std::hash_map
00050     #define HASH std::hash
00051   #elif (_MSC_VER == 1300) 
00052     #include <hash_map>
00053     #define HASH_MAP std::hash_map
00054     #define HASH std::hash_compare
00055   #elif (_MSC_VER > 1300) 
00056     #include <hash_map>
00057     #define HASH_MAP stdext::hash_map
00058     #define HASH stdext::hash_compare
00059   #endif
00060   #else
00061     #error "PLEASE PROVIDE CORRECT #INCLUDE<HASH_MAP> STATEMENT FOR YOUR PLATFORM!"
00062   #endif
00063 #endif
00064 
00068 template <class key, class val, class hash, class eq> struct HASH_MAPS {
00069 #if defined(_MSC_VER) && (_MSC_VER >= 1300)
00070         typedef HASH_MAP<key, val, eq> Type;
00071 #else
00072         typedef HASH_MAP<key, val, hash, eq> Type;
00073 #endif
00074 };
00075 
00076 #endif // __SIMDATA_HASH_MAP_H__

SimData version pre-0.4.0. For more information on SimData, visit the SimData Homepage.

Generated on Tue Oct 14 12:06:38 2003, using Doxygen 1.2.18.

[SF.net]