Skip to content
  • Mark OLESEN's avatar
    ENH: add 'default' as possible Switch state, but not as input/output · fd348374
    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