From 7da75c5a40ca8e433abb9cd9cb337b067a86d5da Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Wed, 5 Dec 2007 00:13:07 +0000 Subject: [PATCH] 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 --- include/llvm/Bitcode/Serialize.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/include/llvm/Bitcode/Serialize.h b/include/llvm/Bitcode/Serialize.h index 7b6d8226a08..b0b39de3b79 100644 --- a/include/llvm/Bitcode/Serialize.h +++ b/include/llvm/Bitcode/Serialize.h @@ -37,6 +37,17 @@ public: template inline void Emit(const T& X) { SerializeTrait::Emit(*this,X); } + template + struct Emitter { + Serializer &S; + + Emitter(Serializer& s) : S(s) {} + void operator()(const T& x) const { S.Emit(x); } + }; + + template + Emitter MakeEmitter() { return Emitter(*this); } + void EmitInt(uint64_t X); void EmitSInt(int64_t X); -- 2.34.1