octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

duplicate instantiations


From: Jaroslav Hajek
Subject: duplicate instantiations
Date: Tue, 2 Jun 2009 13:54:18 +0200

hi Michael,

I noticed that as part of 9237:3c1762c7e787, you added lines like
template class OCTAVE_API DiagArray2<Complex>::Proxy;

to Array-*.cc. While this is accepted by GCC, it gets rejected by
Intel C++, griping about duplicate instantiation.
I've asked for advice on comp.lang.c++, but after a quick
investigation it seems to me that Intel is right here. An explicit
instantiation of a class instantiates all its non-template members,
including member classes, which causes a duplicate explicit
instantiation.
I assume the OCTAVE_API decoration does not automatically apply to
member classes? Is there a different way to do this with MSVC?
I'm not really much fond about the whole DiagArray2::Proxy stuff, but
I wouldn't like to remove it now. OTOH, I wouldn't like to keep code
needed only for MSVC (and fooling other commercial compilers) which is
actually incorrect C++.

regards

-- 
RNDr. Jaroslav Hajek
computing expert & GNU Octave developer
Aeronautical Research and Test Institute (VZLU)
Prague, Czech Republic
url: www.highegg.matfyz.cz


reply via email to

[Prev in Thread] Current Thread [Next in Thread]