[Libreoffice] Question about using namespace ::com::sun::star::uno

Kohei Yoshida kyoshida at novell.com
Mon Mar 7 07:45:08 PST 2011


On Sun, 2011-03-06 at 23:14 +0100, Julien Nabet wrote:
> Le 04/03/2011 23:48, Julien Nabet a écrit :
> > Hello,
> >
> > I just finished the removing of using reference ::rtl:: in each 
> > directory (binfilters included).
> > I'd like to be sure of what has to be done for "::com::sun::star::uno" 
> > part
> > 1) remove "using namespace ::com::sun::star::uno" ok
> > 2) replace "Reference" by "uno::Reference" ok
> > 3) But what about "use ::com::sun::star" ? Must we replace this :
> > using namespace ::com::sun::star::uno
> > by this :
> > using ::com::sun::star
> > ?
> >
> > Julien.
> Hello,
> 
> I attached a patch which is a first try.
> The patched file, sc/source/filter/xml/xmlstyli.cxx already had
> using com::sun::star::uno::Reference;
> but he had too :
> using namespace ::com::sun::star:uno;
> 
> So I removed the using namespace and had to add :
> using com::sun::star::uno::UNO_QUERY;
> for the compilation.
> Is this patch ok ?

Yup, that patch looks good.  Please commit & push.


> If it's ok, 2 remarks :
> 1) this file also has this :
> using namespace ::com::sun::star;
> using namespace ::com::sun::star::xml::sax;
> using namespace ::com::sun::star::style;
> using namespace ::com::sun::star::frame;
> using namespace ::com::sun::star::beans;
> using namespace ::com::sun::star::container;
> Is the Reference problem which needs the removing of "using namespace 
> ::com::sun::star::uno" the only one or may there be some others "using 
> namespace" to remove ?

Well, aside from removing "using namespace ::rtl" which clearly caused
clashes between rtl::Reference and com::sun::star::uno::Reference,
nothing else is clear.  So, I personally don't want us to go overboard
on this.

Even with "using namespace ::com::sun::star::uno", it's not clear that
we want to remove this from all source files.  I would rather we decide
on a file-by-file basis, when we get a build issue due to symbol name
clash on some platforms.

> I read in some websites that it's better to remove "using namespace" in 
> include files to avoid conflicts.

If it's in a header file, yes.  But those *.cxx *.cpp files are not
header files.  Header files typically have *.h, *.hxx or *.hpp
extensions.

> 2) like the other replacement (using namespace ::rtl), the changes will 
> certainly give some errors that i won't see since, obviously, i don't 
> compile with all environments and all the combinations of options. The 
> pb is there may be a lot more errors than when i made replacements for 
> using namespace ::rtl.

Then, my preference is to *not* remove using
namespace ::com::sun::star::uno across the board, but only when using
that causes some build issues on some platforms.

Kohei

-- 
Kohei Yoshida, LibreOffice hacker, Calc
<kyoshida at novell.com>



More information about the LibreOffice mailing list