STD::NUMPUNCT(3)

πŸ“¦
version 16.2.1+r23+gd564253eb6c8 Β· 7 versions
, in arch rolling, centos-stream 10, fedora 43, fedora 44

πŸ’– std::numpunct< _CharT > β€” Library Functions Manual πŸ’–

okay bestie, gather round, because we're about to get intimately familiar with std::numpunct< _CharT >, the primary class template numpunct, straight out of the Library Functions Manual. she's a locale facet, she's a little bit extra, and she is the reason your numbers look cute instead of feral. no cap. πŸŽ€


✨ NAME ✨

std::numpunct< _CharT > β€” Primary class template numpunct.

like, literally the main character of number formatting. πŸ’…


🌸 SYNOPSIS 🌸

#include <locale>

Inherits std::locale::facet.

Inherited by std::numpunct_byname< _CharT >.


πŸ¦‹ Public Types

  • typedef __numpunct_cache< _CharT > __cache_type
  • typedef _CharT char_type β€” Public typedefs. (she said "here's the char type, bestie")
  • typedef basic_string< _CharT > string_type β€” Public typedefs. (and here's the string type πŸ’–)

πŸŽ€ Public Member Functions

  • numpunct (__c_locale __cloc, size_t __refs=0) β€” Internal constructor. Not for general use. 🚫
  • numpunct (__cache_type *__cache, size_t __refs=0) β€” Internal constructor. Not for general use. 🚫
  • numpunct (size_t __refs=0) β€” Numpunct constructor. βœ… the one you're allowed to touch
  • char_type decimal_point () const β€” Return decimal point character.
  • string_type falsename () const β€” Return string representation of bool false.
  • string grouping () const β€” Return grouping specification.
  • char_type thousands_sep () const β€” Return thousands separator character.
  • string_type truename () const β€” Return string representation of bool true.

⭐ Static Public Attributes

  • static locale::id id β€” Numpunct facet id.

πŸ’œ Protected Member Functions

  • virtual ~numpunct () β€” Destructor. πŸ’€
  • void _M_initialize_numpunct (__c_locale __cloc)
  • void _M_initialize_numpunct (__c_locale __cloc) β€” yes, she's listed twice. that's not a typo on my end, the original said it twice, so we're saying it twice. 😭
  • void _M_initialize_numpunct (__c_locale __cloc=0)
  • virtual char_type do_decimal_point () const β€” Return decimal point character.
  • virtual string_type do_falsename () const β€” Return string representation of bool false.
  • virtual string do_grouping () const β€” Return grouping specification.
  • virtual char_type do_thousands_sep () const β€” Return thousands separator character.
  • virtual string_type do_truename () const β€” Return string representation of bool true.

🌈 Static Protected Member Functions

  • static __c_locale _S_clone_c_locale (__c_locale &__cloc) throw ()
  • static void _S_create_c_locale (__c_locale &__cloc, const char *__s, __c_locale __old=0)
  • static void _S_destroy_c_locale (__c_locale &__cloc)
  • static __c_locale _S_get_c_locale ()
  • static const char * _S_get_c_name () throw ()
  • static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const char *__s)

πŸ“ Protected Attributes

  • __cache_type * _M_data

πŸ‘‘ Detailed Description πŸ‘‘

template<typename _CharT>
    class std::numpunct< _CharT >

"Primary class template numpunct.

This facet stores several pieces of information related to printing and scanning numbers, such as the decimal point character. It takes a template parameter specifying the char type. The numpunct facet is used by streams for many I/O operations involving numbers.

The numpunct template uses protected virtual functions to provide the actual results. The public accessors forward the call to the virtual functions. These virtual functions are hooks for developers to implement the behavior they require from a numpunct facet."

so like β€” real talk β€” she's the vibe-keeper of numeric I/O. decimal points? separators? the literal word for true and false? all her. the public accessors are just her repping the virtual functions, and those virtuals are your hooks to customize the whole thing. it's giving "facade with a secret basement". 🏠✨


🧚 Member Typedef Documentation 🧚

template<typename _CharT> typedef _CharT std::numpunct< _CharT >::char_type

Public typedefs.

template<typename _CharT> typedef basic_string<_CharT> std::numpunct< _CharT >::string_type

Public typedefs.


πŸ’– Constructor & Destructor Documentation πŸ’–

template<typename _CharT> std::numpunct< _CharT >::numpunct (size_t __refs = 0) [inline], [explicit]

Numpunct constructor. ✨

Parameters

  • __refs β€” Refcount to pass to the base class.

References std::locale::facet::facet().


template<typename _CharT> std::numpunct< _CharT >::numpunct (__cache_type * __cache, size_t __refs = 0) [inline], [explicit]

Internal constructor. Not for general use. This is a constructor for use by the library itself to set up the predefined locale facets.

Parameters

  • __cache β€” __numpunct_cache object.
  • __refs β€” Refcount to pass to the base class.

References std::locale::facet::facet().

bestie I'm gonna hold your hand while I say this: "Not for general use" means not for general use. this one is the library's own little private thing. don't. πŸ™ˆ

template<typename _CharT> std::numpunct< _CharT >::numpunct (__c_locale __cloc, size_t __refs = 0) [inline], [explicit]

Internal constructor. Not for general use. This is a constructor for use by the library itself to set up new locales.

Parameters

  • __cloc β€” The C locale.
  • __refs β€” Refcount to pass to the base class.

References std::locale::facet::facet().

again: internal. the library sets up new locales with this. that's the assignment. that's the whole assignment. πŸ’€

template<typename _CharT> virtual std::numpunct< _CharT >::~numpunct () [protected], [virtual]

Destructor. rip queen, protected and virtual, as she deserves. 🫢


