Patchwork [v3] Implement LWG 1240

login
register
mail settings
Submitter Paolo Carlini
Date Oct. 15, 2010, 5:15 p.m.
Message ID <4CB88C44.1050506@oracle.com>
Download mbox | patch
Permalink /patch/67984/
State New
Headers show

Comments

Paolo Carlini - Oct. 15, 2010, 5:15 p.m.
Hi,

tested x86_64-linux, committed.

Paolo.

//////////////////////
2010-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/functional (function<>::operator==, operator!=):
	Remove, per LWG 1240.
	* testsuite/20_util/function/cmp/cmp_neg.cc: Adjust dg-* directives.

Patch

Index: include/std/functional
===================================================================
--- include/std/functional	(revision 165513)
+++ include/std/functional	(working copy)
@@ -2096,12 +2096,6 @@ 
       template<typename _Functor> const _Functor* target() const;
 #endif
 
-      // deleted overloads
-      template<typename _Res2, typename... _ArgTypes2>
-	void operator==(const function<_Res2(_ArgTypes2...)>&) const = delete;
-      template<typename _Res2, typename... _ArgTypes2>
-	void operator!=(const function<_Res2(_ArgTypes2...)>&) const = delete;
-
     private:
       typedef _Res (*_Invoker_type)(const _Any_data&, _ArgTypes...);
       _Invoker_type _M_invoker;
Index: testsuite/20_util/function/cmp/cmp_neg.cc
===================================================================
--- testsuite/20_util/function/cmp/cmp_neg.cc	(revision 165513)
+++ testsuite/20_util/function/cmp/cmp_neg.cc	(working copy)
@@ -1,7 +1,7 @@ 
 // { dg-options "-std=gnu++0x" }
 // { dg-do compile }
 
-// Copyright (C) 2009 Free Software Foundation, Inc.
+// Copyright (C) 2009, 2010 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -26,13 +26,7 @@ 
 {
   std::function<void()> f1;
   std::function<void()> f2;
-  f1 == f2;  // { dg-error "deleted" }
-  f1 != f2;  // { dg-error "deleted" }
+  f1 == f2;  // { dg-error "no match" }
+  f1 != f2;  // { dg-error "no match" }
 }
-
-int main()
-{
-  test01();
-
-  return 0;
-}
+// { dg-excess-errors "candidates are" }