39 namespace std _GLIBCXX_VISIBILITY(default)
41 _GLIBCXX_BEGIN_NAMESPACE_VERSION
43 template<
typename _CharT>
44 __timepunct<_CharT>::__timepunct(
size_t __refs)
45 : facet(__refs), _M_data(0)
47 _M_name_timepunct = _S_get_c_name();
48 _M_initialize_timepunct();
51 template<
typename _CharT>
52 __timepunct<_CharT>::__timepunct(__cache_type* __cache,
size_t __refs)
53 : facet(__refs), _M_data(__cache)
55 _M_name_timepunct = _S_get_c_name();
56 _M_initialize_timepunct();
59 template<
typename _CharT>
60 __timepunct<_CharT>::__timepunct(__c_locale __cloc,
const char* __s,
62 : facet(__refs), _M_data(0)
64 if (__builtin_strcmp(__s, _S_get_c_name()) != 0)
66 const size_t __len = __builtin_strlen(__s) + 1;
67 char* __tmp =
new char[__len];
68 __builtin_memcpy(__tmp, __s, __len);
69 _M_name_timepunct = __tmp;
72 _M_name_timepunct = _S_get_c_name();
75 { _M_initialize_timepunct(__cloc); }
78 if (_M_name_timepunct != _S_get_c_name())
79 delete [] _M_name_timepunct;
80 __throw_exception_again;
84 template<
typename _CharT>
85 __timepunct<_CharT>::~__timepunct()
87 if (_M_name_timepunct != _S_get_c_name())
88 delete [] _M_name_timepunct;
90 _S_destroy_c_locale(_M_c_locale_timepunct);
93 _GLIBCXX_END_NAMESPACE_VERSION