52#if !defined (_RWSTD_OS_HP_UX) || defined (_ILP32)
96#ifndef _RWSTD_NO_WCHAR_T
127 const std::locale
loc =
129 : std::locale (
data.locale_name_);
134 const std::numpunct<char> &np =
135 std::use_facet<std::numpunct<char> >(
loc);
137 const char dp = np.decimal_point ();
138 const char ts = np.thousands_sep ();
139 const std::string grp = np.grouping ();
140 const std::string tn = np.truename ();
141 const std::string fn = np.falsename ();
146 data.grouping_.c_str ()));
148 data.truename_.c_str ()));
150 data.falsename_.c_str ()));
158#ifndef _RWSTD_NO_WCHAR_T
160 const std::numpunct<wchar_t> &wp =
161 std::use_facet<std::numpunct<wchar_t> >(
loc);
163 const wchar_t dp = wp.decimal_point ();
164 const wchar_t ts = wp.thousands_sep ();
165 const std::string grp = wp.grouping ();
166 const std::wstring tn = wp.truename ();
167 const std::wstring fn = wp.falsename ();
172 data.grouping_.c_str ()));
174 data.wtruename_.c_str ()));
176 data.wfalsename_.c_str ()));
213 const std::numpunct<char> &np =
214 std::use_facet<std::numpunct<char> >(
loc);
216 data.grouping_ = np.grouping ();
218 data.decimal_point_ = np.decimal_point ();
219 data.thousands_sep_ = np.thousands_sep ();
221 data.truename_ = np.truename ();
222 data.falsename_ = np.falsename ();
224#ifndef _RWSTD_NO_WCHAR_T
226 const std::numpunct<wchar_t> &wp =
227 std::use_facet<std::numpunct<wchar_t> >(
loc);
229 data.wdecimal_point_ = wp.decimal_point ();
230 data.wthousands_sep_ = wp.thousands_sep ();
232 data.wtruename_ = wp.truename ();
233 data.wfalsename_ = wp.falsename ();
244 "failed to create locale(%#s)",
name);
247 if (nlocales == maxinx || nlocales == std::size_t (
opt_nlocales))
252 rw_fatal (nlocales != 0, 0, __LINE__,
253 "failed to create one or more usable locales!");
256 "testing std::numpunct<charT> with %d thread%{?}s%{;}, "
257 "%d iteration%{?}s%{;} each, in %zu locales { %{ .*A@} }",
260 nlocales,
int (nlocales),
"%#s", locales);
262 rw_info (0, 0, 0,
"exercising std::numpunct<char>");
273 "rw_thread_pool(0, %d, 0, %{#f}, 0) failed",
276#ifndef _RWSTD_NO_WCHAR_T
278 rw_info (0, 0, 0,
"exercising std::numpunct<wchar_t>");
290 "rw_thread_pool(0, %d, 0, %{#f}, 0) failed",
297 "exercising both std::numpunct<char> and std::numpunct<wchar_t>");
308 "rw_thread_pool(0, %d, 0, %{#f}, 0) failed",
318int main (
int argc,
char *argv[])
320#ifdef _RWSTD_REENTRANT
330 return rw_test (argc, argv, __FILE__,
331 "lib.locale.numpunct",
struct NumPunctData punct_data[MAX_THREADS]
void run_test(const ForwardIterator &dummy, T *, Predicate *pred)
const struct @19 locales[]
_TEST_EXPORT int rw_test(int argc, char *argv[], const char *filename, const char *clause, const char *comment, int(*testfun)(int, char **), const char *optspec,...)
_TEST_EXPORT int rw_info(int, const char *, int, const char *,...)
_TEST_EXPORT int rw_fatal(int expr, const char *filename, int line, const char *fmtspec,...)
_TEST_EXPORT int rw_error(int, const char *, int, const char *,...)
_TEST_EXPORT int rw_warn(int, const char *, int, const char *,...)
_TEST_EXPORT int rw_opt_setlocales(int, char *[])
_TEST_EXPORT const char *const & rw_opt_locales
_TEST_EXPORT char * rw_locales(int=_UNUSED_CAT, const char *=0, bool=true)
_TEST_EXPORT int rw_thread_pool(rw_thread_t *, _RWSTD_SIZE_T, rw_thread_attr_t *, rw_thread_proc *, void **, _RWSTD_SIZE_T=0)
_TEST_EXPORT int rw_get_cpus()
_TEST_EXPORT int rw_thread_pool_timeout_expired()
_TEST_EXPORT int rw_strncmp(const char *, const char *, _RWSTD_SIZE_T=_RWSTD_SIZE_MAX, int=CMP_NULTERM)
const char * locale_name_