Is it possible to somehow change the concept of uninitialized values to something like 'zeroOrOne' instead of 'null'?

  Instrument instrument1 = new Instrument();
  Instrument instrument2 = new Instrument();

  zeroOrOne!Instrument getInstrument() {
          zeroOrOne!Instrument instrument;
          if( instrument1.power > 10 ) instrument = instrument1;
          else if( instrument2.power > 5 ) instrument = instrument2;
          return instrument;
  }

  //zeroOrOne!Instrument instead of 'InstrumentOrNull'
  auto instrument = getInstrument();

  /*1*/ instrument.setPower( 20.4f );
  /*2*/ instrument.doit();

  /*3*/ instrument1.setPower = 20;

  instrument = getInstrument();
  /*4*/ instrument.doit();
  /*5*/ instrument.setPower( 20.4f );

  /*
  1: opDispatch: setPower
  2: opDispatch: doit

  3: Instrument.setPower: 20

  4: opDispatch: doit
  4: Instrument.doit;
  5: opDispatch: setPower
  5: Instrument.setPower: 20.4
  */

Reply via email to