Major Feature: Volatile Support
- Glaze now supports
volatilequalifiers. This was added for proper serialization/deserialization of hardware registers. - This volatile support includes
glz::metareflection and pure reflection. glz::volatile_arrayhas been added underglaze/hardware/volatile_array.hppglz::volatile_arrayhas the same API asstd::array, but uses volatile memory and provides volatile methods
- JSON pointer syntax access also supports
volatile.
When reading into arithmetic types, we parse into a temporary and then assign, this ensures that side affects from hardware looking at variables will not occur until the parse has completed and the assignment is made.
by @stephenberry in #885, #886, #890, #891
More New Features
- binary support for glz::merge by @stephenberry in #889 (thanks @fregate)
- support for std::filesystem::path by @stephenberry in #892 (thanks @dbraeckelmann)
Full Changelog: v2.3.3...v2.4.0