>>780有難うございます。参考にして改造しました。
static U_BOUND_RESULT add_ubound ( float& val, float val_max, float add ) {
    if ( val < val_max ) {
      val += add;
      if ( val >= val_max ) { val = val_max; return MOMENT_FULL; }
      val -= add;
    }
    if ( val >= val_max ) {
      val += add;
      if( val >= val_max ) { val = val_max; return ALREADY_FULL; }
      val -= add;
    }
    if ( val <= 0 ){
      val += add;
      if( val <= 0 ) { val = 0; return ALREADY_DEAD; }
      val -= add;
    }
    if ( val > 0 ){
      val += add;
      if(val <= 0) { val = 0; return MOMENT_DEAD; }
      val -= add;
    }
    val += add ;
    return NORMAL ;
  }
} ;
>>763
if ( MOMENT_FULL == MyFunc::add_ubound (hp, MAX_HP, 10) ) {
  playSound ( ) ;
}
満タンになった瞬間だけ音が鳴るようにしてみたんですがえらく冗長に…