std::messages<CharT>::close, std::messages<CharT>::do_close
来自 cppreference.com
定义在头文件 <locale> 中 |
||
public: void close( catalog c ) const; |
(1) | |
protected: virtual void do_close( catalog c ) const; |
(2) | |
1) 公共成员函数,调用最派生类的受保护的虚成员函数
do_close
。内容 |
[编辑] 参数
c | - | 一个有效的打开目录标识符,close() 尚未对它调用。 |
[编辑] 返回值
(无)
[编辑] 备注
在 POSIX 系统上,此函数调用通常会转换为对 catclose()
的调用。在 GNU libstdc++ 中,它是根据 GNU gettext()
实现的,它什么也不做。
[编辑] 示例
以下示例演示了消息的检索:在典型的 GNU/Linux 系统上,它从 /usr/share/locale/de/LC_MESSAGES/sed.mo
中读取。
运行此代码
#include <iostream> #include <locale> int main() { std::locale loc("de_DE.utf8"); std::cout.imbue(loc); auto& facet = std::use_facet<std::messages<char>>(loc); auto cat = facet.open("sed", loc); if (cat < 0) std::cout << "Could not open german \"sed\" message catalog\n"; else std::cout << "\"No match\" in German: " << facet.get(cat, 0, 0, "No match") << '\n' << "\"Memory exhausted\" in German: " << facet.get(cat, 0, 0, "Memory exhausted") << '\n'; facet.close(cat); }
可能的输出
"No match" in German: Keine Übereinstimmung "Memory exhausted" in German: Speicher erschöpft