Я изменил код для преобразования std::set
в boost::ptr_set
.Однако код не компилируется;проблема в том, что я предполагаю, что возвращаемое значение из вставки ptr_set
совпадает со значением вставки set
(pair<myIter, bool>
).Через час в Google я нашел это , и оказалось, что возвращаемое значение из вставки ptr_set
выглядит как бул.
Есть ли какие-либо окончательные документы о различиях междуконтейнеры ptr и контейнеры std?На сайте буста я ничего не нашел, но, может быть, я просто тупой ...
РЕДАКТИРОВАТЬ
Хорошо - меня смущало то, что этот код
t.insert(s.release(s.begin()));
p = t.insert(s.release(s.begin()));
сообщает об отсутствии ошибки в первой строке в gcc, но сообщает о не совпадении для operator=
во второй строке, поэтому я подумал, что ошибка в возвращаемом типе.Однако, если вы закомментируете вторую строку, то первая строка затем сообщается как ошибка (релиз не возвращает итератор).Моя путаница усугублялась размещенной мною ссылкой, в которой автор ptr_container заявляет, что «insert () в ptr_set <> возвращает bool».Однако, читая по ссылке, становится очевидным, что код не был закончен в то время.Спасибо, Керрек.