Add a helper function bind_obj
authorChris Lattner <sabre@nondot.org>
Mon, 25 Jun 2001 03:54:32 +0000 (03:54 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 25 Jun 2001 03:54:32 +0000 (03:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Tools/STLExtras.h

index 525f6a014b69574c8d395c5d357de78a01c81861..39bfb4000f12413418ebd6dad21512e3fbe3eb38 100644 (file)
@@ -150,6 +150,22 @@ ValueType reduce_apply2(InputIt First, InputIt Last, Function Func,
 //     Extra additions to <functional>
 //===----------------------------------------------------------------------===//
 
+// bind_obj - Often times you want to apply the member function of an object
+// as a unary functor.  This macro is shorthand that makes it happen less
+// verbosely.
+//
+// Example:
+//  struct Summer { void accumulate(int x); }
+//  vector<int> Numbers;
+//  Summer MyS;
+//  for_each(Numbers.begin(), Numbers.end(),
+//           bind_obj(&MyS, &Summer::accumulate));
+//
+// TODO: When I get lots of extra time, convert this from an evil macro
+//
+#define bind_obj(OBJ, METHOD) std::bind1st(std::mem_fun(METHOD), OBJ)
+
+
 // bitwise_or - This is a simple functor that applys operator| on its two 
 // arguments to get a boolean result.
 //