对于区域设置敏感的函数,传递std :: locale或所需的facet对象更常见吗?

时间:2010-10-07 15:16:44

标签: c++ stl locale coding-style

最近我编写了一系列函数来修剪输入字符串中的前导和尾随空格。由于“空白”的概念依赖于语言环境,我意识到我需要传入const std::ctype<char_t>引用或const std::locale引用,并在std::use_facet<std::ctype<char_t> >上调用const std::locale对象。

在我的库中,我决定传递一个const std::locale引用,因为我认为std::locale对象封装了整个语言环境信息,std::use_facet是特定于库的机制。访问。然而,我开始想知道是否可能更好的选择(可能更常见?)传递const std::ctype<char_t>引用以供函数直接使用。

哪些在区域设置敏感的库中更常见:将const std::locale引用或const引用传递给所需的方面?

1 个答案:

答案 0 :(得分:2)

看看标准库isspace()实际上是std::isspace(charT, const std::locale&)的方式,如果你的修剪空白函数也花了const locale&,我认为它会遵循最小的原则。

但是什么阻止你允许两者?