1 // { dg-do run { target c++11 } } 2 // { dg-require-string-conversions "" } 3 4 // Copyright (C) 2011-2021 Free Software Foundation, Inc. 5 // 6 // This file is part of the GNU ISO C++ Library. This library is free 7 // software; you can redistribute it and/or modify it under the 8 // terms of the GNU General Public License as published by the 9 // Free Software Foundation; either version 3, or (at your option) 10 // any later version. 11 12 // This library is distributed in the hope that it will be useful, 13 // but WITHOUT ANY WARRANTY; without even the implied warranty of 14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 // GNU General Public License for more details. 16 17 // You should have received a copy of the GNU General Public License along 18 // with this library; see the file COPYING3. If not see 19 // <http://www.gnu.org/licenses/>. 20 21 #include <ext/vstring.h> 22 #include <unordered_map> 23 #include <testsuite_hooks.h> 24 25 // libstdc++/47773 test01()26void test01() 27 { 28 typedef __gnu_cxx::__wvstring vstring_t; 29 typedef std::unordered_map<vstring_t, int> map_t; 30 31 map_t mymap; 32 33 mymap.insert(std::make_pair(L"hello", 10)); 34 mymap.insert(std::make_pair(L"hi", 20)); 35 36 VERIFY( mymap.size() == 2 ); 37 38 map_t::const_iterator imap1 = mymap.begin(); 39 map_t::const_iterator imap2 = mymap.begin(); 40 ++imap2; 41 42 VERIFY( ((imap1->first == L"hello" && imap1->second == 10 43 && imap2->first == L"hi" && imap2->second == 20) 44 || (imap1->first == L"hi" && imap1->second == 20 45 && imap2->first == L"hello" && imap2->second == 10)) ); 46 } 47 main()48int main() 49 { 50 test01(); 51 return 0; 52 } 53