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


Класс numpunct

Шаблон класса, описывающий объект, который может служить локальным аспектом для описания последовательностей типов CharType , используемых для представления сведений о форматировании и препинании числовых и логических выражений.

Синтаксис

template <class CharType>
class numpunct : public locale::facet;

Параметры

CharType
Тип, используемый внутри программы для кодирования символов в языковом стандарте.

Замечания

Как и в случае любого другого аспекта языкового стандарта, начальное сохраненное значение статического идентификатора объекта равно нулю. Первая попытка получить доступ к сохраненному значению сохранит уникальное положительное значение в id.

Конструкторы

Конструктор Description
numpunct Конструктор для объектов типа numpunct.

Определения типов

Введите имя Description
char_type Тип, используемый для описания символа, используемого языковым стандартом.
string_type Тип, описывающий строку, содержащую символы типа CharType.

Функции элементов

Функция-член Description
decimal_point Возвращает элемент определенного языкового стандарта для использования в качестве десятичного разделителя.
do_decimal_point Защищенная виртуальная функция-член, которая вызывается, чтобы возвратить элемент определенного языкового стандарта для использования в качестве десятичного разделителя.
do_falsename Защищенная виртуальная функция-член, вызываемая для возврата строки, которая будет использоваться как текстовое представление значения false.
do_grouping Защищенная виртуальная функция-член, вызываемая для того, чтобы возвратить определенное языковым стандартом правило группирования цифр слева от любого десятичного разделителя.
do_thousands_sep Защищенная виртуальная функция-член, которая вызывается, чтобы возвратить элемент определенного языкового стандарта для использования в качестве разделителя тысяч.
do_truename Защищенная виртуальная функция-член, вызываемая для возврата строки, которая будет использоваться как текстовое представление значения true.
falsename Возвращает строку, которая будет использоваться как текстовое представление значения false.
grouping Возвращает определенное языковым стандартом правило группирования цифр слева от любого десятичного разделителя.
thousands_sep Возвращает элемент определенного языкового стандарта для использования в качестве разделителя тысяч.
truename Возвращает строку, которая будет использоваться как текстовое представление значения true.

Требования

Заголовок:<языковой стандарт>

Пространство имен: std

numpunct::char_type

Тип, используемый для описания символа, используемого языковым стандартом.

typedef CharType char_type;

Замечания

Тип является синонимом для параметра-шаблона CharType.

numpunct::d ecimal_point

Возвращает элемент определенного языкового стандарта для использования в качестве десятичного разделителя.

CharType decimal_point() const;

Возвращаемое значение

Элемент определенного языкового стандарта для использования в качестве десятичного разделителя.

Замечания

Функция-член возвращает do_decimal_point.

Пример

// numpunct_decimal_point.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
   locale loc( "german_germany" );

   const numpunct <char> &npunct =
   use_facet <numpunct <char> >( loc);
   cout << loc.name( ) << " decimal point "<<
   npunct.decimal_point( ) << endl;
   cout << loc.name( ) << " thousands separator "
   << npunct.thousands_sep( ) << endl;
};
German_Germany.1252 decimal point ,
German_Germany.1252 thousands separator .

numpunct::d o_decimal_point

Защищенная виртуальная функция-член, которая вызывается, чтобы возвратить элемент определенного языкового стандарта для использования в качестве десятичного разделителя.

virtual CharType do_decimal_point() const;

Возвращаемое значение

Элемент определенного языкового стандарта для использования в качестве десятичного разделителя.

Пример

См. пример для decimal_point, где виртуальная функция-член вызывается из decimal_point.

numpunct::d o_falsename

Функция защищенного виртуального члена возвращает последовательность, используемую в качестве текстового представления значения false.

virtual string_type do_falsename() const;

Возвращаемое значение

Строка, содержащая последовательность, используемая в качестве текстового представления значения false.

Замечания

Функция-член возвращает строку false, представляющую значение false во всех языковых стандартах.

Пример

См. пример для falsename, где виртуальная функция-член вызывается из falsename.

numpunct::d o_grouping

Защищенная виртуальная функция-член, вызываемая для того, чтобы возвратить определенное языковым стандартом правило группирования цифр слева от любого десятичного разделителя.

virtual string do_grouping() const;

Возвращаемое значение

Определенное языковым стандартом правило группирования цифр слева от любого десятичного разделителя.

Замечания

Защищенная виртуальная функция-член возвращает определенное языковым стандартом правило группирования цифр слева от любого десятичного разделителя. Кодирование такое же, как для lconv::grouping.

Пример

См. пример группировки, в котором вызывается groupingфункция виртуального члена.

numpunct::d o_тысяч_sep

Защищенная виртуальная функция-член, которая вызывается, чтобы возвратить элемент определенного языкового стандарта для использования в качестве разделителя тысяч.

virtual CharType do_thousands_sep() const;

Возвращаемое значение

Возвращает элемент определенного языкового стандарта для использования в качестве разделителя тысяч.

Замечания

Функция защищенного виртуального члена возвращает определенный языковой стандарт элемент типа CharType , используемый в качестве разделителя групп слева от любой десятичной запятой.

