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 // GCC 5 does not evaluate static assertions dependent on a template parameter. 10 // UNSUPPORTED: gcc-5 11 12 // <map> 13 14 // Check that std::multimap fails to instantiate if the comparison predicate is 15 // not copy-constructible. This is LWG issue 2436 16 17 #include <map> 18 19 template <class T> 20 struct Comp { 21 bool operator () (const T& lhs, const T& rhs) const { return lhs < rhs; } 22 23 Comp () {} 24 private: 25 Comp (const Comp &); // declared but not defined 26 }; 27 28 29 int main(int, char**) { 30 std::multimap<int, int, Comp<int> > m; 31 32 return 0; 33 } 34