The public member functions are:
<p>
-<code>catalog open(const string&, const locale&) const</code>
+<code>catalog open(const string&, const locale&) const</code>
<p>
-<code>string_type get(catalog, int, int, const string_type&) const</code>
+<code>string_type get(catalog, int, int, const string_type&) const</code>
<p>
<code>void close(catalog) const</code>
While the virtual functions are:
<p>
-<code>catalog do_open(const string&, const locale&) const</code>
+<code>catalog do_open(const string&, const locale&) const</code>
<BLOCKQUOTE>
<I>
-1- Returns: A value that may be passed to get() to retrieve a
</BLOCKQUOTE>
<p>
-<code>string_type do_get(catalog, int, int, const string_type&) const</code>
+<code>string_type do_get(catalog, int, int, const string_type&) const</code>
<BLOCKQUOTE>
<I>
-3- Requires: A catalog cat obtained from open() and not yet closed.
<p>
The 'open' member function in particular seems to be oddly
designed. The signature seems quite peculiar. Why specify a <code>const
-string& </code> argument, for instance, instead of just <code>const
-char*</code>? Or, why specify a <code>const locale&</code> argument that is
+string& </code> argument, for instance, instead of just <code>const
+char*</code>? Or, why specify a <code>const locale&</code> argument that is
to be used in the 'get' member function? How, exactly, is this locale
argument useful? What was the intent? It might make sense if a locale
argument was associated with a given default message string in the
<code>locale loc_de("de_DE");</code>
<p>
<code>
- use_facet<messages<char> >(loc_de).open("libstdc++", locale(), dir);
+ use_facet<messages<char> >(loc_de).open("libstdc++", locale(), dir);
</code>
</ul>
<li> message converting, simple example using the GNU model.
<pre>
-#include <iostream>
-#include <locale>
+#include <iostream>
+#include <locale>
using namespace std;
void test01()
{
- typedef messages<char>::catalog catalog;
+ typedef messages<char>::catalog catalog;
const char* dir =
"/mnt/egcs/build/i686-pc-linux-gnu/libstdc++-v3/po/share/locale";
const locale loc_de("de_DE");
- const messages<char>& mssg_de = use_facet<messages<char> >(loc_de);
+ const messages<char>& mssg_de = use_facet<messages<char> >(loc_de);
catalog cat_de = mssg_de.open("libstdc++", loc_de, dir);
string s01 = mssg_de.get(cat_de, 0, 0, "please");
string s02 = mssg_de.get(cat_de, 0, 0, "thank you");
- cout << "please in german:" << s01 << '\n';
- cout << "thank you in german:" << s02 << '\n';
+ cout << "please in german:" << s01 << '\n';
+ cout << "thank you in german:" << s02 << '\n';
mssg_de.close(cat_de);
}
</pre>
<p>
<code>
catalog
- open(const basic_string<char>& __s, const locale& __loc) const
+ open(const basic_string<char>& __s, const locale& __loc) const
</code>
<p>
<code>
catalog
- open(const basic_string<char>&, const locale&, const char*) const;
+ open(const basic_string<char>&, const locale&, const char*) const;
</code>
<p>