diff options
-rw-r--r-- | include/llvm/Tools/STLExtras.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/include/llvm/Tools/STLExtras.h b/include/llvm/Tools/STLExtras.h index 525f6a014b..39bfb4000f 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 <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. // |