Поделиться через


Класс 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, valuesymbolи none space либо должно отображаться ровно один раз. Значение none не должно отображаться сначала. Значение space не должно отображаться первым или последним. Если Intl задано значение true, порядок имеет symbolзначение , signnoneзатем 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: ,

См. также

<локаль>
Потокобезопасность в стандартной библиотеке C++