Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


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

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.