Bibliothèque C ++ Ostream - sentry

La description

Il est utilisé pour préparer le flux pour la sortie. Toutes les fonctions membres qui exécutent une opération de sortie construisent automatiquement un objet de cette classe, puis l'évaluent (ce qui renvoie true si aucun indicateur d'état n'a été défini). Seulement si cet objet a la valeur true, la fonction tente l'opération de sortie (sinon, elle retourne sans l'exécuter). Avant de revenir, la fonction détruit l'objet sentinelle.

Déclaration

Voici la déclaration de std :: basic_ostream :: sentry.

C ++ 98

class sentry {
   public:
      explicit sentry (basic_ostream& os);
      ~sentry();
      operator bool() const;
   private:
      sentry (const sentry&);
      sentry& operator= (const sentry&);
};

C ++ 11

class sentry {
   public:
      explicit sentry (basic_ostream& os);
      ~sentry();
      explicit operator bool() const;
      sentry (const sentry&) = delete;
      sentry& operator= (const sentry&) = delete;
};

Membres

  • explicit sentry (basic_istream& is, bool noskipws = false); - Prépare le flux de sortie pour une opération de sortie, en exécutant les actions décrites ci-dessus.

  • ~sentry(); - N'effectue aucune opération (définie par l'implémentation).

  • explicit operator bool() const; - Lorsque l'objet est évalué, il renvoie une valeur booléenne indiquant si le constructeur sentinelle a exécuté avec succès toutes ses tâches: Si à un moment donné du processus de construction, un indicateur d'erreur interne a été défini, cette fonction renvoie toujours false pour cet objet.