-
Mark OLESEN authored
- in some circumstances we need to pass a bool value upwards to the caller and know if the true/false value was set based on real input or is a default value. Eg, in the object::read() we might normally have enabled_(dict.readIfPresent(key, true)); but would lose information about why the value is true/false. We can change that by using enabled_(dict.readIfPresent<Switch>(key, Switch::DEFAULT_ON)); After which we can use this information is testing. if ( child.enabled().nonDefault() ? child.enabled() : parent.enabled() ) { ... } And thus enable output if the parent requested it explicitly or by default and it has not been explicitly disabled in the child. No difference when testing as a bool and the text representation of DEFAULT_ON / DEFAULT_OFF will simply be "true" / "false". ENH: add construction of Switch from dictionary (similar to Enum)
fd348374