Пример

См. пример для thousands_sep, где виртуальная функция-член вызывается из thousands_sep.

numpunct::d o_truename

Защищенная виртуальная функция-член, вызываемая для возврата строки, которая будет использоваться как текстовое представление значения true.

virtual string_type do_truename() const;

Замечания

Строка, используемая в качестве текстового представления значения true.

Все языковые стандарта возвращают строку true для представления значения true.

Пример

См. пример для truename, где виртуальная функция-член вызывается из truename.

numpunct::falsename

Возвращает строку, которая будет использоваться как текстовое представление значения false.

string_type falsename() const;

Возвращаемое значение

Строка, содержащая последовательность s, CharTypeиспользуемую в качестве текстового представления значения false.

Замечания

Функция-член возвращает строку false, представляющую значение false во всех языковых стандартах.

Функция-член возвращает do_falsename.

Пример

// numpunct_falsename.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
   locale loc( "English" );

   const numpunct <char> &npunct = use_facet <numpunct <char> >( loc );
   cout << loc.name( ) << " truename "<< npunct.truename( ) << endl;
   cout << loc.name( ) << " falsename "<< npunct.falsename( ) << endl;

   locale loc2( "French" );
   const numpunct <char> &npunct2 = use_facet <numpunct <char> >(loc2);
   cout << loc2.name( ) << " truename "<< npunct2.truename( ) << endl;
   cout << loc2.name( ) << " falsename "<< npunct2.falsename( ) << endl;
}
English_United States.1252 truename true
English_United States.1252 falsename false
French_France.1252 truename true
French_France.1252 falsename false

numpunct::grouping

Возвращает определенное языковым стандартом правило группирования цифр слева от любого десятичного разделителя.

string grouping() const;

Возвращаемое значение

Определенное языковым стандартом правило группирования цифр слева от любого десятичного разделителя.

Замечания

Функция-член возвращает do_grouping.

Пример

// numpunct_grouping.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
   locale loc( "german_germany");

   const numpunct <char> &npunct =
       use_facet < numpunct <char> >( loc );
   for (unsigned int i = 0; i < npunct.grouping( ).length( ); i++)
   {
      cout << loc.name( ) << " international grouping:\n the "
           << i <<"th group to the left of the radix character "
           << "is of size " << (int)(npunct.grouping ( )[i])
           << endl;
   }
}
German_Germany.1252 international grouping:
the 0th group to the left of the radix character is of size 3

numpunct::numpunct

Конструктор для объектов типа numpunct.

explicit numpunct(size_t _Refs = 0);

Параметры

_Refs
Целочисленное значение, используемое для указания типа управления памятью для объекта.

Замечания

Возможные значения параметра _Refs и их значение:

  • 0: время существования объекта управляется языковыми стандартами, которые его содержат.

  • 1: время существования объекта должно управляться вручную.

  • > 1. Эти значения не определены.

Прямые примеры привести нельзя, так как деструктор защищен.

Конструктор инициализирует базовый объект с помощью языкового стандарта::facet(_Refs).

numpunct::string_type

Тип, который описывает строку, содержащую символы типа CharType.

typedef basic_string<CharType, Traits, Allocator> string_type;

Замечания

Тип описывает специализацию шаблона класса basic_string , объекты которых могут хранить копии последовательностей препинания.

numpunct::thousands_sep

Возвращает элемент определенного языкового стандарта для использования в качестве разделителя тысяч.

CharType thousands_sep() const;

Возвращаемое значение

Возвращает элемент определенного языкового стандарта для использования в качестве разделителя тысяч.

Замечания

Функция-член возвращает do_thousands_sep.

Пример

// numpunct_thou_sep.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
   locale loc( "german_germany" );

   const numpunct <char> &npunct =
   use_facet < numpunct < char > >( loc );
   cout << loc.name( ) << " decimal point "<<
   npunct.decimal_point( ) << endl;
   cout << loc.name( ) << " thousands separator "
   << npunct.thousands_sep( ) << endl;
};
German_Germany.1252 decimal point ,
German_Germany.1252 thousands separator .

numpunct::truename

Возвращает строку, которая будет использоваться как текстовое представление значения true.

string_type falsename() const;

Возвращаемое значение

Строка, используемая в качестве текстового представления значения true.

Замечания

Функция-член возвращает do_truename.

Все языковые стандарта возвращают строку true для представления значения true.

Пример

// numpunct_truename.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
   locale loc( "English" );

   const numpunct < char> &npunct = use_facet <numpunct <char> >( loc );
   cout << loc.name( ) << " truename "<< npunct.truename( ) << endl;
   cout << loc.name( ) << " falsename "<< npunct.falsename( ) << endl;

   locale loc2("French");
   const numpunct <char> &npunct2 = use_facet <numpunct <char> >( loc2 );
   cout << loc2.name( ) << " truename "<< npunct2.truename( ) << endl;
   cout << loc2.name( ) << " falsename "<< npunct2.falsename( ) << endl;
}
English_United States.1252 truename true
English_United States.1252 falsename false
French_France.1252 truename true
French_France.1252 falsename false

См. также

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