using std::for_each.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44589
91177308-0d34-0410-b5e6-
96231b3b80d8
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);