я получаю сообщение об ошибке
error: use of undeclared identifier '__stl_hash_string'
{ return __stl_hash_string( __s.c_str() ); }
при компиляции с использованием Xcode 4.6.1 в Mac OS 10.8.
/------фрагмент кода ниже ----/
#ifdef __cplusplus
namespace __gnu_cxx
{
template<>
struct hash<std::string>
{
size_t operator()(const std::string& __s) const
{ return __stl_hash_string( __s.c_str() ); }
};
}
#endif
/-----------------------------------------------------/ Этот код был отлично работает в Xcode 3.5 на Mac OSX 10.7 и 10.6.
Я выполнил поиск метода __stl_hash_string
и обнаружил, что он присутствует в папке /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include/c++/4.2.1/ext/hash_fun.h
.
Однако, когда я написал образец приложения, чтобы посмотреть, могу ли я включить этот заголовок, он потерпел неудачу.
#include < cstddef >
#include < ext/hash_fun.h >
выдал мне ошибку во второй строке, говоря, что этот заголовок не может быть включен. Я не уверен, устарел ли этот метод в новой среде, если он устарел, то каков альтернативный метод. Прошу Вашей помощи в решении этого вопроса.