From 7da75c5a40ca8e433abb9cd9cb337b067a86d5da Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Wed, 5 Dec 2007 00:13:07 +0000 Subject: 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(+) (limited to 'include/llvm/Bitcode') 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 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); -- cgit v1.2.3-70-g09d2