1 //===----------------------------------------------------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 // <map> 10 11 // Check that std::map fails to instantiate if the comparison predicate is 12 // not copy-constructible. This is LWG issue 2436 13 14 #include <map> 15 16 template <class T> 17 struct Comp { 18 bool operator () (const T& lhs, const T& rhs) const { return lhs < rhs; } 19 20 Comp () {} 21 private: 22 Comp (const Comp &); // declared but not defined 23 }; 24 25 26 int main(int, char**) { 27 std::map<int, int, Comp<int> > m; 28 29 return 0; 30 } 31