【问题标题】:Boost.Locale testing for particular backend针对特定后端的 Boost.Locale 测试
【发布时间】:2013-06-28 12:13:35
【问题描述】:

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

【问题讨论】:

    标签: c++ boost locale compile-time


    【解决方案1】:

    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
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      • 1970-01-01
      相关资源
      最近更新 更多