    uint64_t member1;
    double member2;
    TestStruct() = default;
    TestStruct(uint64_t __member1, double __member2)
      : member1(__member1),
        member2(__member2)
        {}
  };
  Utils::ObjectPool<TestStruct> memory_pool(4, 2);
  for(int i =0; i < 6; i++) {
    Utils::ObjectPool<TestStruct>::Ptr ptr = memory_pool.allocate(i, i + 10);
    ASSERT_NE(ptr.get(), nullptr);
    ASSERT_EQ((ptr.get()->member1), i);
    ASSERT_EQ((ptr.get()->member2), i+ 10);