Класс moneypunct
Шаблон класса описывает объект, который может служить аспектом языкового стандарта для описания последовательностей типа CharType , используемых для представления поля денежного ввода или денежного выходного поля. Если параметр шаблона имеет значение true, наблюдаются международные соглашения.
Синтаксис
template <class CharType, bool Intl>
class moneypunct;
Параметры
CharType
Тип, используемый внутри программы для кодирования символов.
Международный
Флаг, указывающий, должны ли соблюдаться международные конвенции.
Замечания
Как и в случае любого другого аспекта языкового стандарта, начальное сохраненное значение статического идентификатора объекта равно нулю. Первая попытка получить доступ к сохраненному значению сохранит уникальное положительное значение в id.
Статический объект const intl хранит значение параметра-шаблона Intl.
Конструкторы
Конструктор | Description |
---|---|
moneypunct | Конструктор объектов типа moneypunct . |
Определения типов
Введите имя | Description |
---|---|
char_type | Тип, используемый для описания символа, используемого языковым стандартом. |
string_type | Тип, описывающий строку, содержащую символы типа CharType . |
Функции элементов
Функция-член | Description |
---|---|
curr_symbol | Возвращает последовательность элементов определенного языкового стандарта для использования в качестве символа валюты. |
decimal_point | Возвращает последовательность элементов определенного языкового стандарта для использования в качестве символа десятичного разделителя. |
do_curr_symbol | Защищенная виртуальная функция-член, которая возвращает последовательность элементов определенного языкового стандарта для использования в качестве символа валюты. |
do_decimal_point | Защищенная виртуальная функция-член, которая вызывается, чтобы возвратить последовательность элементов определенного языкового стандарта для использования в качестве символа десятичного разделителя. |
do_frac_digits | Защищенная виртуальная функция-член возвращает определенное языковым стандартом количество цифр, которое будет отображаться справа от любого десятичного разделителя. |
do_grouping | Защищенная виртуальная функция-член возвращает определенное языковым стандартом правило группирования цифр слева от любого десятичного разделителя. |
do_neg_format | Защищенная виртуальная функция-член вызывается для возвращения определенного языковым стандартом правила форматирования выходных значений, содержащих отрицательные числа. |
do_negative_sign | Защищенная виртуальная функция-член, которая вызывается, чтобы возвратить последовательность элементов определенного языкового стандарта для использования в качестве символа знака отрицательного числа. |
do_pos_format | Защищенная виртуальная функция-член вызывается для возвращения определенного языковым стандартом правила форматирования выходных значений, содержащих положительные числа. |
do_positive_sign | Защищенная виртуальная функция-член, которая вызывается, чтобы возвратить последовательность элементов определенного языкового стандарта для использования в качестве символа знака положительного числа. |
do_thousands_sep | Защищенная виртуальная функция-член, которая вызывается, чтобы возвратить последовательность элементов определенного языкового стандарта для использования в качестве символа разделителя тысяч. |
frac_digits | Возвращает определенное языковым стандартом количество цифр, которое будет отображаться справа от любого десятичного разделителя. |
grouping | Возвращает определенное языковым стандартом правило группирования цифр слева от любого десятичного разделителя. |
neg_format | Возвращает определенное языковым стандартом правило форматирования выходных значений с отрицательными числами. |
negative_sign | Возвращает последовательность элементов определенного языкового стандарта для использования в качестве символа отрицательного числа. |
pos_format | Возвращает определенное языковым стандартом правило форматирования выходных значений с положительными числами. |
positive_sign | Возвращает последовательность элементов определенного языкового стандарта для использования в качестве символа положительного числа. |
thousands_sep | Возвращает последовательность элементов определенного языкового стандарта для использования в качестве символа разделителя тысяч. |
Требования
Заголовок:<языковой стандарт>
Пространство имен: std
moneypunct::char_type
Тип, используемый для описания символа, используемого языковым стандартом.
typedef CharType char_type;
Замечания
Тип является синонимом для параметра-шаблона CharType.
moneypunct::curr_symbol
Возвращает последовательность элементов определенного языкового стандарта для использования в качестве символа валюты.
string_type curr_symbol() const;
Возвращаемое значение
Строка, содержащая символ валюты.
Замечания
Функция-член возвращает do_curr_symbol.
Пример
// moneypunct_curr_symbol.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
locale loc( "german_germany" );
const moneypunct < char, true > &mpunct = use_facet < moneypunct < char, true > >(loc);
cout << loc.name( ) << " international currency symbol "<< mpunct.curr_symbol( ) << endl;
const moneypunct < char, false> &mpunct2 = use_facet < moneypunct < char, false> >(loc);
cout << loc.name( ) << " domestic currency symbol "<< mpunct2.curr_symbol( ) << endl;
};
moneypunct::d ecimal_point
Возвращает последовательность элементов определенного языкового стандарта для использования в качестве символа десятичного разделителя.
CharType decimal_point() const;
Возвращаемое значение
Последовательность элементов определенного языкового стандарта для использования в качестве символа десятичного разделителя.
Замечания
Функция-член возвращает do_decimal_point.
Пример
// moneypunct_decimal_pt.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
locale loc("german_germany");
const moneypunct < char, true > &mpunct = use_facet
< moneypunct < char, true > >(loc);
cout << loc.name( ) << " international decimal point "
<< mpunct.decimal_point( ) << endl;
const moneypunct < char, false> &mpunct2 = use_facet
< moneypunct < char, false> >(loc);
cout << loc.name( ) << " domestic decimal point "
<< mpunct2.decimal_point( ) << endl;
}
German_Germany.1252 international decimal point ,
German_Germany.1252 domestic decimal point ,
moneypunct::d o_curr_symbol
Защищенная виртуальная функция-член, которая возвращает последовательность элементов определенного языкового стандарта для использования в качестве символа валюты.
virtual string_type do_curr_symbol() const;
Возвращаемое значение
Последовательность элементов определенного языкового стандарта для использования в качестве символа десятичного разделителя.
Пример
См. пример для curr_symbol, где виртуальная функция-член вызывается из curr_symbol
.
moneypunct::d o_decimal_point
Защищенная виртуальная функция-член, которая возвращает последовательность элементов определенного языкового стандарта для использования в качестве символа десятичного разделителя.
virtual CharType do_decimal_point() const;
Возвращаемое значение
Последовательность элементов определенного языкового стандарта для использования в качестве символа десятичного разделителя.
Пример
См. пример для decimal_point, где виртуальная функция-член вызывается из decimal_point
.
moneypunct::d o_frac_digits
Защищенная виртуальная функция-член, которая возвращает определенное языковым стандартом количество цифр, которое будет отображаться справа от любого десятичного разделителя.
virtual int do_frac_digits() const;
Возвращаемое значение
Определенное языковым стандартом количество цифр, которое будет отображаться справа от любого десятичного разделителя.
Пример
См. пример для frac_digits, где виртуальная функция-член вызывается из frac_digits
.
moneypunct::d o_grouping
Защищенная виртуальная функция-член, которая возвращает определенное языковым стандартом правило группирования цифр слева от любого десятичного разделителя.
virtual string do_grouping() const;
Возвращаемое значение
Определенное языковым стандартом правило группирования цифр слева от любого десятичного разделителя.
Пример
См. пример группировки, в котором вызывается grouping
функция виртуального члена.
moneypunct::d o_neg_format
Защищенная виртуальная функция-член вызывается для возвращения определенного языковым стандартом правила форматирования выходных значений, содержащих отрицательные числа.
virtual pattern do_neg_format() const;
Возвращаемое значение
Защищенная виртуальная функция-член возвращает определенное языковым стандартом правило формирования денежного поля вывода для отрицательного значения. Каждый из четырех элементов pattern::field
может иметь значения:
none
значение , чтобы соответствовать нулю или большему пространству или создавать ничего.sign
для сопоставления или создания положительного или отрицательного знака.space
Значение , чтобы соответствовать нулю или нескольким пробелам или создавать пространство.symbol
для сопоставления или создания символа валюты.value
для сопоставления или создания денежной стоимости.
Компоненты денежного выходного поля создаются, а компоненты денежного входного поля совпадают в порядке, в котором эти элементы отображаются.pattern::field
Каждое из значений sign
, value
symbol
и none
space
либо должно отображаться ровно один раз. Значение none
не должно отображаться сначала. Значение space
не должно отображаться первым или последним. Если Intl
задано значение true, порядок имеет symbol
значение , sign
none
затем value
.
Версия возвращаемого moneypunct< CharType, Intl >
{money_base::symbol, money_base::sign, money_base::value, money_base::none}
шаблона.
Пример
См. пример для neg_format, где виртуальная функция-член вызывается из neg_format
.
moneypunct::d o_negative_sign
Защищенная виртуальная функция-член, которая вызывается, чтобы возвратить последовательность элементов определенного языкового стандарта для использования в качестве символа знака отрицательного числа.
virtual string_type do_negative_sign() const;
Возвращаемое значение
Последовательность элементов определенного языкового стандарта для использования в качестве символа отрицательного числа.
Пример
См. пример для negative_sign, где виртуальная функция-член вызывается из negative_sign
.
moneypunct::d o_pos_format
Защищенная виртуальная функция-член вызывается для возвращения определенного языковым стандартом правила форматирования выходных значений, содержащих положительные числа.
virtual pattern do_pos_format() const;
Возвращаемое значение
Защищенная виртуальная функция-член возвращает определенное языковым стандартом правило формирования денежного поля вывода для положительного значения. (Он также определяет, как соответствовать компонентам денежно-денежного поля ввода.) Кодировка аналогична do_neg_format.
Версия возвращаемого moneypunct< CharType, Inputlterator >
{ money_base::symbol, money_base::sign, money_base::value, money_base::none }
шаблона.
Пример
См. пример для pos_format, где виртуальная функция-член вызывается из pos_format
.
moneypunct::d o_positive_sign
Защищенная виртуальная функция-член, которая возвращает последовательность элементов определенного языкового стандарта для использования в качестве символа положительного значения.
virtual string_type do_positive_sign() const;
Возвращаемое значение
Последовательность элементов определенного языкового стандарта для использования в качестве символа положительного значения.
Пример
См. пример для positive_sign, где виртуальная функция-член вызывается из positive_sign
.
moneypunct::d o_тысяч_sep
Защищенная виртуальная функция-член, которая возвращает определенный языковым стандартом элемент для использования в качестве разделителя групп цифр слева от любого десятичного разделителя.
virtual CharType do_thousands_sep() const;
Возвращаемое значение
Элемент определенного языкового стандарта для использования в качестве разделителя групп слева от любого десятичного разделителя.
Пример
См. пример для thousands_sep, где виртуальная функция-член вызывается из thousands_sep
.
moneypunct::frac_digits
Возвращает определенное языковым стандартом количество цифр, которое будет отображаться справа от любого десятичного разделителя.
int frac_digits() const;
Возвращаемое значение
Определенное языковым стандартом количество цифр, которое будет отображаться справа от любого десятичного разделителя.
Замечания
Функция-член возвращает do_frac_digits.
Пример
// moneypunct_frac_digits.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
locale loc( "german_germany" );
const moneypunct <char, true> &mpunct =
use_facet <moneypunct <char, true> >(loc);
for (unsigned int i = 0; i <mpunct.grouping( ).length( ); i++ )
{
cout << loc.name( ) << " international grouping:\n the "
<< i <<"th group to the left of the radix character "
<< "is of size " << (int)(mpunct.grouping ( )[i])
<< endl;
}
cout << loc.name( ) << " international frac_digits\n to the right"
<< " of the radix character: "
<< mpunct.frac_digits ( ) << endl << endl;
const moneypunct <char, false> &mpunct2 =
use_facet <moneypunct <char, false> >(loc);
for (unsigned int i = 0; i <mpunct2.grouping( ).length( ); i++ )
{
cout << loc.name( ) << " domestic grouping:\n the "
<< i <<"th group to the left of the radix character "
<< "is of size " << (int)(mpunct2.grouping ( )[i])
<< endl;
}
cout << loc.name( ) << " domestic frac_digits\n to the right"
<< " of the radix character: "
<< mpunct2.frac_digits ( ) << endl << endl;
}
German_Germany.1252 international grouping:
the 0th group to the left of the radix character is of size 3
German_Germany.1252 international frac_digits
to the right of the radix character: 2
German_Germany.1252 domestic grouping:
the 0th group to the left of the radix character is of size 3
German_Germany.1252 domestic frac_digits
to the right of the radix character: 2
moneypunct::grouping
Возвращает определенное языковым стандартом правило группирования цифр слева от любого десятичного разделителя.
string grouping() const;
Возвращаемое значение
Определенное языковым стандартом правило группирования цифр слева от любого десятичного разделителя.
Замечания
Функция-член возвращает do_grouping.
Пример
// moneypunct_grouping.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
locale loc( "german_germany" );
const moneypunct <char, true> &mpunct =
use_facet <moneypunct <char, true> >( loc );
for (unsigned int i = 0; i <mpunct.grouping( ).length( ); i++ )
{
cout << loc.name( ) << " international grouping:\n the "
<< i <<"th group to the left of the radix character "
<< "is of size " << (int)(mpunct.grouping ( )[i])
<< endl;
}
cout << loc.name( ) << " international frac_digits\n to the right"
<< " of the radix character: "
<< mpunct.frac_digits ( ) << endl << endl;
const moneypunct <char, false> &mpunct2 =
use_facet <moneypunct <char, false> >( loc );
for (unsigned int i = 0; i <mpunct2.grouping( ).length( ); i++ )
{
cout << loc.name( ) << " domestic grouping:\n the "
<< i <<"th group to the left of the radix character "
<< "is of size " << (int)(mpunct2.grouping ( )[i])
<< endl;
}
cout << loc.name( ) << " domestic frac_digits\n to the right"
<< " of the radix character: "
<< mpunct2.frac_digits ( ) << endl << endl;
}
German_Germany.1252 international grouping:
the 0th group to the left of the radix character is of size 3
German_Germany.1252 international frac_digits
to the right of the radix character: 2
German_Germany.1252 domestic grouping:
the 0th group to the left of the radix character is of size 3
German_Germany.1252 domestic frac_digits
to the right of the radix character: 2
moneypunct::moneypunct
Конструктор объектов типа moneypunct
.
explicit moneypunct(size_t _Refs = 0);
Параметры
_Refs
Целочисленное значение, используемое для указания типа управления памятью для объекта.
Замечания
Возможные значения параметра _Refs и их значение:
0: время существования объекта управляется языковыми стандартами, которые его содержат.
1: время существования объекта должно управляться вручную.
> 1. Эти значения не определены.
Прямые примеры привести нельзя, так как деструктор защищен.
Конструктор инициализирует свой базовый объект с locale::facet(_ Refs).
moneypunct::neg_format
Возвращает определенное языковым стандартом правило форматирования выходных значений с отрицательными числами.
pattern neg_format() const;
Возвращаемое значение
Определенное языковым стандартом правило форматирования выходных значений с отрицательными числами.
Замечания
Функция-член возвращает do_neg_format.
Пример
// moneypunct_neg_format.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( ) {
locale loc( "german_germany" );
const moneypunct <char, true> &mpunct =
use_facet <moneypunct <char, true > >(loc);
cout << loc.name( ) << " international negative number format: "
<< mpunct.neg_format( ).field[0]
<< mpunct.neg_format( ).field[1]
<< mpunct.neg_format( ).field[2]
<< mpunct.neg_format( ).field[3] << endl;
const moneypunct <char, false> &mpunct2 =
use_facet <moneypunct <char, false> >(loc);
cout << loc.name( ) << " domestic negative number format: "
<< mpunct2.neg_format( ).field[0]
<< mpunct2.neg_format( ).field[1]
<< mpunct2.neg_format( ).field[2]
<< mpunct2.neg_format( ).field[3] << endl;
}
moneypunct::negative_sign
Возвращает последовательность элементов определенного языкового стандарта для использования в качестве символа отрицательного числа.
string_type negative_sign() const;
Возвращаемое значение
Возвращает последовательность элементов определенного языкового стандарта для использования в качестве символа отрицательного числа.
Замечания
Функция-член возвращает do_negative_sign.
Пример
// moneypunct_neg_sign.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
locale loc( "german_germany" );
const moneypunct <char, true> &mpunct =
use_facet <moneypunct <char, true> >(loc);
cout << loc.name( ) << " international negative sign: "
<< mpunct.negative_sign( ) << endl;
const moneypunct <char, false> &mpunct2 =
use_facet <moneypunct <char, false> >(loc);
cout << loc.name( ) << " domestic negative sign: "
<< mpunct2.negative_sign( ) << endl;
locale loc2( "French" );
const moneypunct <char, true> &mpunct3 =
use_facet <moneypunct <char, true> >(loc2);
cout << loc2.name( ) << " international negative sign: "
<< mpunct3.negative_sign( ) << endl;
const moneypunct <char, false> &mpunct4 =
use_facet <moneypunct <char, false> >(loc2);
cout << loc2.name( ) << " domestic negative sign: "
<< mpunct4.negative_sign( ) << endl;
};
German_Germany.1252 international negative sign: -
German_Germany.1252 domestic negative sign: -
French_France.1252 international negative sign: -
French_France.1252 domestic negative sign: -
moneypunct::p os_format
Возвращает определенное языковым стандартом правило форматирования выходных значений с положительными числами.
pattern pos_format() const;
Возвращаемое значение
Определенное языковым стандартом правило форматирования выходных значений с положительными числами.
Замечания
Функция-член возвращает do_pos_format.
Пример
// moneypunct_pos_format.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main() {
locale loc( "german_germany" );
const moneypunct <char, true> &mpunct =
use_facet <moneypunct <char, true> >(loc);
cout << loc.name( ) << " international positive number format: "
<< mpunct.pos_format( ).field[0]
<< mpunct.pos_format( ).field[1]
<< mpunct.pos_format( ).field[2]
<< mpunct.pos_format( ).field[3] << endl;
const moneypunct <char, false> &mpunct2 =
use_facet <moneypunct <char, false> >(loc);
cout << loc.name( ) << " domestic positive number format: "
<< mpunct2.pos_format( ).field[0]
<< mpunct2.pos_format( ).field[1]
<< mpunct2.pos_format( ).field[2]
<< mpunct2.pos_format( ).field[3] << endl;
}
moneypunct::p ositive_sign
Возвращает последовательность элементов определенного языкового стандарта для использования в качестве символа положительного числа.
string_type positive_sign() const;
Возвращаемое значение
Последовательность элементов определенного языкового стандарта для использования в качестве символа положительного числа.
Замечания
Функция-член возвращает do_positive_sign.
Пример
// moneypunct_pos_sign.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
locale loc( "german_germany" );
const moneypunct <char, true> &mpunct =
use_facet <moneypunct <char, true > >(loc);
cout << loc.name( ) << " international positive sign:"
<< mpunct.positive_sign( ) << endl;
const moneypunct <char, false> &mpunct2 =
use_facet <moneypunct <char, false> >(loc);
cout << loc.name( ) << " domestic positive sign:"
<< mpunct2.positive_sign( ) << endl;
locale loc2( "French" );
const moneypunct <char, true> &mpunct3 =
use_facet <moneypunct <char, true> >(loc2);
cout << loc2.name( ) << " international positive sign:"
<< mpunct3.positive_sign( ) << endl;
const moneypunct <char, false> &mpunct4 =
use_facet <moneypunct <char, false> >(loc2);
cout << loc2.name( ) << " domestic positive sign:"
<< mpunct4.positive_sign( ) << endl;
};
German_Germany.1252 international positive sign:
German_Germany.1252 domestic positive sign:
French_France.1252 international positive sign:
French_France.1252 domestic positive sign:
moneypunct::string_type
Тип, который описывает строку, содержащую символы типа CharType.
typedef basic_string<CharType, Traits, Allocator> string_type;
Замечания
Тип описывает специализацию шаблона класса basic_string , объекты которых могут хранить копии последовательностей препинания.
moneypunct::thousands_sep
Возвращает последовательность элементов определенного языкового стандарта для использования в качестве символа разделителя тысяч.
CharType thousands_sep() const;
Возвращаемое значение
Последовательность элементов определенного языкового стандарта для использования в качестве символа разделителя тысяч.
Замечания
Функция-член возвращает do_thousands_sep.
Пример
// moneypunct_thou_sep.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
locale loc( "german_germany" );
const moneypunct <char, true> &mpunct =
use_facet <moneypunct <char, true > >(loc);
cout << loc.name( ) << " international thousands separator: "
<< mpunct.thousands_sep( ) << endl;
const moneypunct <char, false> &mpunct2 =
use_facet <moneypunct <char, false> >(loc);
cout << loc.name( ) << " domestic thousands separator: "
<< mpunct2.thousands_sep( ) << endl << endl;
locale loc2( "english_canada" );
const moneypunct <char, true> &mpunct3 =
use_facet <moneypunct <char, true> >(loc2);
cout << loc2.name( ) << " international thousands separator: "
<< mpunct3.thousands_sep( ) << endl;
const moneypunct <char, false> &mpunct4 =
use_facet <moneypunct <char, false> >(loc2);
cout << loc2.name( ) << " domestic thousands separator: "
<< mpunct4.thousands_sep( ) << endl;
}
German_Germany.1252 international thousands separator: .
German_Germany.1252 domestic thousands separator: .
English_Canada.1252 international thousands separator: ,
English_Canada.1252 domestic thousands separator: ,