177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#include "stlport_prefix.h" 277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#include <string> 477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_BEGIN_NAMESPACE 677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined(_STLP_USE_WIDE_INTERFACE) 877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_MOVE_TO_PRIV_NAMESPACE 977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 1077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerwstring __ASCIIToWide(const char *ascii) { 1177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner size_t size = strlen(ascii); 1277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner wchar_t* buff = new wchar_t[size+1]; 1377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner mbstowcs(buff, ascii, size); 1477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner buff[size] = 0x00; 1577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner wstring ret(buff); 1677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner delete[] buff; 1777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner return ret; 1877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner} 1977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerstring __WideToASCII(const wchar_t *wide) { 2077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner size_t size = wcslen(wide); 2177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner char* buff = new char[size+1]; 2277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner wcstombs(buff, wide, size); 2377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner buff[size] = 0; 2477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner string ret(buff); 2577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner delete[] buff; 2677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner return ret; 2777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner} 2877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_MOVE_TO_STD_NAMESPACE 2977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 3077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 3177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (_STLP_NO_FORCE_INSTANTIATE) 3277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 3377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC allocator<char>; 3477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 3577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_MOVE_TO_PRIV_NAMESPACE 3677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 3777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<char*, char, allocator<char> >; 3877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC _String_base<char, allocator<char> >; 3977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 4077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if defined (_STLP_DEBUG) && !defined (__SUNPRO_CC) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) 4177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# define basic_string _STLP_NON_DBG_NAME(str) 4277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 4377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC basic_string<char, char_traits<char>, allocator<char> >; 4477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC __construct_checker<basic_string<char, char_traits<char>, allocator<char> > >; 4577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 4677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# undef basic_string 4777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 4877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 4977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) 5077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# define basic_string _STLP_NO_MEM_T_NAME(str) 5177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# else 5277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_MOVE_TO_STD_NAMESPACE 5377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 5477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 5577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC basic_string<char, char_traits<char>, allocator<char> >; 5677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 5777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if defined (basic_string) 5877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_MOVE_TO_STD_NAMESPACE 5977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# undef basic_string 6077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 6177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 6277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if !defined (_STLP_NO_WCHAR_T) 6377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC allocator<wchar_t>; 6477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 6577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_MOVE_TO_PRIV_NAMESPACE 6677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 6777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC _String_base<wchar_t, allocator<wchar_t> >; 6877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 6977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if defined (_STLP_DEBUG) && !defined (__SUNPRO_CC) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) 7077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# define basic_string _STLP_NON_DBG_NAME(str) 7177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 7277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >; 7377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC __construct_checker<basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > >; 7477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 7577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# undef basic_string 7677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 7777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 7877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) 7977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# define basic_string _STLP_NO_MEM_T_NAME(str) 8077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# else 8177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_MOVE_TO_STD_NAMESPACE 8277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 8377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 8477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate class _STLP_CLASS_DECLSPEC basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >; 8577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 8677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if defined (basic_string) 8777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_MOVE_TO_STD_NAMESPACE 8877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# undef basic_string 8977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 9077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 9177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 9277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 9377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_END_NAMESPACE 94