Hi, no sure if this is already known but I just shot myself in the foot with this one:
PropertySet::setValue("myflag", false) does not have the same behaviour on windows and linux/macos.
There are two overloads for setValue:
void setValue (StringRef keyName, const var& value);
void setValue (StringRef keyName, const XmlElement* xml);
On macOS and Linux, the first one is called , and value.isBool() is true. When saved into a string it stores “0”
On windows (at least with my version of cl.exe from msvc 2022) it calls the second overload, with a nullptr XmlElement*.. which is then calling the first one with an empty var(). So it is saved as an empty string.
In most of the cases I think this is of no consequence as the empty string is cast into false when using getBoolValue. But I was doing some funky stuff which was not expecting this difference between windows and the others..