string.cpp 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #include "stlport_prefix.h"
  2. #include <string>
  3. #include <stdexcept> /* include __Named_exception imple. in static lib */
  4. _STLP_BEGIN_NAMESPACE
  5. #if defined(_STLP_USE_WIDE_INTERFACE)
  6. _STLP_MOVE_TO_PRIV_NAMESPACE
  7. wstring __ASCIIToWide(const char *ascii) {
  8. size_t size = strlen(ascii);
  9. wchar_t* buff = new wchar_t[size+1];
  10. mbstowcs(buff, ascii, size);
  11. buff[size] = 0x00;
  12. wstring ret(buff);
  13. delete[] buff;
  14. return ret;
  15. }
  16. string __WideToASCII(const wchar_t *wide) {
  17. size_t size = wcslen(wide);
  18. char* buff = new char[size+1];
  19. wcstombs(buff, wide, size);
  20. buff[size] = 0;
  21. string ret(buff);
  22. delete[] buff;
  23. return ret;
  24. }
  25. _STLP_MOVE_TO_STD_NAMESPACE
  26. #endif
  27. #if !defined (_STLP_NO_FORCE_INSTANTIATE)
  28. template class _STLP_CLASS_DECLSPEC allocator<char>;
  29. _STLP_MOVE_TO_PRIV_NAMESPACE
  30. template class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<char*, char, allocator<char> >;
  31. template class _STLP_CLASS_DECLSPEC _String_base<char, allocator<char> >;
  32. # if defined (_STLP_DEBUG) && !defined (__SUNPRO_CC) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
  33. # define basic_string _STLP_NON_DBG_NAME(str)
  34. template class _STLP_CLASS_DECLSPEC basic_string<char, char_traits<char>, allocator<char> >;
  35. template class _STLP_CLASS_DECLSPEC __construct_checker<basic_string<char, char_traits<char>, allocator<char> > >;
  36. # undef basic_string
  37. # endif
  38. # if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
  39. # define basic_string _STLP_NO_MEM_T_NAME(str)
  40. # else
  41. _STLP_MOVE_TO_STD_NAMESPACE
  42. # endif
  43. template class _STLP_CLASS_DECLSPEC basic_string<char, char_traits<char>, allocator<char> >;
  44. # if defined (basic_string)
  45. _STLP_MOVE_TO_STD_NAMESPACE
  46. # undef basic_string
  47. # endif
  48. # if !defined (_STLP_NO_WCHAR_T)
  49. template class _STLP_CLASS_DECLSPEC allocator<wchar_t>;
  50. _STLP_MOVE_TO_PRIV_NAMESPACE
  51. template class _STLP_CLASS_DECLSPEC _String_base<wchar_t, allocator<wchar_t> >;
  52. # if defined (_STLP_DEBUG) && !defined (__SUNPRO_CC) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
  53. # define basic_string _STLP_NON_DBG_NAME(str)
  54. template class _STLP_CLASS_DECLSPEC basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >;
  55. template class _STLP_CLASS_DECLSPEC __construct_checker<basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > >;
  56. # undef basic_string
  57. # endif
  58. # if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
  59. # define basic_string _STLP_NO_MEM_T_NAME(str)
  60. # else
  61. _STLP_MOVE_TO_STD_NAMESPACE
  62. # endif
  63. template class _STLP_CLASS_DECLSPEC basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >;
  64. # if defined (basic_string)
  65. _STLP_MOVE_TO_STD_NAMESPACE
  66. # undef basic_string
  67. # endif
  68. # endif
  69. #endif
  70. _STLP_END_NAMESPACE