Récemment, j'ai écrit une famille de fonctions pour rogner les espaces avant et arrière d'une chaîne d'entrée. Comme le concept de "espace" est dépendant des paramètres régionaux, je me suis rendu compte que je devrais passer soit une référence const std::ctype<char_t>
ou une référence et appeler std::use_facet<std::ctype<char_t> >
sur l'objet .Pour les fonctions sensibles aux paramètres régionaux, est-il plus courant de transmettre le paramètre std :: locale ou le ou les objets facettes nécessaires?
Dans ma bibliothèque, j'ai décidé à passer une référence const std::locale
parce que je pensais que l'objet std::locale
encapsulé l'ensemble des informations locales, et que le mécanisme std::use_facet
était spécifique à la bibliothèque d'accès. Cependant, j'ai alors commencé à me demander si cela pourrait être un meilleur choix (peut-être plus commun?) De passer la référence const std::ctype<char_t>
pour une utilisation directe par les fonctions.
Ce qui est plus commun dans les bibliothèques sensibles aux paramètres régionaux: transmettre la référence const std::locale
ou const-références aux facettes nécessaires?