6 inline unsigned hash(T begin, T end)
9 for(T i=begin; (i!=end && *i); ++i)
10 result = ((result>>29)|(result<<5))^static_cast<unsigned char>(*i);
19 Tag::Tag(const char *s):
20 id(s ? hash<const char *>(s, 0) : 0)
23 Tag::Tag(const std::string &s):
24 id(hash(s.begin(), s.end()))