money_put Sınıfı
Sınıf şablonu, parasal değerlerin türündeki CharType
dizilere dönüştürülmelerini denetlemek için yerel ayar model olarak görev yapabilecek bir nesneyi açıklar.
Sözdizimi
template <class CharType,
class OutputIterator = ostreambuf_iterator<CharType>>
class money_put : public locale::facet;
Parametreler
CharType
Bir program içindeki yerel ayarın karakterlerini kodlamak için kullanılan tür.
OutputIterator
Parasal koyma işlevlerinin kendi çıktılarının yazılacağı yineleyici türü.
Açıklamalar
Herhangi bir yerel ayar modelinde olduğu gibi, statik nesne kimliğinde depolanmış bir başlangıç sıfır değeri bulunur. Depolanan değerine erişmeye yönelik ilk deneme, kimlikte benzersiz bir pozitif değer depolar.
Oluşturucular
Oluşturucu | Açıklama |
---|---|
money_put | türündeki money_put nesneler için oluşturucu. |
Tür tanımları
Tür adı | Açıklama |
---|---|
char_type | Bir yerel ayar tarafından kullanılan bir karakteri tanımlamak için kullanılan tür. |
iter_type | Bir çıkış yineleyiciyi açıklayan tür. |
string_type | türünde karakterler içeren bir dizeyi açıklayan tür CharType . |
Üye işlevleri
Üye işlevi | Açıklama |
---|---|
do_put | Bir sayı ya da dizeyi parasal bir değeri temsil eden bir karakter dizisine dönüştürmek için çağrılan bir sanal işlev. |
koymak | Bir sayı ya da dizeyi parasal bir değeri temsil eden bir karakter dizisine dönüştürür. |
Gereksinimler
Üst bilgi:<yerel ayar>
Ad alanı: std
money_put::char_type
Bir yerel ayar tarafından kullanılan bir karakteri tanımlamak için kullanılan tür.
typedef CharType char_type;
Açıklamalar
Türü, CharType şablon parametresinin eş anlamlısıdır.
money_put::d o_put
Bir sayı ya da dizeyi parasal bir değeri temsil eden bir karakter dizisine dönüştürmek için çağrılan bir sanal işlev.
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;
Parametreler
önümüzdeki
Eklenen dizenin ilk öğesini ele alan bir yineleyici.
_Intl
Dizide beklenen para birimi simgesinin türünü gösteren Boole değeri: true
uluslararasıysa, false
yerelse.
_Iosbase
Ayarlandığında para birimi simgesinin isteğe bağlı olduğunu gösteren biçim bayrağı; aksi takdirde,
_Doldurmak
Aralık için kullanılan bir karakter.
Val
Dönüştürülecek dize nesnesi.
Dönüş Değeri
Çıkış yineleyicisi, üretilen son öğenin ötesindeki konumu giderir.
Açıklamalar
İlk sanal korumalı üye işlevi, string_type nesne değerlerinden parasal bir çıkış alanı oluşturmak için yanından başlayarak sıralı öğeler oluşturur. Val tarafından denetlenen sıra, isteğe bağlı olarak miktarı temsil eden eksi işareti (-) ile bir veya daha fazla ondalık basamakla başlamalıdır. İşlev, oluşturulan parasal çıkış alanının ötesindeki ilk öğeyi gösteren bir yineleyici döndürür.
İkinci sanal korumalı üye işlevi ilk işlevle aynı şekilde davranır, ancak ilk olarak değeri isteğe bağlı olarak eksi işaretinden önce gelen ondalık basamak dizisine dönüştürür ve ardından bu sırayı yukarıdaki gibi dönüştürür.
Parasal çıkış alanının biçimi, moneypunct<CharType, intl>>( iosbase) use_facet<(etkili) çağrısı tarafından döndürülen yerel ayar modeli tarafından belirlenir. getloc).
Özellikle:
öğesine bakın. pos_format, alanın bileşenlerinin olumsuz olmayan bir değer için oluşturulma sırasını belirler.
öğesine bakın. neg_format, alanın bileşenlerinin negatif bir değer için oluşturulma sırasını belirler.
öğesine bakın. curr_symbol, bir para birimi simgesi için oluşturulacak öğe sırasını belirler.
öğesine bakın. positive_sign pozitif bir işaret için oluşturulacak öğe sırasını belirler.
öğesine bakın. negative_sign, negatif bir işaret için oluşturulacak öğe sırasını belirler.
öğesine bakın. gruplandırma , basamakların herhangi bir ondalık noktasının solunda nasıl gruplandırileceğini belirler.
öğesine bakın. thousands_sep herhangi bir ondalık noktasının solundaki basamak gruplarını ayıran öğeyi belirler.
öğesine bakın. decimal_point, herhangi bir kesir basamaklarından tamsayı basamaklarını ayıran öğeyi belirler.
öğesine bakın. frac_digits herhangi bir ondalık noktasının sağındaki önemli kesir basamaklarının sayısını belirler.
İşaret dizesinde ( fac. veya fac. ) birden fazla öğe varsa, yalnızca ilk öğe oluşturulur ve burada money_base::sign öğesine eşit öğe biçim deseninde ( fac. neg_format
veya fac. pos_format
).positive_sign
negative_sign
Kalan öğeler parasal çıkış alanının sonunda oluşturulur.
Iosbase ise. flags & showbase sıfır değil, dizeye yönelik. curr_symbol
money_base::symbol öğesine eşit öğenin biçim deseninde göründüğü yerde oluşturulur. Aksi takdirde, hiçbir para birimi simgesi oluşturulmaz.
Fac tarafından gruplandırma kısıtlaması uygulanmazsa. gruplandırma (ilk öğesi CHAR_MAX değerine sahiptir), ardından fac örneği yoktur. thousands_sep
parasal çıkış alanının değer bölümünde oluşturulur (burada money_base::value öğesine eşit öğe biçim deseninde görüntülenir). Eğer karşılarsa. frac_digits
sıfırdır, ardından bir fac örneği yoktur. decimal_point
ondalık basamakların ardından oluşturulur. Aksi takdirde, sonuçta elde edilen parasal çıkış alanı düşük sıralı bir görünüme yerleştirir. frac_digits
ondalık ayırıcının sağındaki ondalık basamaklar.
Doldurma, iosbase olması dışında herhangi bir sayısal çıkış alanında olduğu gibi gerçekleşir. bayraklar ve iosbase. internal sıfır değildir, money_base::space öğesine eşit olan öğenin biçim deseninde göründüğü herhangi bir iç doldurma oluşturulur( görünürse). Aksi takdirde iç doldurma, oluşturulan diziden önce gerçekleşir. Doldurma karakteri dolgudur.
işlevi iosbase'i çağırır. width(0), alan genişliğini sıfıra sıfırlamak için.
Örnek
Put örneğine bakın. Burada sanal üye işlevi put tarafından çağrılır.
money_put::iter_type
Bir çıkış yineleyiciyi açıklayan tür.
typedef OutputIterator iter_type;
Açıklamalar
Tür, OutputIterator şablon parametresinin eş anlamlısı.
money_put::money_put
türündeki money_put
nesneler için oluşturucu.
explicit money_put(size_t _Refs = 0);
Parametreler
_Refs
Nesne için bellek yönetimi türünü belirtmek için kullanılan tamsayı değeri.
Açıklamalar
_Refs parametresinin olası değerleri ve anlamları şunlardır:
0: Nesnenin ömrü, nesnenin bulunduğu yerel ayarlar tarafından yönetilir.
1: Nesnenin ömrü el ile yönetilmelidir.
> 1: Bu değerler tanımlanmamıştır.
Yıkıcı korunduğundan doğrudan örnek yoktur.
Oluşturucu, temel nesnesini locale::facet( _Refs
ile başlatır.
money_put::p ut
Bir sayı ya da dizeyi parasal bir değeri temsil eden bir karakter dizisine dönüştürür.
iter_type put(
iter_type next,
bool _Intl,
ios_base& _Iosbase,
CharType _Fill,
const string_type& val) const;
iter_type put(
iter_type next,
bool _Intl,
ios_base& _Iosbase,
CharType _Fill,
long double val) const;
Parametreler
önümüzdeki
Eklenen dizenin ilk öğesini ele alan bir yineleyici.
_Intl
Dizide beklenen para birimi simgesinin türünü gösteren Boole değeri: true
uluslararasıysa, false
yerelse.
_Iosbase
Ayarlandığında para birimi simgesinin isteğe bağlı olduğunu gösteren biçim bayrağı; aksi takdirde,
_Doldurmak
Aralık için kullanılan bir karakter.
Val
Dönüştürülecek dize nesnesi.
Dönüş Değeri
Çıkış yineleyicisi, üretilen son öğenin ötesindeki konumu giderir.
Açıklamalar
Her iki üye işlevi de do_put( , , , , val
_Fill
) döndürür. _Iosbase
_Intl
next
Örnek
// money_put_put.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
int main()
{
std::locale loc( "german_germany" );
std::basic_stringstream<char> psz;
psz.imbue(loc);
psz.flags(psz.flags() | std::ios_base::showbase); // force the printing of the currency symbol
std::use_facet<std::money_put<char> >(loc).put(std::basic_ostream<char>::_Iter(psz.rdbuf()), true, psz, ' ', 100012);
if (psz.fail())
std::cout << "money_put() FAILED" << std::endl;
else
std::cout << "money_put() = \"" << psz.rdbuf()->str() << "\"" << std::endl;
}
money_put() = "EUR1.000,12"
money_put::string_type
türünde karakterler içeren bir dizeyi açıklayan tür CharType
.
typedef basic_string<CharType, Traits, Allocator> string_type;
Açıklamalar
türü, nesneleri kaynak dizideki öğe dizilerini depolayan sınıf şablonunun basic_string özelleştirilmesini açıklar.
Ayrıca bkz.
<yerel ayar>
model sınıfı
C++ Standart Kitaplığında İş Parçacığı Güvenliği