This is unicode_string.h in view mode; [Download] [Up]
// Copyright (c) 1995 David Engberg All rights reserved // $Id: unicode_string.h,v 1.3 1996/03/09 20:08:37 geppetto Exp $ #ifndef _unicode_string_h #define _unicode_string_h #pragma interface #include "string.h" typedef unsigned short unicode_char; // I changed this from a typedef to a subclass to try to reduce template // symbol length. This may prevent brain-dead linkers from exploding. // typedef basic_string <unicode_char, string_char_traits <unicode_char> > unicode_string; class unicode_string : public basic_string <unicode_char, string_char_traits <unicode_char> > { public: typedef basic_string <unicode_char, string_char_traits <unicode_char> > inherited; explicit unicode_string() : inherited() {} explicit unicode_string(const inherited& str) : inherited(str) {} unicode_string(const unicode_string& str) : inherited(str) {} unicode_string(const unicode_string& str, size_type pos, size_type n = npos) : inherited(str, pos, n) {} unicode_string(const value_type* s, size_type n) : inherited(s, n) {} unicode_string(size_type n, value_type c) : inherited(n, c) {} unicode_string& operator=(const unicode_string& str) { inherited::operator=(str); return *this; } unicode_string& operator+=(const unicode_string& rhs) { inherited::operator+=(rhs); return *this; } unicode_string& operator+=(unicode_char c) { inherited::operator+=(c); return *this; } int compare(const unicode_string& str, size_type pos = 0, size_type n = npos) const { return inherited::compare(str, pos, npos); } }; inline bool operator==(const unicode_string& lhs, const unicode_string& rhs) { return lhs.compare(rhs) == 0; } inline bool operator<(const unicode_string& lhs, const unicode_string& rhs) { return lhs.compare(rhs) < 0; } inline unicode_string operator+(const unicode_string& lhs, const unicode_string& rhs) { unicode_string str(lhs); str.append(rhs); return str; } unicode_string UTFToUnicode(const string&); string UnicodeToUTF(const unicode_string&); unicode_string StringToUnicode(const string&); unicode_string StringToUnicode(const char*); unicode_string StringToUnicode(const char*, size_t length); string UnicodeToString(const unicode_string&); unsigned long Hash(const unicode_string&); unsigned long Hash(unicode_string::const_iterator start, unicode_string::const_iterator end); #endif
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.