std:: put_money
|
Défini dans l'en-tête
<iomanip>
|
||
|
template
<
class
MoneyT
>
/*non spécifié*/ put_money ( const MoneyT & mon, bool intl = false ) ; |
(depuis C++11) | |
Lorsqu'il est utilisé dans une expression out << put_money ( mon, intl ) , convertit la valeur monétaire mon en sa représentation caractère telle que spécifiée par le facet std::money_put de la locale actuellement imbriquée dans out .
L'opération d'insertion dans out << put_money ( mon, intl ) se comporte comme une FormattedOutputFunction .
Table des matières |
Paramètres
| mon | - | une valeur monétaire, soit long double ou std::basic_string |
| intl | - | utiliser les chaînes de devises internationales si true , utiliser les symboles monétaires sinon |
Valeur de retour
Un objet de type non spécifié tel que
-
si
out
est un objet de type
std::
basic_ostream
<
CharT, Traits
>
, l'expression
out
<<
put_money
(
mon, intl
)
- a pour type std:: basic_ostream < CharT, Traits > &
- a pour valeur out
- se comporte comme une FormattedOutputFunction qui appelle f ( out, mon, intl )
où la fonction f est définie comme :
template<class CharT, class Traits, class MoneyT> void f(std::basic_ios<CharT, Traits>& str, const MoneyT& mon, bool intl) { using Iter = std::ostreambuf_iterator<CharT, Traits>; using MoneyPut = std::money_put<CharT, Iter>; const MoneyPut& mp = std::use_facet<MoneyPut>(str.getloc()); const Iter end = mp.put(Iter(str.rdbuf()), intl, str, str.fill(), mon); if (end.failed()) str.setstate(std::ios_base::badbit); }
Exemple
#include <iomanip> #include <iostream> int main() { long double mon = 123.45; // or std::string mon = "123.45"; std::cout.imbue(std::locale("en_US.UTF-8")); std::cout << std::showbase << "en_US: " << std::put_money(mon) << " or " << std::put_money(mon, true) << '\n'; std::cout.imbue(std::locale("ru_RU.UTF-8")); std::cout << "ru_RU: " << std::put_money(mon) << " or " << std::put_money(mon, true) << '\n'; std::cout.imbue(std::locale("ja_JP.UTF-8")); std::cout << "ja_JP: " << std::put_money(mon) << " or " << std::put_money(mon, true) << '\n'; }
Sortie possible :
en_US: $1.23 or USD 1.23 ru_RU: 1.23 руб or 1.23 RUB ja_JP: ¥123 or JPY 123
Voir aussi
|
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) |