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<T, H>::contains(const T&)': [b]huffman.hpp:137: error: expected
;’ before “it”[/b]
huffman.hpp: In member function bool huffman::HuffmanTree<T, H>::contains(const T&) [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
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