std:: money_put
|
Défini dans l'en-tête
<locale>
|
||
|
template
<
class
CharT,
|
||
La classe
std::money_put
encapsule les règles de formatage des valeurs monétaires en chaînes de caractères. Le manipulateur d'E/S standard
std::put_money
utilise le facette
std::money_put
de la locale du flux d'E/S.
Diagramme d'héritage
Si une spécialisation de
std::money_put
n'est pas garantie d'être fournie par la bibliothèque standard (voir ci-dessous), les comportements de ses fonctions
put()
et
do_put()
ne sont pas garantis comme spécifié.
Table des matières |
Spécialisations
La bibliothèque standard garantit la fourniture des spécialisations suivantes (elles sont requises pour être implémentées par tout objet locale ):
|
Défini dans l'en-tête
<locale>
|
|
| std :: money_put < char > | crée des représentations de chaînes étroites des valeurs monétaires |
| std :: money_put < wchar_t > | crée des représentations de chaînes larges des valeurs monétaires |
En outre, la bibliothèque standard garantit également de fournir chaque spécialisation qui satisfait aux exigences de type suivantes :
-
CharTest l'un des- char ,
- wchar_t , et
- tout autre type de conteneur de caractères défini par l'implémentation qui satisfait aux exigences pour un caractère sur lequel l'un des composants iostream peut être instancié ; et
-
OutputItdoit satisfaire aux exigences de LegacyOutputIterator .
Types imbriqués
| Type | Définition |
char_type
|
CharT
|
string_type
|
std:: basic_string < CharT > |
iter_type
|
OutputIt
|
Membres de données
| Membre | Description |
std::locale::id
id
[static]
|
l'identifiant de la facette |
Fonctions membres
construit un nouveau facet
money_put
(fonction membre publique) |
|
invoque
do_put
(fonction membre publique) |
Fonctions membres protégées
détruit un facet
money_put
(fonction membre protégée) |
|
|
[virtual]
|
formate une valeur monétaire et écrit dans le flux de sortie
(fonction membre virtuelle protégée) |
Exemple
#include <iomanip> #include <iostream> #include <iterator> #include <locale> int main() { // utilisation du manipulateur d'E/S std::cout.imbue(std::locale("en_US.UTF-8")); std::cout << "Locale américaine : " << std::showbase << std::put_money(12345678.9) << '\n'; // utilisation directe du facet std::cout.imbue(std::locale("de_DE.UTF-8")); std::cout << "Locale allemande : "; auto& f = std::use_facet<std::money_put<char>>(std::cout.getloc()); f.put({std::cout}, false, std::cout, std::cout.fill(), 12345678.9); std::cout << '\n'; }
Sortie :
American locale: $123,456.79 German locale: 123.456,79 €
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Applicable à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 427 | C++98 |
money_put
était garanti d'accepter tout
CharT
qui
répond aux exigences pour un caractère sur lequel n'importe quel composant des iostreams peut être instancié |
garantit uniquement d'accepter
char
,
wchar_t et autres types de caractères définis par l'implémentation |
| LWG 2392 | C++98 |
seul le type de caractère
CharT
pouvait être
garanti d'être accepté par
money_put
|
peut garantir d'accepter les types de conteneurs
de caractères définis par l'implémentation |
Voir aussi
|
définit les paramètres de formatage monétaire utilisés par
std::money_get
et
std::money_put
(modèle de classe) |
|
|
analyse et construit une valeur monétaire à partir d'une séquence de caractères d'entrée
(modèle de classe) |
|
|
(C++11)
|
formate et sort une valeur monétaire
(modèle de fonction) |