@@ -213,7 +213,7 @@ int main()
213213 std::cout << "conversion failed." << std::endl;
214214 }
215215
216- //リウヴィル数
216+ //リウヴィル数
217217 constexpr double l = 0.11000100000000000000000100000000000;
218218
219219 //(3) 精度・フォーマット指定なしの浮動小数点数変換
@@ -299,77 +299,77 @@ int main()
299299 auto end = std::end(out);
300300
301301 //(1) 10進数文字列へ変換
302- if (auto result = std::to_chars(begin, end, 10)) {
303- std::cout << std::string_view(begin, result. ptr - begin) << std::endl;
302+ if (auto [ ptr, ec ] = std::to_chars(begin, end, 10)) {
303+ std::cout << std::string_view(begin, ptr - begin) << std::endl;
304304 }
305305 else {
306306 std::cout << "conversion failed." << std::endl;
307307 }
308308 //(1) 2進数文字列へ変換
309- if (auto result = std::to_chars(begin, end, 65535, 2)) {
310- std::cout << std::string_view(begin, result. ptr - begin) << std::endl;
309+ if (auto [ ptr, ec ] = std::to_chars(begin, end, 65535, 2)) {
310+ std::cout << std::string_view(begin, ptr - begin) << std::endl;
311311 }
312312 else {
313313 std::cout << "conversion failed." << std::endl;
314314 }
315315 //(1) 36進数文字列へ変換
316- if (auto result = std::to_chars(begin, end, 35, 36)) {
317- std::cout << std::string_view(begin, result. ptr - begin) << std::endl;
316+ if (auto [ ptr, ec ] = std::to_chars(begin, end, 35, 36)) {
317+ std::cout << std::string_view(begin, ptr - begin) << std::endl;
318318 }
319319 else {
320320 std::cout << "conversion failed." << std::endl;
321321 }
322322
323- //リウヴィル数
323+ //リウヴィル数
324324 constexpr double l = 0.11000100000000000000000100000000000;
325325
326326 //(3) 精度・フォーマット指定なしの浮動小数点数変換
327- if (auto result = std::to_chars(begin, end, l)) {
328- std::cout << std::string_view(begin, result. ptr - begin) << std::endl;
327+ if (auto [ ptr, ec ] = std::to_chars(begin, end, l)) {
328+ std::cout << std::string_view(begin, ptr - begin) << std::endl;
329329 }
330330 else {
331331 std::cout << "conversion failed." << std::endl;
332332 }
333333
334334 //(7) 精度指定なしの浮動小数点数変換、指数表記
335- if (auto result = std::to_chars(begin, end, l, std::chars_format::scientific)) {
336- std::cout << std::string_view(begin, result. ptr - begin) << std::endl;
335+ if (auto [ ptr, ec ] = std::to_chars(begin, end, l, std::chars_format::scientific)) {
336+ std::cout << std::string_view(begin, ptr - begin) << std::endl;
337337 }
338338 else {
339339 std::cout << "conversion failed." << std::endl;
340340 }
341341 //(7) 精度指定なしの浮動小数点数変換、固定小数表記
342- if (auto result = std::to_chars(begin, end, l, std::chars_format::fixed)) {
343- std::cout << std::string_view(begin, result. ptr - begin) << std::endl;
342+ if (auto [ ptr, ec ] = std::to_chars(begin, end, l, std::chars_format::fixed)) {
343+ std::cout << std::string_view(begin, ptr - begin) << std::endl;
344344 }
345345 else {
346346 std::cout << "conversion failed." << std::endl;
347347 }
348348 //(7) 精度指定なしの浮動小数点数変換、16進指数表記
349- if (auto result = std::to_chars(begin, end, l, std::chars_format::hex)) {
350- std::cout << std::string_view(begin, result. ptr - begin) << std::endl;
349+ if (auto [ ptr, ec ] = std::to_chars(begin, end, l, std::chars_format::hex)) {
350+ std::cout << std::string_view(begin, ptr - begin) << std::endl;
351351 }
352352 else {
353353 std::cout << "conversion failed." << std::endl;
354354 }
355355
356356 //(11) 精度指定ありの浮動小数点数変換、指数表記
357- if (auto result = std::to_chars(begin, end, l, std::chars_format::scientific, 16)) {
358- std::cout << std::string_view(begin, result. ptr - begin) << std::endl;
357+ if (auto [ ptr, ec ] = std::to_chars(begin, end, l, std::chars_format::scientific, 16)) {
358+ std::cout << std::string_view(begin, ptr - begin) << std::endl;
359359 }
360360 else {
361361 std::cout << "conversion failed." << std::endl;
362362 }
363363 //(11) 精度指定ありの浮動小数点数変換、固定小数表記
364- if (auto result = std::to_chars(begin, end, l, std::chars_format::fixed, 16)) {
365- std::cout << std::string_view(begin, result. ptr - begin) << std::endl;
364+ if (auto [ ptr, ec ] = std::to_chars(begin, end, l, std::chars_format::fixed, 16)) {
365+ std::cout << std::string_view(begin, ptr - begin) << std::endl;
366366 }
367367 else {
368368 std::cout << "conversion failed." << std::endl;
369369 }
370370 //(11) 精度指定ありの浮動小数点数変換、16進指数表記
371- if (auto result = std::to_chars(begin, end, l, std::chars_format::hex, 16)) {
372- std::cout << std::string_view(begin, result. ptr - begin) << std::endl;
371+ if (auto [ ptr, ec ] = std::to_chars(begin, end, l, std::chars_format::hex, 16)) {
372+ std::cout << std::string_view(begin, ptr - begin) << std::endl;
373373 }
374374 else {
375375 std::cout << "conversion failed." << std::endl;
404404- [ ` chars_format ` ] ( ../charconv/chars_format.md )
405405- [ ` to_chars_result ` ] ( ../charconv/to_chars_result.md )
406406- [ ` from_chars ` ] ( ../charconv/from_chars.md )
407+ - [ C++26 条件式での構造化束縛の使用を許可] ( /lang/cpp26/structured_binding_declaration_as_a_condition.md )
408+
407409
408410## 参照
409411- [ P0067R5: Elementary string conversions, revision 5] ( http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0067r5.html )
0 commit comments