Salut
J'ai un probleme avec le bout de code suivant :
Code :
- #include <vector>
- template<typename T>
- class MyIterator
- {
- public:
- typedef typename std::vector<T>::iterator iterator;
- operator iterator& () { return _i; }
- private:
- iterator _i;
- };
- template<typename T>
- class UtiliseMyIterator
- {
- public:
- virtual void f()
- {
- MyIterator<T> it;
- T t = *it;
- }
- };
- template class UtiliseMyIterator<long>;
- template class UtiliseMyIterator<double>;
- template class UtiliseMyIterator<bool>;
- template class UtiliseMyIterator<short>;
|
j'essaie de compiler ca sous Sun avec CC5.3, et la troisieme instantiation de template, celle avec bool, me fait une erreur :
operation * MyIterator<bool> is invalid.
pourtant ca marche pour les autres. qu'est ce que le bool a de différent ?
j'ai essayé avec visual studio 6, ca marche.
alors bug dans la compilo de Sun, ou une siouxerie que j'ai pas pigée ?