diff --git a/lmdb-safe.hh b/lmdb-safe.hh index de04d32..fd76086 100644 --- a/lmdb-safe.hh +++ b/lmdb-safe.hh @@ -134,6 +134,16 @@ struct MDBOutVal memcpy(&ret, d_mdbval.mv_data, sizeof(T)); return ret; } + + template + const T* get_struct_ptr() const + { + if(d_mdbval.mv_size != sizeof(T)) + throw std::runtime_error("MDB data has wrong length for type"); + + return reinterpret_cast(d_mdbval.mv_data); + } + MDB_val d_mdbval; };