🌟 Member Function Documentation 🌟

template<typename _CharT> char_type std::numpunct< _CharT >::decimal_point () const [inline]

Return decimal point character. This function returns a char_type to use as a decimal point. It does so by returning returning numpunct<char_type>::do_decimal_point().

Returns

char_type representing a decimal point.

References do_decimal_point().

yes it says "returning returning" in the source, I'm not going to gaslight you about it. 😭

template<typename _CharT> virtual char_type std::numpunct< _CharT >::do_decimal_point () const [inline], [protected], [virtual]

Return decimal point character. Returns a char_type to use as a decimal point. This function is a hook for derived classes to change the value returned.

Returns

char_type representing a decimal point.

Referenced by decimal_point().


template<typename _CharT> virtual string_type std::numpunct< _CharT >::do_falsename () const [inline], [protected], [virtual]

Return string representation of bool false. Returns a string_type containing the text representation for false bool variables. This function is a hook for derived classes to change the value returned.

Returns

string_type representing printed form of false.

Referenced by falsename().


template<typename _CharT> virtual string std::numpunct< _CharT >::do_grouping () const [inline], [protected], [virtual]

Return grouping specification. Returns a string representing groupings for the integer part of a number. This function is a hook for derived classes to change the value returned.

See also

grouping() for details.

Returns

String representing grouping specification.

Referenced by grouping().


template<typename _CharT> virtual char_type std::numpunct< _CharT >::do_thousands_sep () const [inline], [protected], [virtual]

Return thousands separator character. Returns a char_type to use as a thousands separator. This function is a hook for derived classes to change the value returned.

Returns

char_type representing a thousands separator.

Referenced by thousands_sep().


template<typename _CharT> virtual string_type std::numpunct< _CharT >::do_truename () const [inline], [protected], [virtual]

Return string representation of bool true. Returns a string_type containing the text representation for true bool variables. This function is a hook for derived classes to change the value returned.

Returns

string_type representing printed form of true.

Referenced by truename().


template<typename _CharT> string_type std::numpunct< _CharT >::falsename () const [inline]

Return string representation of bool false. This function returns a string_type containing the text representation for false bool variables. It does so by calling numpunct<char_type>::do_falsename().

Returns

string_type representing printed form of false.

References do_falsename().


template<typename _CharT> string std::numpunct< _CharT >::grouping () const [inline]

Return grouping specification. This function returns a string representing groupings for the integer part of a number. Groupings indicate where thousands separators should be inserted in the integer part of a number.

Each char in the return string is interpret as an integer rather than a character. These numbers represent the number of digits in a group. The first char in the string represents the number of digits in the least significant group. If a char is negative, it indicates an unlimited number of digits for the group. If more chars from the string are required to group a number, the last char is used repeatedly.

For example, if the grouping() returns "\003\002" and is applied to the number 123456789, this corresponds to 12,34,56,789. Note that if the string was "32", this would put more than 50 digits into the least significant group if the character set is ASCII.

The string is returned by calling numpunct<char_type>::do_grouping().

Returns

string representing grouping specification.

References do_grouping().

okay this one is genuinely the most unhinged part and I need you to stay with me: each char isn't a char, it's an integer. it's a digit count. first char = least significant group. negative = unlimited digits for that group. run out of chars? last char loops forever. that "\003\002" β†’ 12,34,56,789 example is the whole thing in one screenshot. and "32" on ASCII = 50+ digits in the least significant group. wild. not me being obsessed with a grouping string 😭πŸ”₯

template<typename _CharT> char_type std::numpunct< _CharT >::thousands_sep () const [inline]

Return thousands separator character. This function returns a char_type to use as a thousands separator. It does so by returning returning numpunct<char_type>::do_thousands_sep().

Returns

char_type representing a thousands separator.

References do_thousands_sep().

"returning returning" again. she's consistent. πŸ’…

template<typename _CharT> string_type std::numpunct< _CharT >::truename () const [inline]

Return string representation of bool true. This function returns a string_type containing the text representation for true bool variables. It does so by calling numpunct<char_type>::do_truename().

Returns

string_type representing printed form of true.

References do_truename().


πŸ’Ž Member Data Documentation πŸ’Ž

template<typename _CharT> locale::id std::numpunct< _CharT >::id [static]

Numpunct facet id.


🌸 Author 🌸

Generated automatically by Doxygen for libstdc++ from the source code.


and that's the whole page, bestie!! every single typedef, constructor, virtual hook, static protected helper, and that one protected _M_data pointer β€” all accounted for, nothing skipped, no cap. 🫢✨

this page came to you from the libstdc++ crew β€” that's the source/version, and the page is std::numpunct< _CharT >(3), section 3, library functions. so yeah, shoutout to libstdc++, Doxygen did the auto-generation thing, and this is the std::numpunct< _CharT >(3) manual page, done. mwah. πŸ’‹

πŸ“¦ where this page comes from
  • arch rolling: gcc 16.2.1+r23+gd564253eb6c8-1 Β· GPL-3.0-or-later WITH GCC-exception-3.1 AND GFDL-1.3-or-later
  • centos-stream 10: gcc-toolset-15-libstdc++-docs 15.2.1-8.1.el10 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • centos-stream 10: gcc-toolset-16-libstdc++-docs 16.2.1-1.3.el10 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • centos-stream 10: libstdc++-docs 14.4.1-4.el10 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • fedora 43: libstdc++-docs 15.2.1-2.fc43 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • fedora 43: libstdc++-docs 15.3.1-1.fc43 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • fedora 44: libstdc++-docs 16.0.1-0.10.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • fedora 44: libstdc++-docs 16.2.1-2.fc44
  • fedora 44: libstdc++-docs 16.2.1-3.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms