Apache C++ Standard Library User's Guide

## 26.7 Using Phone Number Facets

Now that we have laid the groundwork, we are almost ready to format phone numbers. Here is an example of how instances of the new facet class can be used:

    using std::cout;
    using std::endl;
    using std::locale;

    cout.imbue (locale (locale::classic (), new US_phone_put));     //1
    cout << PhoneNumber ("Fr", "1", "60 17 07 16") << endl;
    cout << PhoneNumber ("US", "303", "545-3200") << endl;
    cout.imbue (locale (locale ("Fr"),
                new Fr_phone_put (&myCountryCodes)));               //2
    cout << PhoneNumber ("Allemagne", "89", "636-40938") << endl;   //3

`//1` | Imbue an output stream with a locale object that has a phone number facet object. In the example above, it is the US English ASCII locale with a US phone number facet, and
`//2` | A French locale using a French phone number facet with a particular country code table.
`//3` | Output phone numbers using the inserter function. The output is:
1-33-1-60170716
(303) 545-3200
19 49 89 636 40938