On Tue, 17 Jan 2023, 21:12 Dimitrij Mijoski via Libstdc++, < libstdc++@gcc.gnu.org> wrote: > Stop using unique_ptr, create some objects directly. > Thanks, I thought about suggesting this, but decided it was good enough. But I'm glad to see the simplifications :-) I'll get this committed. > libstdc++-v3/ChangeLog: > > * testsuite/22_locale/codecvt/codecvt_unicode.cc: Simplify. > * testsuite/22_locale/codecvt/codecvt_unicode.h: Simplify. > * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Simplify. > --- > .../22_locale/codecvt/codecvt_unicode.cc | 18 ++++++++++-------- > .../22_locale/codecvt/codecvt_unicode.h | 9 +-------- > .../codecvt/codecvt_unicode_wchar_t.cc | 12 ++++++------ > 3 files changed, 17 insertions(+), 22 deletions(-) > > diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.cc > b/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.cc > index ae4b6c896..3d7393e4a 100644 > --- a/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.cc > +++ b/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.cc > @@ -29,11 +29,12 @@ test_utf8_utf32_codecvts () > using codecvt_c32 = codecvt; > auto loc_c = locale::classic (); > VERIFY (has_facet (loc_c)); > + > auto &cvt = use_facet (loc_c); > test_utf8_utf32_codecvts (cvt); > > - auto cvt_ptr = to_unique_ptr (new codecvt_utf8 ()); > - test_utf8_utf32_codecvts (*cvt_ptr); > + auto cvt2 = codecvt_utf8 (); > + test_utf8_utf32_codecvts (cvt2); > } > > void > @@ -42,21 +43,22 @@ test_utf8_utf16_codecvts () > using codecvt_c16 = codecvt; > auto loc_c = locale::classic (); > VERIFY (has_facet (loc_c)); > + > auto &cvt = use_facet (loc_c); > test_utf8_utf16_cvts (cvt); > > - auto cvt_ptr = to_unique_ptr (new codecvt_utf8_utf16 ()); > - test_utf8_utf16_cvts (*cvt_ptr); > + auto cvt2 = codecvt_utf8_utf16 (); > + test_utf8_utf16_cvts (cvt2); > > - auto cvt_ptr2 = to_unique_ptr (new codecvt_utf8_utf16 ()); > - test_utf8_utf16_cvts (*cvt_ptr2); > + auto cvt3 = codecvt_utf8_utf16 (); > + test_utf8_utf16_cvts (cvt3); > } > > void > test_utf8_ucs2_codecvts () > { > - auto cvt_ptr = to_unique_ptr (new codecvt_utf8 ()); > - test_utf8_ucs2_cvts (*cvt_ptr); > + auto cvt = codecvt_utf8 (); > + test_utf8_ucs2_cvts (cvt); > } > > int > diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.h > b/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.h > index 99d1a4684..fbdc7a35b 100644 > --- a/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.h > +++ b/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.h > @@ -15,18 +15,11 @@ > // with this library; see the file COPYING3. If not see > // . > > +#include > #include > #include > -#include > #include > > -template > -std::unique_ptr > -to_unique_ptr (T *ptr) > -{ > - return std::unique_ptr (ptr); > -} > - > struct test_offsets_ok > { > size_t in_size, out_size; > diff --git > a/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc > b/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc > index 169504939..f7a0a4fd8 100644 > --- a/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc > +++ b/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc > @@ -27,8 +27,8 @@ void > test_utf8_utf32_codecvts () > { > #if __SIZEOF_WCHAR_T__ == 4 > - auto cvt_ptr = to_unique_ptr (new codecvt_utf8 ()); > - test_utf8_utf32_codecvts (*cvt_ptr); > + auto cvt = codecvt_utf8 (); > + test_utf8_utf32_codecvts (cvt); > #endif > } > > @@ -36,8 +36,8 @@ void > test_utf8_utf16_codecvts () > { > #if __SIZEOF_WCHAR_T__ >= 2 > - auto cvt_ptr = to_unique_ptr (new codecvt_utf8_utf16 ()); > - test_utf8_utf16_cvts (*cvt_ptr); > + auto cvt = codecvt_utf8_utf16 (); > + test_utf8_utf16_cvts (cvt); > #endif > } > > @@ -45,8 +45,8 @@ void > test_utf8_ucs2_codecvts () > { > #if __SIZEOF_WCHAR_T__ == 2 > - auto cvt_ptr = to_unique_ptr (new codecvt_utf8 ()); > - test_utf8_ucs2_cvts (*cvt_ptr); > + auto cvt = codecvt_utf8 (); > + test_utf8_ucs2_cvts (cvt); > #endif > } > > -- > 2.34.1 > > >