• [^] # Re: 'mutable' ?

    Posté par . En réponse au message Appeler une méthode non-const à partir de la méthode const homonyme. Évalué à 2. Dernière modification le 09 janvier 2014 à 12:51.

    si il y a plusieurs truc que la moyenne, j'utiliserai un

    private:
    mutable int cached_values=0;

    et pour voir si une valeur est en cache

    if( !( CACHE_MEAN & cached_values ) ) 
     return _mean(); 
    return mean_;

    avec

    float _mean(){ cache_mean_ = sum() / vect.size() ; cached_values |= CACHE_MEAN ; return mean_; }

    et lors de toutes modification du vecteur, cached_values=0;

    Par contre si is_initialised dit juste si le cache est à jour, c'est une variable très mal nommée. Quant à avoir un comportement différent selon qu'on soit const ou pas const (abort ou moyenne), je trouve ça très moyen;

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent