[aspectc-user] Multiple definitions error with templates.

Guilherme . guibufolo at gmail.com
Mon Jun 27 17:59:47 CEST 2011


I am getting following error when trying to weave my code:

include//click/hashmap.hh:219: error: invalid declaration near token

Maybe this error has to do with the previously submitted email about the
conversion operator.

Here is the offending code:

219 template <class K, class V>
220 inline
221 _HashMap_const_iterator<K, V>::operator unspecified_bool_type() const
222 {
223     return live() ? &_HashMap_const_iterator::live : 0;
224 }

And the next one in this file:

include//click/hashmap.hh:366: error: redefinition of `HashMap::begin'
include//click/hashmap.hh:67: previously defined here
include//click/hashmap.hh:534: error: redefinition of `HashMap::begin'

The interesting part is, that it uses template specialization to (with g++)
avoid these errors.

There are two classes defined.

 24 template <class K, class V>
 25 class HashMap { public:

With forward declaration:
 67   inline const_iterator begin() const;

115 };

and later on:

And the second class (the specializaton)

227 template <class K>
228 class HashMap<K, void *> { public:

318 };

with these begin functions:

364 template <class K>
365 inline typename HashMap<K, void *>::const_iterator
366 HashMap<K, void *>::begin() const
367 {
368   return const_iterator(this, true);
369 }

532 template <class K, class T>
533 inline typename HashMap<K, T *>::const_iterator
534 HashMap<K, T *>::begin() const
535 {
536   return const_iterator(this, true);
537 }

So i guess the specialization must be throwing the ac++ parser off...

Anything i can do about it?

Thank you for your help,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.aspectc.org/pipermail/aspectc-user/attachments/20110627/c6c8cdc7/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: hashmap.hh
Type: text/x-c++hdr
Size: 15396 bytes
Desc: not available
URL: <http://www.aspectc.org/pipermail/aspectc-user/attachments/20110627/c6c8cdc7/attachment.hh>

More information about the aspectc-user mailing list