]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/23_containers/multimap/cons/noexcept_move_construct.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 23_containers / multimap / cons / noexcept_move_construct.cc
CommitLineData
be58e01d 1// { dg-do compile { target c++11 } }
c95bf15b 2
3// 2011-06-01 Paolo Carlini <paolo.carlini@oracle.com>
4//
fbd26352 5// Copyright (C) 2011-2019 Free Software Foundation, Inc.
c95bf15b 6//
7// This file is part of the GNU ISO C++ Library. This library is free
8// software; you can redistribute it and/or modify it under the
9// terms of the GNU General Public License as published by the
10// Free Software Foundation; either version 3, or (at your option)
11// any later version.
12//
13// This library is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16// GNU General Public License for more details.
17//
18// You should have received a copy of the GNU General Public License along
19// with this library; see the file COPYING3. If not see
20// <http://www.gnu.org/licenses/>.
21
22#include <map>
23
24typedef std::multimap<int, int> mmtype;
25
9ac6bbfc 26static_assert( std::is_nothrow_move_constructible<mmtype>::value,
27 "noexcept move constructor" );
28static_assert( std::is_nothrow_constructible<mmtype,
29 mmtype&&, const typename mmtype::allocator_type&>::value,
30 "noexcept move constructor with allocator" );
31
32struct not_noexcept_less
33{
34 not_noexcept_less() = default;
35 not_noexcept_less(const not_noexcept_less&) /* noexcept */
36 { }
37
38 bool
39 operator()(int l, int r) const
40 { return l < r; }
41};
42
43typedef std::multimap<int, int, not_noexcept_less> emmtype;
44
45static_assert( !std::is_nothrow_constructible<emmtype, emmtype&&,
46 const typename emmtype::allocator_type&>::value,
47 "except move constructor with allocator" );