std::moneyp...,do_grouping(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

πŸ’– NAME πŸ’–

This is the C++ Standard Libary manual page std::moneyp...,do_grouping(3) β€” yes, β€œLibary” is the manual’s typo, not mine 😭. We’re talking about std::moneypunct::grouping,do_grouping today, bestie. Section 3, iykyk.

  • std::moneypunct::grouping,do_grouping - std::moneypunct::grouping,do_grouping β€” the manual repeats it, and honestly? We respect the repetition πŸ’…

✨ Synopsis ✨

Defined in header <locale>:

public:                                  (1)
std::string grouping() const;
protected:                               (2)
virtual std::string do_grouping() const;
  1. Public member function β€” it calls the member function do_grouping of the most derived class. Slay, delegation.
  2. Returns the pattern that determines the grouping of the digits in the monetary output, with the same exact meaning as std::numpunct::do_grouping. Periodt.

πŸ’Έ Return value πŸ’Έ

The object of type std::string holding the groups. The standard specializations of std::moneypunct return an empty string, indicating no grouping.

πŸŽ€ Typical groupings πŸŽ€

Typical groupings (e.g. the en_US locale) return "\003". That’s the whole tea, bestie 🌸


πŸ§ͺ Example πŸ§ͺ

// Run this code

#include <iomanip>
#include <iostream>
#include <iterator>
#include <locale>

struct space_out : std::moneypunct<char>
{
    pattern do_pos_format() const { return {value, none, none, none}; }
    int do_frac_digits() const { return 0; }
    char_type do_thousands_sep() const { return ' '; }
    string_type do_grouping() const { return "\002"; }
};

int main()
{
    std::cout.imbue(std::locale("en_US.UTF-8"));
    std::cout << "american locale: " << std::showbase
              << std::put_money(12345678.0) << '\n';

    std::cout.imbue(std::locale(std::cout.getloc(), new space_out));
    std::cout << "locale with modified moneypunct: "
              << std::put_money(12345678.0) << '\n';
}

Output:

american locale: $123,456.78
locale with modified moneypunct: 12 34 56 78

πŸ‘€ See also πŸ‘€

  • do_thousands_sep β€” provides the character to use as thousands separator [virtual] (virtual protected member function)
  • do_decimal_point β€” provides the character to use as decimal point [virtual] (virtual protected member function)

mwah πŸ’‹ β€” this page is from http://cppreference.com, dated 2024.06.10, and the official manual name is std::moneyp...,do_grouping(3). Bye bestie 🫢

πŸ“¦ where this page comes from