ΠΠ° 6 ΡΠ½ΡΠ°ΡΠΈ Π±Π΅ΡΠ΅ ΠΏΡΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ 4.3.0 Π½Π° Π΅Π΄Π½Π° ΠΎΡ Π½Π°ΠΉ-Π±ΡΡΠ·ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ ΠΈ Π·Π°ΠΏΠΈΡ Π½Π° JSON, Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° C++ (header-only, ΡΡΠ°Π½Π΄Π°ΡΡ C++23) ΠΈ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π°Π½Π° ΠΏΠΎΠ΄ MIT Π»ΠΈΡΠ΅Π½Π·.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠΎΡΠΌΠ°ΡΠΈ CSV ΠΈ BEVE.
Π‘ΠΏΠΈΡΡΠΊ Ρ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΠΎΠ½Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ (ΠΈ ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°) append_arrays, ΠΊΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²Ρ Π΄Π°Π½Π½ΠΈ ΠΊΡΠΌ ΡΠΈΠΏΠΎΠ²Π΅, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° std::vector, Π±Π΅Π· Π΄Π° Π³ΠΈ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ²Π°:
std::vector v{}; constexpr glz::opts append_opts{.append_arrays = true}; expect(not glz::read(v, "[1,2,3]")); expect(v == std::vector{1,2,3}); expect(not glz::read(v, "[4,5,6]")); expect(v == std::vector{1,2,3,4,5,6});
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Eigen.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΡ Π½Π° Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Π² Eigen.
- Π£Π»ΡΡΡΠ΅Π½Π° glz::async_string Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° std::format.
- Π Π΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ Π½Π° Π·Π°ΠΏΠΈΡΠ° Π½Π° map.
- ΠΠΎΠΏΡΠ°Π²ΠΊΠ° Π½Π° always_null_t ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΎΠ±Π΅ΠΊΡΠΈ ΠΈ ΠΏΠΎ-Π±ΡΡΠ· Π·Π°ΠΏΠΈΡ Π½Π° Π²ΠΈΠ½Π°Π³ΠΈ null.
- ΠΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ ΡΠΈΡΠ»ΠΎΠ²ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈ map.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru
