Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034 #include <string>
00035 #include <functional>
00036 #include "string_ref8.h"
00037 #include "string_ref16.h"
00038 #include "string8.h"
00039 #include "string16.h"
00040
00041 typedef CL_StringRef8 CL_StringRef;
00042 typedef CL_String8 CL_String;
00043
00044 #if defined(__APPLE__) || (defined(_MSC_VER) && _MSC_VER < 1600)
00045 namespace std
00046 {
00047 namespace tr1
00048 {
00049 template<>
00050 class hash<CL_String> : hash<const CL_String::char_type*>
00051 {
00052 public:
00053 size_t operator()(const CL_String& keyval) const
00054 {
00055 return hash<const CL_String::char_type*>::operator()(keyval.c_str());
00056 }
00057 };
00058 }
00059 }
00060 #else
00061 namespace std
00062 {
00063 template<>
00064 class hash<CL_String> : hash<const CL_String::char_type*>
00065 {
00066 public:
00067 size_t operator()(const CL_String& keyval) const
00068 {
00069 return hash<const CL_String::char_type*>::operator()(keyval.c_str());
00070 }
00071 };
00072 }
00073 #endif
00074