代码之家  ›  专栏  ›  技术社区  ›  Daniel Trebbien

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

  •  2
  • Daniel Trebbien  · 技术社区  · 15 年前

    最近,我编写了一系列函数,用于修剪输入字符串的前导空格和尾随空格。由于“空白”的概念依赖于区域设置,我意识到我需要传递 const std::ctype<char_t> 参考或A const std::locale 参考和调用 std::use_facet<std::ctype<char_t> > const std::区域设置 对象。

    在我的图书馆,我决定通过 const std::区域设置 因为我认为 std::locale 对象封装了整个区域设置信息,并且 std::use_facet 是特定于库的访问机制。然而,我开始怀疑这是否是一个更好的选择(也许更常见?)通过 const std::ctype<char_t> 供函数直接使用的参考。

    这在区分区域设置的库中更常见:传递 const std::区域设置 引用还是常量引用所需的方面?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Cubbi    15 年前

    看看标准库的 isspace() 实际上是 std::isspace(charT, const std::locale&) ,我认为如果您的trim whitespace函数也采用 const locale& .

    但是什么阻止了你允许这两个?