use tr1::unordered_{map,set} if available for wxHash{Map,Set} in STL build (#9532) [backport from trunk]
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@55215 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
80
configure.in
80
configure.in
@@ -2540,6 +2540,86 @@ if test "$wxUSE_STL" = "yes"; then
|
||||
AC_DEFINE(HAVE_EXT_HASH_MAP)
|
||||
AC_DEFINE(HAVE_GNU_CXX_HASH_MAP)
|
||||
fi
|
||||
|
||||
AC_CHECK_HEADER([unordered_map],
|
||||
[AC_CACHE_CHECK([for unordered_map and unordered_set in std],
|
||||
wx_cv_class_stdunorderedmapset,
|
||||
[AC_TRY_COMPILE([#include <unordered_map>
|
||||
#include <unordered_set>],
|
||||
[std::unordered_map<double*, char*> test1;
|
||||
std::unordered_set<char*> test2;],
|
||||
wx_cv_class_stdunorderedmapset=yes,
|
||||
wx_cv_class_stdunorderedmapset=no)
|
||||
]
|
||||
)],
|
||||
[],
|
||||
[ ]
|
||||
)
|
||||
|
||||
if test "$wx_cv_class_stdunorderedmapset" = yes; then
|
||||
AC_DEFINE(HAVE_STD_UNORDERED_MAP)
|
||||
AC_DEFINE(HAVE_STD_UNORDERED_SET)
|
||||
else
|
||||
AC_CHECK_HEADER([tr1/unordered_map],
|
||||
[AC_CACHE_CHECK([for unordered_map and unordered_set in std::tr1],
|
||||
wx_cv_class_tr1unorderedmapset,
|
||||
[AC_TRY_COMPILE([#include <tr1/unordered_map>
|
||||
#include <tr1/unordered_set>],
|
||||
[std::tr1::unordered_map<double*, char*> test1;
|
||||
std::tr1::unordered_set<char*> test2;
|
||||
#if defined(__GNUC__) && (__GNUC__==4) && (__GNUC_MINOR__<2)
|
||||
#error can't use unordered_{map,set} with gcc-4.[01]: http://gcc.gnu.org/PR24389
|
||||
#endif],
|
||||
wx_cv_class_tr1unorderedmapset=yes,
|
||||
wx_cv_class_tr1unorderedmapset=no)
|
||||
]
|
||||
)],
|
||||
[],
|
||||
[ ]
|
||||
)
|
||||
|
||||
if test "$wx_cv_class_tr1unorderedmapset" = yes; then
|
||||
AC_DEFINE(HAVE_TR1_UNORDERED_MAP)
|
||||
AC_DEFINE(HAVE_TR1_UNORDERED_SET)
|
||||
else
|
||||
dnl check for hash_map and hash_set headers
|
||||
AC_CHECK_HEADER([hash_map],
|
||||
[AC_CACHE_CHECK([for std::hash_map and hash_set],
|
||||
wx_cv_class_stdhashmapset,
|
||||
[AC_TRY_COMPILE([#include <hash_map>
|
||||
#include <hash_set>],
|
||||
[std::hash_map<double*, char*, std::hash<double*>, std::equal_to<double*> > test1;
|
||||
std::hash_set<char*, std::hash<char*>, std::equal_to<char*> > test2;],
|
||||
wx_cv_class_stdhashmapset=yes,
|
||||
wx_cv_class_stdhashmapset=no)
|
||||
]
|
||||
)],
|
||||
[],
|
||||
[ ]
|
||||
)
|
||||
|
||||
if test "$wx_cv_class_stdhashmapset" = yes; then
|
||||
AC_DEFINE(HAVE_HASH_MAP)
|
||||
AC_DEFINE(HAVE_STD_HASH_MAP)
|
||||
fi
|
||||
|
||||
AC_CHECK_HEADER([ext/hash_map],
|
||||
[AC_CACHE_CHECK([for GNU hash_map and hash_set],
|
||||
wx_cv_class_gnuhashmapset,
|
||||
[AC_TRY_COMPILE([#include <ext/hash_map>
|
||||
#include <ext/hash_set>],
|
||||
[__gnu_cxx::hash_map<double*, char*, __gnu_cxx::hash<double*>, std::equal_to<double*> > test1;
|
||||
__gnu_cxx::hash_set<char*, __gnu_cxx::hash<char*>, std::equal_to<char*> > test2;],
|
||||
wx_cv_class_gnuhashmapset=yes,
|
||||
wx_cv_class_gnuhashmapset=no)
|
||||
]
|
||||
)],
|
||||
[],
|
||||
[ ]
|
||||
)
|
||||
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl pop C++
|
||||
|
Reference in New Issue
Block a user