c++ - For locale-sensitive functions, is it more common to pass the std::locale or the needed facet object(s)? -
recently wrote family of functions trimming leading , trailing whitespace off of input string. concept of "whitespace" locale-dependent, realized need either pass in const std::ctype<char_t> reference or const std::locale reference , call std::use_facet<std::ctype<char_t> > on const std::locale object.
in library, decided upon passing const std::locale reference because figured std::locale object encapsulated entirety of locale information, , std::use_facet library-specific mechanism of access. however, started wondering whether might better choice (perhaps more common?) pass in const std::ctype<char_t> reference direct use functions.
which more common in locale-sensitive libraries: passing const std::locale reference or const-references needed facets?
seeing how standard library's isspace() std::isspace(chart, const std::locale&), think follow principle of least surprise if trim whitespace functions took const locale&.
but what's stopping allowing both?
Comments
Post a Comment