On 07/16/2012 04:03 PM, Lubos Lunak wrote:
On Thursday 12 of April 2012, Lubos Lunak wrote:
  would somebody see a problem with this?

sal/inc/rtl/ustring.hxx :
+#ifdef RTL_AUTOMATIC_USING
+using ::rtl::OUString;
+using ::rtl::OStringToOUString;
+using ::rtl::OUStringToOString;
+#endif

  I seriously doubt there will ever be any O(U)String anywhere in LO build
that will not be the rtl one, so the need to explicitly qualify it with the
rtl namespace (or go with using, which is what many files do) seem to be
just an unnecessary hassle. So I'd like to do this change for those few
commonly used rtl types which are in practice namespaced by the name itself
(i.e. not the problematic rtl::Reference), and then build all of LO
with -DRTL_AUTOMATIC_USING.

  FYI, this is now in. The stable modules (sal/, salhelper/, cppu/,
cppuhelper/) build without it and there's additionally a check including all
their .hxx's to verify them. The rest of LO can now use OUString&friends
without the explicit rtl.

It turns out that one drawback of this is with header files that are careful to only declare the incomplete type via

  namespace rtl { class OUString; }

(instead of including rtl/ustring.hxx) if that is all they need. They would either need to continue using "rtl::OUString" (instead of just "OUString"), or need to duplicate the using declaration (which could be considered breaking of encapsulation), or include rtl/ustring.hxx instead.

Stephan
_______________________________________________
LibreOffice mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to