最近我编写了一系列函数来修剪输入字符串中的前导和尾随空格。由于“空白”的概念依赖于语言环境,我意识到我需要传入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引用传递给所需的方面?
答案 0 :(得分:2)
看看标准库isspace()
实际上是std::isspace(charT, const std::locale&)
的方式,如果你的修剪空白函数也花了const locale&
,我认为它会遵循最小的原则。
但是什么阻止你允许两者?