0ad/source/lib/sysdep/sysdep.h
janwas 95453aa2c6 add STL_HASH_(MULTI)MAP
This was SVN commit r1018.
2004-08-18 02:13:53 +00:00

81 lines
1.5 KiB
C++
Executable File

#ifndef SYSDEP_H__
#define SYSDEP_H__
#include "config.h"
#include "sysdep/debug.h"
#ifdef _WIN32
#include "win/win.h"
#include "win/wdbg.h"
#elif defined(OS_UNIX)
#include "unix/unix.h"
#endif
#ifdef _WIN32
#include "lib/sysdep/win/printf.h"
#else
#define vsnprintf2 vsnprintf
#endif
#ifdef __cplusplus
extern "C" {
#endif
extern void display_msg(const char* caption, const char* msg);
extern void wdisplay_msg(const wchar_t* caption, const wchar_t* msg);
extern int clipboard_set(const wchar_t* text);
extern wchar_t* clipboard_get();
extern int clipboard_free(wchar_t* copy);
extern int get_executable_name(char* n_path, size_t buf_size);
#ifdef _MSC_VER
extern double round(double);
#endif
#ifndef HAVE_C99
extern float fminf(float a, float b);
extern float fmaxf(float a, float b);
#endif
#ifndef _MSC_VER
#define stricmp strcasecmp
#define strnicmp strncasecmp
#endif
#ifdef __cplusplus
}
#endif
// C++ linkage
// STL_HASH_MAP, STL_HASH_MULTIMAP
#ifdef __GNUC__
// GCC
# include <ext/hash_map>
# define STL_HASH_MAP __gnu_cxx::hash_map
# define STL_HASH_MULTIMAP __gnu_cxx::hash_multimap
#else // !__GNUC__
# include <hash_map>
# if defined(_MSC_VER) && (_MSC_VER >= 1300)
// VC7 or above
# define STL_HASH_MAP stdext::hash_map
# define STL_HASH_MULTIMAP stdext::hash_multimap
# else
// VC6 and anything else (most likely name)
# define STL_HASH_MAP std::hash_map
# define STL_HASH_MULTIMAP std::hash_multimap
# endif // defined(_MSC_VER) && (_MSC_VER >= 1300)
#endif // !__GNUC__
#endif // #ifndef SYSDEP_H__