Forum Clubic

[C'est++] Erreur de la mort qui me tue - huffman.hpp:137: error: expected `;' bef

Oyo

J’ai le bout de code suivant :

 
template <typename T> class HuffmanTree {
  ...
  
 bool contains(const T& t) {
      if (finished) throw finished_exception;
      
      std::vector<HuffmanNode*>* list = hive[comparator(t)%hive_size];
      
      if ( list == NULL ) return false;

      std::vector<HuffmanNode*>::iterator it = list->begin(); // ligne 137
      return false;
    }
};

Et ceci :

HuffmanTree<letter, LetterComparator> set; 
cout << "::" << set.contains(14);

Ce qui déclenche une erreur :

g++ -c main.cpp -o main.o
In file included from main.cpp:10:
huffman.hpp: In member function bool huffman::HuffmanTree&lt;T, H&gt;::contains(const T&amp;)': [b]huffman.hpp:137: error: expected;’ before “it”[/b]
huffman.hpp: In member function bool huffman::HuffmanTree&lt;T, H&gt;::contains(const T&amp;) [with T = alphabet::letter, H = LetterComparator]': main.cpp:138: instantiated from here huffman.hpp:137: error: dependent-name std::vector<huffman::HuffmanTree<T, H>::HuffmanNode*,std::allocator<huffman::HuffmanTree<T, H>::HuffmanNode*>
>::iterator’ is parsed as a non-type, but instantiation yields a type
huffman.hpp:137: note: say `typename std::vector<huffman::HuffmanTree<T, H>::HuffmanNode*,std::allocator<huffman::HuffmanTree<T, H>::HuffmanNode*> >:
:iterator’ if a type is meant
make: *** [main.o] Error 1

Je ne pige pas du tout c’est quoi son délire à ce petit :slight_smile:

Visiblement, il ne reconnaît pas mon type HuffmanNode* qui fait parti du type parent (et qui est déclaré avant, et où un hive = new std::vector<HuffmanNode*>*[hive_size]; ne le géne pas le moins du monde).

Wtf ? :o

std::vector<HuffmanNode*>::const_iterator it = list->begin(); // :neutre: (chui pas tres C++)

Petite précision : cela déconne aussi sans le = list->begin();

(ie: juste std::vector<HuffmanNode*>::iterator it)

J’ai la grande impression que ce dernier ne trouve pas mon type HuffmanNode