1*7a6aaf9bSLouis Dionne //===----------------------------------------------------------------------===//
2*7a6aaf9bSLouis Dionne //
3*7a6aaf9bSLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*7a6aaf9bSLouis Dionne // See https://llvm.org/LICENSE.txt for license information.
5*7a6aaf9bSLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*7a6aaf9bSLouis Dionne //
7*7a6aaf9bSLouis Dionne //===----------------------------------------------------------------------===//
8*7a6aaf9bSLouis Dionne 
9*7a6aaf9bSLouis Dionne // <map>
10*7a6aaf9bSLouis Dionne 
11*7a6aaf9bSLouis Dionne // class multimap
12*7a6aaf9bSLouis Dionne 
13*7a6aaf9bSLouis Dionne //       iterator upper_bound(const key_type& k);
14*7a6aaf9bSLouis Dionne // const_iterator upper_bound(const key_type& k) const;
15*7a6aaf9bSLouis Dionne //
16*7a6aaf9bSLouis Dionne //   The member function templates find, count, lower_bound, upper_bound, and
17*7a6aaf9bSLouis Dionne // equal_range shall not participate in overload resolution unless the
18*7a6aaf9bSLouis Dionne // qualified-id Compare::is_transparent is valid and denotes a type
19*7a6aaf9bSLouis Dionne 
20*7a6aaf9bSLouis Dionne 
21*7a6aaf9bSLouis Dionne #include <map>
22*7a6aaf9bSLouis Dionne #include <cassert>
23*7a6aaf9bSLouis Dionne 
24*7a6aaf9bSLouis Dionne #include "test_macros.h"
25*7a6aaf9bSLouis Dionne #include "is_transparent.h"
26*7a6aaf9bSLouis Dionne 
27*7a6aaf9bSLouis Dionne #if TEST_STD_VER <= 11
28*7a6aaf9bSLouis Dionne #error "This test requires is C++14 (or later)"
29*7a6aaf9bSLouis Dionne #else
30*7a6aaf9bSLouis Dionne 
main(int,char **)31*7a6aaf9bSLouis Dionne int main(int, char**)
32*7a6aaf9bSLouis Dionne {
33*7a6aaf9bSLouis Dionne     {
34*7a6aaf9bSLouis Dionne     typedef std::multimap<int, double, transparent_less_private> M;
35*7a6aaf9bSLouis Dionne 
36*7a6aaf9bSLouis Dionne     TEST_IGNORE_NODISCARD M().upper_bound(C2Int{5});
37*7a6aaf9bSLouis Dionne     }
38*7a6aaf9bSLouis Dionne }
39*7a6aaf9bSLouis Dionne #endif
40