From 3704c8cfff18518924e2e7206a16b0b12f783d7e Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 25 Jun 2001 03:54:32 +0000 Subject: [PATCH] Add a helper function bind_obj git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Tools/STLExtras.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/include/llvm/Tools/STLExtras.h b/include/llvm/Tools/STLExtras.h index 525f6a014b6..39bfb4000f1 100644 --- a/include/llvm/Tools/STLExtras.h +++ b/include/llvm/Tools/STLExtras.h @@ -150,6 +150,22 @@ ValueType reduce_apply2(InputIt First, InputIt Last, Function Func, // Extra additions to //===----------------------------------------------------------------------===// +// 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 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. //