1e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include "stlport_prefix.h" 2e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 3e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <string> 4e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 5e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_BEGIN_NAMESPACE 6e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 7e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if defined(_STLP_USE_WIDE_INTERFACE) 8e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_PRIV_NAMESPACE 9e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 10e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottwstring __ASCIIToWide(const char *ascii) { 11e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott size_t size = strlen(ascii); 12e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott wchar_t* buff = new wchar_t[size+1]; 13e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott mbstowcs(buff, ascii, size); 14e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott buff[size] = 0x00; 15e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott wstring ret(buff); 16e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott delete[] buff; 17e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott return ret; 18e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott} 19e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottstring __WideToASCII(const wchar_t *wide) { 20e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott size_t size = wcslen(wide); 21e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott char* buff = new char[size+1]; 22e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott wcstombs(buff, wide, size); 23e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott buff[size] = 0; 24e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott string ret(buff); 25e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott delete[] buff; 26e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott return ret; 27e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott} 28e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_STD_NAMESPACE 29e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 30e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 31e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (_STLP_NO_FORCE_INSTANTIATE) 32e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 33e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC allocator<char>; 34e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 35e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_PRIV_NAMESPACE 36e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 37e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<char*, char, allocator<char> >; 38e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _String_base<char, allocator<char> >; 39e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 40e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if defined (_STLP_DEBUG) && !defined (__SUNPRO_CC) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) 41e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# define basic_string _STLP_NON_DBG_NAME(str) 42e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 43e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC basic_string<char, char_traits<char>, allocator<char> >; 44e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC __construct_checker<basic_string<char, char_traits<char>, allocator<char> > >; 45e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 46e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# undef basic_string 47e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 48e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 49e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) 50e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# define basic_string _STLP_NO_MEM_T_NAME(str) 51e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# else 52e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_STD_NAMESPACE 53e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 54e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 55e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC basic_string<char, char_traits<char>, allocator<char> >; 56e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 57e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if defined (basic_string) 58e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_STD_NAMESPACE 59e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# undef basic_string 60e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 61e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 62e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if !defined (_STLP_NO_WCHAR_T) 63e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC allocator<wchar_t>; 64e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 65e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_PRIV_NAMESPACE 66e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 67e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC _String_base<wchar_t, allocator<wchar_t> >; 68e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 69e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if defined (_STLP_DEBUG) && !defined (__SUNPRO_CC) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) 70e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# define basic_string _STLP_NON_DBG_NAME(str) 71e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 72e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >; 73e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC __construct_checker<basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > >; 74e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 75e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# undef basic_string 76e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 77e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 78e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) 79e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# define basic_string _STLP_NO_MEM_T_NAME(str) 80e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# else 81e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_STD_NAMESPACE 82e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 83e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 84e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scotttemplate class _STLP_CLASS_DECLSPEC basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >; 85e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 86e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if defined (basic_string) 87e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_MOVE_TO_STD_NAMESPACE 88e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# undef basic_string 89e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 90e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 91e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 92e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 93e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_END_NAMESPACE 94