numpunct Class

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at numpunct Class.

A template class that describes an object that can serve as a local facet to describe the sequences of type CharType used to represent information about the formatting and punctuation of numeric and Boolean expressions.

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

Parameters

CharType
The type used within a program to encode characters in a locale.

As with any locale facet, the static object ID has an initial stored value of zero. The first attempt to access its stored value stores a unique positive value in id.

Constructors

numpunctThe constructor for objects of type numpunct.

Typedefs

char_typeA type that is used to describe a character used by a locale.
string_typeA type that describes a string containing characters of type CharType.

Member Functions

decimal_pointReturns a locale-specific element to use as a decimal point.
do_decimal_pointA protected virtual member function that is called to return a locale-specific element to use as a decimal point.
do_falsenameA protected virtual member function that is called to return a string to use as a text representation of the value false.
do_groupingA protected virtual member function that is called to return a locale-specific rule for determining how digits are grouped to the left of any decimal point.
do_thousands_sepA protected virtual member function that is called to return a locale-specific element to use as a thousands separator.
do_truenameA protected virtual member function that is called to return a string to use as a text representation of the value true.
falsenameReturns a string to use as a text representation of the value false.
groupingReturns a locale-specific rule for determining how digits are grouped to the left of any decimal point.
thousands_sepReturns a locale-specific element to use as a thousands separator.
truenameReturns a string to use as a text representation of the value true.

Header: <locale>

Namespace: std

A type that is used to describe a character used by a locale.

typedef CharType char_type;  

Remarks

The type is a synonym for the template parameter CharType.

Returns a locale-specific element to use as a decimal point.

CharType decimal_point() const;

Return Value

A locale-specific element to use as a decimal point.

Remarks

The member function returns do_decimal_point.

Example

// 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 .  

A protected virtual member function that is called to return a locale-specific element to use as a decimal point.

virtual CharType do_decimal_point() const;

Return Value

A locale-specific element to use as a decimal point.

Example

See the example for decimal_point, where the virtual member function is called by decimal_point.

The protected virtual member function returns a sequence to use as a text representation of the value false.

virtual string_type do_falsename() const;

Return Value

A string containing a sequence to use as a text representation of the value false.

Remarks

The member function returns the string "false" to represent the value false in all locales.

Example

See the example for falsename, where the virtual member function is called by falsename.

A protected virtual member function that is called to return a locale-specific rule for determining how digits are grouped to the left of any decimal point.

virtual string do_grouping() const;

Return Value

A locale-specific rule for determining how digits are grouped to the left of any decimal point.

Remarks

The protected virtual member function returns a locale-specific rule for determining how digits are grouped to the left of any decimal point. The encoding is the same as for lconv::grouping.

Example

See the example for grouping, where the virtual member function is called by grouping.

A protected virtual member function that is called to return a locale-specific element to use as a thousands separator.

virtual CharType do_thousands_sep() const;

Return Value

Returns a locale-specific element to use as a thousands separator.

Remarks

The protected virtual member function returns a locale-specific element of type CharType to use as a group separator to the left of any decimal point.

Example

See the example for thousands_sep, where the virtual member function is called by thousands_sep.

A protected virtual member function that is called to return a string to use as a text representation of the value true.

virtual string_type do_truename() const;

Remarks

A string to use as a text representation of the value true.

All locales return a string "true" to represent the value true.

Example

See the example for truename, where the virtual member function is called by truename.

Returns a string to use as a text representation of the value false.

string_type falsename() const;

Return Value

A string containing a sequence of CharTypes to use as a text representation of the value false.

Remarks

The member function returns the string "false" to represent the value false in all locales.

The member function returns do_falsename.

Example

// 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  

Returns a locale-specific rule for determining how digits are grouped to the left of any decimal point.

string grouping() const;

Return Value

A locale-specific rule for determining how digits are grouped to the left of any decimal point.

Remarks

The member function returns do_grouping.

Example

// 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  

The constructor for objects of type numpunct.

explicit numpunct(size_t _Refs = 0);

Parameters

_Refs
Integer value used to specify the type of memory management for the object.

Remarks

The possible values for the _Refs parameter and their significance are:

  • 0: The lifetime of the object is managed by the locales that contain it.

  • 1: The lifetime of the object must be manually managed.

  • > 0: These values are not defined.

No direct examples are possible, because the destructor is protected.

The constructor initializes its base object with locale::facet( _Refs).

A type that describes a string containing characters of type CharType.

typedef basic_string<CharType, Traits, Allocator> string_type;  

Remarks

The type describes a specialization of template class basic_string whose objects can store copies of the punctuation sequences.

Returns a locale-specific element to use as a thousands separator.

CharType thousands_sep() const;

Return Value

A locale-specific element to use as a thousands separator.

Remarks

The member function returns do_thousands_sep.

Example

// 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 .  

Returns a string to use as a text representation of the value true.

string_type falsename() const;

Return Value

A string to use as a text representation of the value true.

Remarks

The member function returns do_truename.

All locales return a string "true" to represent the value true.

Example

// 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  

<locale>
facet Class
Thread Safety in the C++ Standard Library

Show: