[EMAIL PROTECTED] wrote:
>     namespace FAII
>     {
>         template <class T>
>         class ArrayDataType : public DataType
>             {
>             public:
>                 typedef std::vector<T*> ArrayVector;

Note that ArrayVector is a "dependant type".

>                 ArrayDataType(const FAIIstring& elementName);

Just as a side notice: this should be 'explicit'.

>             };
               ^ right&necessary

>     };
       ^ wrong (probably ignored by the compiler nonetheless)

> #include "ArrayDataType.h"
> 
> template <class T>
> FAII::ArrayDataType<T>::~ArrayDataType()
> {
>   ArrayVector::const_iterator itr;

Okay, here's the problem: since 'ArrayVector' is a dependant type, you need
to use 'typename' here:

  typename ArrayVector::const_iterator itr;

>   for (itr = m_array.begin(); itr != m_array.end(); itr++)
>     delete (*itr);
>   m_array.clear();
> }

BTW: I think you would be better off using a ready-made container like e.g.
those in Boost. Also, prefer putting indices/iterators into the loop's
header and use prefix increment rather than postfix, but that's just
common C++ sanity.

Uli

-- 
http://gcc.gnu.org/faq.html
http://parashift.com/c++-faq-lite/

_______________________________________________
help-gplusplus mailing list
help-gplusplus@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gplusplus

Reply via email to