类模板
<locale>

std::time_put_byname

template <class charT, class OutputIterator = ostreambuf_iterator<charT> >  class time_put_byname;
用于格式化日期和时间的 Facet

time_put_byname 标准 facet 重写了 time_put 的虚成员,以实现其对特定命名 locale 的语义。

其公共接口与 time_put 的相同,只是其构造函数接受一个额外的 std_name 参数。

1
explicit time_put_byname (const char* std_name, size_t refs = 0);
1
2
explicit time_put_byname (const char* std_name, size_t refs = 0);
explicit time_put_byname (const string& std_name, size_t refs = 0);

其中 std_name 是一个C locale 的名称。可用的C locales 取决于系统和库实现,但至少以下几种保证在所有实现中都存在:
区域设置名称描述
"C"最小的“C” locale(与 locale::classic 相同)
""环境的默认 locale

特化

在所有库实现中,至少提供了以下模板的部分特化:
特化
template <class OutputIterator> time_put_byname<char,OutputIterator>
template <class OutputIterator> time_put_byname<wchar_t,OutputIterator>

其中 OutputIterator 应为满足 *输出迭代器* 要求,并且能够遍历指定字符类型的元素。