00001 /*****************************************************************************/ 00002 /*! 00003 * \file compat_hash_set.h 00004 * 00005 * Author: Sergey Berezin 00006 * 00007 * Created: Jan 31 02:23:26 GMT 2003 00008 * 00009 * <hr> 00010 * Copyright (C) 2003 by the Board of Trustees of Leland Stanford 00011 * Junior University and by New York University. 00012 * 00013 * License to use, copy, modify, sell and/or distribute this software 00014 * and its documentation for any purpose is hereby granted without 00015 * royalty, subject to the terms and conditions defined in the \ref 00016 * LICENSE file provided with this distribution. In particular: 00017 * 00018 * - The above copyright notice and this permission notice must appear 00019 * in all copies of the software and related documentation. 00020 * 00021 * - THE SOFTWARE IS PROVIDED "AS-IS", WITHOUT ANY WARRANTIES, 00022 * EXPRESSED OR IMPLIED. USE IT AT YOUR OWN RISK. 00023 * 00024 * <hr> 00025 * 00026 * Compatibility header file for STL extension "hash_set". Any other 00027 * source file that needs to use hash_set should include this instead. 00028 * 00029 * If hash_set and hash are not defined in namespace std, we bring 00030 * them in there. It turns out that different versions of gcc use 00031 * different namespaces for STL extensions (std, __gnu_cxx, and God 00032 * knows what'll be next). 00033 * 00034 * This header assumes that only one of HAVE_*_HASH_SET symbols is 00035 * defined. 00036 * 00037 * 00038 */ 00039 /*****************************************************************************/ 00040 #ifndef _core_utilities_compat_hash_set_h_ 00041 #define _core_utilities_compat_hash_set_h_ 00042 00043 #ifdef HAVE_CONFIG_H 00044 #include "config.h" 00045 #endif 00046 00047 #ifdef HAVE_STD__HASH_SET 00048 #include <hash_set> 00049 #endif 00050 00051 #ifdef HAVE_STD__EXT_HASH_SET 00052 #include <ext/hash_set> 00053 #endif 00054 00055 #ifdef HAVE___GNU_CXX__HASH_SET 00056 #include <hash_set> 00057 namespace std { 00058 using __gnu_cxx::hash_set; 00059 using __gnu_cxx::hash; 00060 }; 00061 #endif 00062 00063 #ifdef HAVE___GNU_CXX__EXT_HASH_SET 00064 #include <ext/hash_set> 00065 namespace std { 00066 using __gnu_cxx::hash_set; 00067 using __gnu_cxx::hash; 00068 }; 00069 #endif 00070 00071 #endif