여기까지 되었다면 간단한 직렬화 함수를 구현하는 작업은 그저 다음과 같이 DataType 인스턴스의 각 MemberVariable을 순회하는 것으로 마무리된다.
void Serialize(MemoryStream* inMemoryStream, const DataType* inDataType, uint8_t* inData) { for (auto& mv : inDataType->GetMemberVariables()) { void* mvData = inData + mv.GetOffset(); switch (mv.GetPrimitiveType()) { case EPT_Int: inMemoryStream->Serialize(*(int*) mvData); break; case EPT_String: inMemoryStream->Serialize(*(std::string*) mvData); break; case EPT_Float: inMemoryStream->Serialize(*(float*) mvData); break; } } }