按照提升手册(http://www.boost.org/doc/libs/1_56_0/libs/locale/doc/html/using_localization_backends.html),
我可以使用以下方式设置UTF后端:
boost::locale::localization_backend_manager my = boost::locale::localization_backend_manager::global();
my.select("std");
有没有办法检查,是否确实使用了std后端?
我似乎只能获得所有可用的后端,但不能获得当前活动的后端
boost::locale::localization_backend_manager lbm = boost::locale::localization_backend_manager::global();
auto s = lbm.get_all_backends();
for_each(s.begin(), s.end(), [](string& x){ cout << x << endl; });
答案 0 :(得分:2)
不是,不。由于多种原因,无法获得当前的后端:
localization_backend
使用pimpl习惯用法来推迟后端的实际实现。 localization_backend
或后端本身没有任何反映来自localization_backend.hpp
的评论:
后端通常在本地化后端内注册 经理并允许不同后端的透明支持,以便用户 只需将应用程序链接到后端即可切换后端 纠正一个。
...
每个后端都可以安装不同的默认priotiry 当你使用两个不同的后端时,你可以指定priotiry 这个后端将根据他们的优先级进行选择。
在优先级功能之上不必要地使实现复杂化,可以为特定的区域设置类别设置特定的后端。 Boost.Locale
旨在“正常工作”任何后端配置,透明度和二进制兼容性。正如评论者所说,由于您使用此库来抽象出特定于库/平台的特性,因此它并不是真正有用的信息。