92878_92947.cc 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // { dg-options "-std=gnu++2a" }
  2. // { dg-do run { target c++2a } }
  3. // Copyright (C) 2020-2022 Free Software Foundation, Inc.
  4. //
  5. // This file is part of the GNU ISO C++ Library. This library is free
  6. // software; you can redistribute it and/or modify it under the
  7. // terms of the GNU General Public License as published by the
  8. // Free Software Foundation; either version 3, or (at your option)
  9. // any later version.
  10. //
  11. // This library is distributed in the hope that it will be useful,
  12. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. // GNU General Public License for more details.
  15. //
  16. // You should have received a copy of the GNU General Public License along
  17. // with this library; see the file COPYING3. If not see
  18. // <http://www.gnu.org/licenses/>.
  19. #include <queue>
  20. #include <testsuite_hooks.h>
  21. struct aggressive_aggregate
  22. {
  23. int a;
  24. int b;
  25. };
  26. void test01()
  27. {
  28. std::queue<aggressive_aggregate> x;
  29. x.emplace(1, 2);
  30. VERIFY(x.back().a == 1);
  31. VERIFY(x.back().b == 2);
  32. x.emplace(1);
  33. VERIFY(x.back().a == 1);
  34. VERIFY(x.back().b == 0);
  35. x.emplace();
  36. VERIFY(x.back().a == 0);
  37. VERIFY(x.back().b == 0);
  38. }
  39. int main()
  40. {
  41. test01();
  42. }