Re: template -> instance -> function unresolved ???
- From: "Mario Semo" <mario_semo@xxxxxxxxxxxx>
- Date: Tue, 4 Mar 2008 11:53:59 +0100
"Ulrich Eckhardt" <eckhardt@xxxxxxxxxxxxxx> schrieb im Newsbeitrag
news:k3kv95-mb8.ln1@xxxxxxxxxxxxxxxxxxxxxxxxx
Mario Semo wrote:
in the following sample i have a template class (wrapping a pointer) and
a
friend template function accessing private data in the template.
i compile this into a dll (yes i know, there is no exported function from
this dll, but this is just a sample) and
get an unresolved external - the friend function is used, but not
instantiated.
...this declares a function as a friend, but...
template <class Element>
Element&
elementForOps (IElemPointer <Element>& ptr)
{ return *(ptr.ivPtr); }
...this is an equally named function _template_, which has not been
declared
a friend, and I think that is also the problem you are having.
i solved the problem now.
template <class Element>
class IElemPointer
{
public:
typedef IElemPointer<Element> Self;
IElemPointer () : ivPtr(0) {}
#ifdef FIX
template <class Element>
#endif
friend Element& elementForOps (Self &);
// friend Element& elementForOps (IElemPointer <Element>&);
Note : there is no difference if i use "Self" (typedefed at the begin of the
class) or the real name (IElemPointer<Element>) !
in both cases the
template <class Element>
before the firiend... fixes the problem.
.....
My suggestion BTW would be to simply overload unary operator* as a member,
but of course that doesn't answer the question why this here doesn't work
and might not match your design.
as i wrote, this is part of a big CollectionClassFramework
(the code was compileable with MSVC++ 6.0 and with some other compilers.
just VC9 runs into troubles. )
thx,
mario.
Uli
--
C++ FAQ: http://parashift.com/c++-faq-lite
Sator Laser GmbH
Geschäftsführer: Michael Wöhrmann, Amtsgericht Hamburg HR B62 932
.
- Follow-Ups:
- Re: template -> instance -> function unresolved ???
- From: Ondrej Spanel
- Re: template -> instance -> function unresolved ???
- From: Ben Voigt [C++ MVP]
- Re: template -> instance -> function unresolved ???
- From: Carl Daniel [VC++ MVP]
- Re: template -> instance -> function unresolved ???
- References:
- template -> instance -> function unresolved ???
- From: Mario Semo
- Re: template -> instance -> function unresolved ???
- From: Ulrich Eckhardt
- template -> instance -> function unresolved ???
- Prev by Date: Re: template -> instance -> function unresolved ???
- Next by Date: Re: DebugBreak continue issue
- Previous by thread: Re: template -> instance -> function unresolved ???
- Next by thread: Re: template -> instance -> function unresolved ???
- Index(es):
Relevant Pages
|
Loading