Partager via


money_put::do_put

Fonction virtuelle appelée pour convertir un nombre ou une chaîne en une séquence de caractères représentant une valeur monétaire.

virtual iter_type do_put(
    iter_type _Next, 
    bool _Intl, 
    ios_base& _Iosbase,
    CharType _Fill, 
    const string_type& _Val
) const;
virtual iter_type do_put(
    iter_type _Next, 
    bool _Intl, 
    ios_base& _Iosbase,
    CharType _Fill,
    long double _Val
) const;

Paramètres

  • _Next
    Un itérateur traitant le premier élément de la chaîne insérée.

  • _Intl
    Valeur booléenne qui indique le type de symbole monétaire attendu dans la séquence : true si international false si national.

  • _Iosbase
    Un indicateur de format qui, lorsque il est activé, indique que le symbole monétaire est facultatif ; sinon, il est requis.

  • _Fill
    Caractère utilisé pour espacer.

  • _Val
    ALa chaîne à convertir.

Valeur de retour

Un itérateur de sortie qui s'adresse à la position juste après le dernier élément produit.

Notes

La première fonction membre virtuelle génère des éléments séquentiels commençant à _Next pour produire un champ de sortie monétaire à partir de l'objet _Valstring_type. La séquence contrôlée par _Val doit commencer par un ou plusieurs chiffres décimaux, éventuellement précédés du signe moins (–), qui représente la durée. La fonction retourne un itérateur indiquant le premier élément au delà du champ de sortie monétaire généré.

La deuxième fonction membre virtuelle se comporte de la même manière que la première, sauf qu'elle convertit en premier _Val en une séquence de chiffres décimaux, éventuellement précédée d'un signe moins, puis la séquence comme ci-dessus.

Le format d'un champ de sortie monétaire est déterminé par la facette de paramètres régionaux fac retournée par l'appel effectif <use_facet<moneypunctCharType, >intl>**(**iosbase.getloc).

Plus précisément :

  • fac.pos_format détermine l'ordre dans lequel les composants du champ sont générés pour une valeur non négative.

  • fac.neg_format détermine l'ordre dans lequel les composants du champ sont générés pour une valeur négative.

  • fac.curr_symbol détermine la séquence d'éléments à générer pour un symbole monétaire.

  • fac.positive_sign détermine la séquence d'éléments à générer pour un signe positif.

  • fac.negative_sign détermine la séquence d'éléments à générer pour un signe négatif.

  • fac.grouping détermine comment les données sont regroupées à gauche de toute virgule décimale.

  • fac.thousands_sep détermine l'élément qui sépare les groupes de chiffres à gauche de toute virgule décimale.

  • fac.decimal_point détermine l'élément qui sépare les chiffres entiers de tous chiffres rationnels.

  • fac.frac_digits détermine le nombre de chiffres de fraction importante à droite de toute virgule décimale.

Si la chaîne de signe (fac.negative_sign ou fac.positive_sign) a plus d'un élément, seul le premier élément est généré où l'élément égal à money_base::sign apparaît dans le modèle de format (fac.neg_format or fac.pos_format). Tous les éléments restants sont générés à la fin du champ de sortie monétaire.

If iosbase.flags &showbase est différent de zéro, la chaîne fac.curr_symbol est génére là où l'élément égal à money_base::symbol apparaît dans le modèle de format. Sinon, aucun symbole monétaire n'est généré.

Si aucune contrainte de regroupement n'est imposée par fac.grouping (son premier élément a la valeur CHAR_MAX), alors les instances de fac.thousands_sep sont générées dans la partie de la valeur du champ de sortie monétaire (où l'élément égal à money_base::value apparaît dans le modèle de format). Si fac.frac_digits est zéro, aucune instance de fac.decimal_point n'est générée après les chiffres décimaux. Sinon, le champ de sortie monétaire résultant place les chiffresdécimaux d'ordre faible fac.frac_digits à droite de la virgule décimale.

L'alimentation se produit pour tout champ de sortie numérique, sauf si iosbase.flags & iosbase.internal est différente de zéro, tout remplissage interne est généré où l'élément égal à money_base::space apparaît dans le modèle de format, s'il apparaît. Sinon, le remplissage interne se produit avant la séquence générée. Le caractère de remplissage est fill.

Lafonctiona appelle iosbase.width(0) pour ré-initiliser la largeur du champ à zéro.

Exemple

Consultez l'exemple de put, où la fonction membre virtuelle est appelée par put.

Configuration requise

En-tête : <locale>

Espace de noms : std

Voir aussi

Référence

money_put, classe