1// Copyright (C) 2011-2015 Free Software Foundation, Inc. 2// 3// This file is part of the GNU ISO C++ Library. This library is free 4// software; you can redistribute it and/or modify it under the 5// terms of the GNU General Public License as published by the 6// Free Software Foundation; either version 3, or (at your option) 7// any later version. 8// 9// This library is distributed in the hope that it will be useful, 10// but WITHOUT ANY WARRANTY; without even the implied warranty of 11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12// GNU General Public License for more details. 13// 14// You should have received a copy of the GNU General Public License along 15// with this library; see the file COPYING3. If not see 16// <http://www.gnu.org/licenses/>. 17// 18 19// { dg-do compile } 20// { dg-options "-std=gnu++11" } 21 22#include <set> 23 24struct X 25{ 26 template<typename T> 27 X(T&) {} 28}; 29 30bool operator<(const X&, const X&) { return false; } 31 32// LWG 2059. 33void erasor(std::set<X>& s, X x) 34{ 35 std::set<X>::iterator it = s.find(x); 36 if (it != s.end()) 37 s.erase(it); 38} 39