|
I'm wondering if __rw_get_message() is actually exposed in the library's ABI given that the facet template has only two possible specializations and they are both instantiated in the library. If not, we could make the change without keeping the old signature around.
Btw., I'm not sure using the version macro this way is the best approach for the library (then again, I'm not sure it isn't, either). Would adding an #else block along these lines be a better way of guaranteeing that the code does in fact get removed? #else # error "remove me!" #endif As for the signature of the new overload, FWIW, my personal preference is for the convention where objects are passed by reference as in parameters and by their address as out parameters. That way it's usually more clear at the call site that the object will be modified. I.e., @@ -61,16 +61,20 @@
int __msgid,
const string_type &__dfault) const
{
- const char* const __text = _RW::__rw_get_message (__cat, __set, __msgid);
-
+ const _STD::locale* __ploc; // will be set in __rw_get_message()
+
+ const char* const __text = _RW::__rw_get_message (__cat, __set, __msgid, &__ploc);
if (__text) {
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
STDCXX-845was applied. It should still work without that patch, but I haven't tested it.