针对特定后端的Boost.Locale测试

时间:2013-07-01 11:27:21

标签: c++ boost locale compile-time

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

1 个答案:

答案 0 :(得分:2)

Boost.Locale提供this

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

如果没有使用ICU支持构建Boost.Locale,它将仅列出最后两行。

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