С очисткой памяти все в порядке: existing_keys.begin()->clear() излишне: достаточно второй строчки с erase, which deletes entries in the range [First, Last). Более того, это нужно для правильной работы функции: утечка памяти невозможна в принципе, так как existing_keys создается на стеке функции и разрушается при выходе из оной, а заодно стирается его содержимое.
Во-вторых, здесь проблема куда серьезней: existing_keys не имеет оператора сравнения для его членов (в твоем случае это vector
[Error: Irreparable invalid markup ('<char*>') in entry. Owner must fix manually. Raw contents below.]
С очисткой памяти все в порядке: existing_keys.begin()->clear() излишне: достаточно второй строчки с erase, which deletes entries in the range [First, Last). Более того, это нужно для правильной работы функции: утечка памяти невозможна в принципе, так как existing_keys создается на стеке функции и разрушается при выходе из оной, а заодно стирается его содержимое.
Во-вторых, здесь проблема куда серьезней: existing_keys не имеет оператора сравнения для его членов (в твоем случае это vector<char*>). Кто сказал, что вектора равны, когда имеют одинаковую начинку. О правильном использовании std::set и задавании оператора сравнения для членов см. http://www.sgi.com/tech/stl/set.html
В третьих, кто сказал что виртуальными функциями пользоваться в темплейтах нельзя?
А в-четвертых, за такие постинги, тебя конечно следует разфрендить! :))
no subject
Во-вторых, здесь проблема куда серьезней: existing_keys не имеет оператора сравнения для его членов (в твоем случае это vector
Во-вторых, здесь проблема куда серьезней: existing_keys не имеет оператора сравнения для его членов (в твоем случае это vector<char*>). Кто сказал, что вектора равны, когда имеют одинаковую начинку. О правильном использовании std::set и задавании оператора сравнения для членов см. http://www.sgi.com/tech/stl/set.html
В третьих, кто сказал что виртуальными функциями пользоваться в темплейтах нельзя?
А в-четвертых, за такие постинги, тебя конечно следует разфрендить! :))