4

有没有办法检查(最好在编译时或配置时)Boost.Locale 库是否在编译时支持特定后端(即 ICU)?

4

1 回答 1

2

Boost.Locale 提供了这个

std::vector<std::string> boost::locale::localization_backend_manager::get_all_backends() const

这将列出所有可用的后端。例如,

localization_backend_manager lbm = localization_backend_manager::global();
auto s = lbm.get_all_backends();
for_each(s.begin(), s.end(), [](string& x){ cout << x << endl; });

将打印

icu
winapi
std

如果 Boost.Locale 不是在 ICU 支持下构建的,它将只列出最后两行。

您可以在配置脚本中使用它并编译一个接受后端作为参数的 .cpp 并检查它是否受支持。

于 2013-09-01T16:09:26.677 回答