Skip to content

Version 1.1.0

Choose a tag to compare

@StormBytePP StormBytePP released this 13 Sep 19:34
· 96 commits to master since this release

[Summary]

StormByte Config is the configuration-document module of the StormByte C++ suite.

It depends on StormByte Base. This repository is not Base, Buffer, Crypto, Database, Logger, Multimedia, Network or System.

Public headers under StormByte/config/ cover text and versioned binary documents: values, groups, lists, comments, hooks and Save / Load.

If you landed here from a release link and have not read the tree:

  • What this module is, how to build it, and short examples: README.md
  • License: GNU Lesser General Public License version 3 or later, LICENSE

Added

  • Add pointer overloads: Added Add(Base::PointerType) overloads to Config and Container for direct item pointer insertion.

Fixed

  • Container path exception safety: Prevented stock C++ exception leaks (std::out_of_range, std::invalid_argument) when looking up or removing numeric or malformed container paths, throwing StormByte::Config::OutOfBounds or StormByte::Config::InvalidPath instead.
  • Double precision serialization: Switched Value<double>::Serialize to std::format for full floating-point precision and ensured integer-like floating point values maintain a .0 suffix so they are recognized as Double tokens by the parser.
  • Container null item protection: Added null pointer check at the start of Container::Add to prevent null pointer dereferences when propagating container policies.

Changed

  • Exception handling: Ported StormByte::Config::Exception constructors to pass StormByte::Component("Config") introduced in StormByte Base 1.1.0, automatically formatting exception messages with StormByte::Config: .
  • Dependencies: Requires StormByte Base ≥ 1.1.0.
  • Type traits: Replaced stock C++ type traits (std::is_same_v, std::is_base_of_v) with StormByte flavor equivalents (StormByte::Type::SameAs, StormByte::Type::DerivedFrom).