std:: money_get
| 
           
           Défini dans l'en-tête
            
         
            
             <locale>
            
           
           | 
         ||
| 
           
           
            
             template
            
            
             <
            
             
         
             
              class
             
             CharT,
               | 
         ||
       Modèle de classe
       
        std::money_get
       
       encapsule les règles d'analyse des valeurs monétaires à partir des flux de caractères. Le manipulateur d'E/S standard
       
        
         std::get_money
        
       
       utilise le facette
       
        std::money_get
       
       de la locale du flux d'E/S.
      
Diagramme d'héritage
       Si une spécialisation de
       
        std::money_get
       
       n'est pas garantie d'être fournie par la bibliothèque standard (voir ci-dessous), les comportements de ses fonctions
       
        
         get()
        
       
       et
       
        
         do_get()
        
       
       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_get < char > | analyse les représentations sous forme de chaînes étroites des valeurs monétaires | 
| std :: money_get < wchar_t > | analyse les représentations sous forme 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
 
 - 
        
InputItdoit satisfaire aux exigences de LegacyInputIterator . 
Types imbriqués
| Type | Définition | 
         
          char_type
         
         | 
        
         
          CharT
         
         | 
       
         
          string_type
         
         | 
        std:: basic_string < CharT > | 
         
          iter_type
         
         | 
        
         
          InputIt
         
         | 
       
Membres de données
| Membre | Description | 
         
          
           
            std::locale::id
           
          
         
         
          id
         
         
          [static]
         
         | 
        l'identifiant de la facette | 
Fonctions membres
         construit un nouveau facet
         
          money_get
         
         (fonction membre publique)  | 
       |
         invoque
         
          do_get
         
         (fonction membre publique)  | 
       
Fonctions membres protégées
         détruit un facet
         
          money_get
         
         (fonction membre protégée)  | 
       |
| 
          
           
            
             
              [virtual]
             
            
           
           
          | 
        
         analyse une valeur monétaire depuis un flux d'entrée
          (fonction membre virtuelle protégée)  | 
       
Exemple
#include <iomanip> #include <iostream> #include <iterator> #include <locale> #include <sstream> int main() { std::string str = "$1.11 $2.22 $3.33"; std::cout << std::fixed << std::setprecision(2); std::cout << '\"' << str << "\" analysé avec le manipulateur d'E/S : "; std::istringstream s1(str); s1.imbue(std::locale("en_US.UTF-8")); long double val; while (s1 >> std::get_money(val)) std::cout << val / 100 << ' '; std::cout << '\n'; str = "USD 1,234.56"; std::cout << '\"' << str << "\" analysé directement avec le facet : "; std::istringstream s2(str); s2.imbue(std::locale("en_US.UTF-8")); auto& f = std::use_facet<std::money_get<char>>(s2.getloc()); std::ios_base::iostate err; std::istreambuf_iterator<char> beg(s2), end; f.get(beg, end, true, s2, err, val); std::cout << val / 100 << '\n'; }
Sortie :
"$1.11 $2.22 $3.33" analysé avec le manipulateur d'E/S : 1.11 2.22 3.33 "USD 1,234.56" analysé directement avec le facet : 1234.56
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 | Appliqué à | Comportement publié | Comportement corrigé | 
|---|---|---|---|
| LWG 427 | C++98 | 
         
          money_get
         
         était garanti d'accepter tout
         
          CharT
         
         qui
         répond aux exigences pour un caractère sur lequel n'importe quel composant iostream peut être instancié  | 
        
         ne garantit que 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_get
         
         | 
        
         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)  | 
       |
| 
         formate une valeur monétaire pour la sortie sous forme de séquence de caractères
          (modèle de classe)  | 
       |
| 
          
           
            
             
              (C++11)
             
            
           
           
          | 
        
         analyse une valeur monétaire
          (modèle de fonction)  |