CppCon 2018 has ended
Back To Schedule
Wednesday, September 26 • 15:50 - 16:20
Datum: A Trivially Constructible, Bitwise Copyable Compact Value-semantic Variant Type

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Datum is a value-semantic variant type used at Bloomberg. It has trivial construction, destruction, copy-construction and copy-assignment semantics. It encodes values of many frequently used types, such as doubles, integers, Booleans, and pointers inside a double value on a 32 bit platform without requiring any memory allocations. Values of more complex types like strings and arrays are allocated on the heap and a pointer to the memory is stored inside the Datum.

Due to Datum's compact representation, it reduces the memory footprint of applications. Datum's trivial initialization and copy semantics ensure that there is a negligible cost to default-constructing and moving around a large number of such objects, thus reducing the overall CPU usage of applications. In this talk, we will look into the implementation of Datum and benchmarks comparing Datum with a few other variant types.

avatar for Rishi Wani

Rishi Wani

Senior Software Engineer, Bloomberg
Rishi is a senior software engineer at Bloomberg. He has been programming in C++ since 2002.

Wednesday September 26, 2018 15:50 - 16:20 PDT
Steamboat (403)
  • Type Design