2010-10-07 27 views
2

最近,我編寫了一系列用於修剪輸入字符串的前導空白和尾隨空白的函數。由於「空格」的概念與語言環境有關,因此我意識到我需要通過const std::ctype<char_t>參考或const std::locale參考並在const std::locale對象上調用std::use_facet<std::ctype<char_t> >對於語言環境敏感的函數,傳遞std :: locale或所需的facet對象是否更常見?

在我的圖書館,我決定在傳遞一個參考const std::locale因爲我想,所述std::locale對象封裝的區域設置信息的完整內容,並且std::use_facet是存取的庫特定的機制。然而,我開始想知道這是否是一個更好的選擇(可能更常見?)來傳遞const std::ctype<char_t>參考文獻以供函數直接使用。

哪些在區域敏感庫中更常見:將const std::locale引用或const引用傳遞給所需的構面?

回答

2

看看標準庫的isspace()實際上是std::isspace(charT, const std::locale&),如果你的修剪空白函數也花費了const locale&,我會認爲它會遵循最少驚喜的原則。

但是,什麼阻止你允許兩個?

相關問題