diff options
author | Ted Kremenek <kremenek@apple.com> | 2007-12-05 00:13:07 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2007-12-05 00:13:07 +0000 |
commit | 7da75c5a40ca8e433abb9cd9cb337b067a86d5da (patch) | |
tree | 7ad62c5050ac4dffe1337850f37075772c7660fe /include/llvm/Bitcode | |
parent | dd86ce3d570a77f90d6d2ccb6dde8d1fef35e094 (diff) |
Added "Emitter" functor to allow easy emitting of elements of a container
using std::for_each.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44589 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Bitcode')
-rw-r--r-- | include/llvm/Bitcode/Serialize.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/llvm/Bitcode/Serialize.h b/include/llvm/Bitcode/Serialize.h index 7b6d8226a0..b0b39de3b7 100644 --- a/include/llvm/Bitcode/Serialize.h +++ b/include/llvm/Bitcode/Serialize.h @@ -37,6 +37,17 @@ public: template <typename T> inline void Emit(const T& X) { SerializeTrait<T>::Emit(*this,X); } + template <typename T> + struct Emitter { + Serializer &S; + + Emitter(Serializer& s) : S(s) {} + void operator()(const T& x) const { S.Emit(x); } + }; + + template <typename T> + Emitter<T> MakeEmitter() { return Emitter<T>(*this); } + void EmitInt(uint64_t X); void EmitSInt(int64_t X); |