Я могу подтвердить, что это проблема с GCC 4.4.5.Попытка вставить unique_ptr в std :: set приводит к длинному сообщению об ошибке компилятора, которое ссылается на тот факт, что какая-то функция в STL пыталась скопировать unique_ptr:
ошибка: удаленная функция [unique_ptrcopy ctor] ... используется здесь [g ++ - v4 / bits / stl_tree.h: 136].
Рассматриваемая функция STL является частью внутренней структуры дерева нескольких классов STL, включая std::задавать.Это также внутри ifdef "__GXX_EXPERIMENTAL_CXX0X__", что, вероятно, означает, что GCC 4.4 официально не поддерживает то, что мы пытаемся сделать.
Если вы не хотите обновляться до GCC 4.6, вы всегда можете перенестиstd :: vector и стратегически проверять и удалять дубликаты в определенных точках вашего кода.