[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