Во-первых, не наследуют от стандартных контейнеров, они не предназначены для наследования (без виртуальных деструкторов и т. д.).
Во-вторых, и в отношении вашей проблемы , это потому, что указатель на функцию-член не совпадает с указателем на функцию. Причина в том, что функция-член имеет скрытый первый параметр, который становится указателем this
в функции. Самый простой способ решить эту задачу - сделать функцию static
.
Другим решением является использование функции std::bind
, которая появилась с C ++ 11:
for_each(this->begin(), this->end(),
std::bind(&C::transformation, this, std::placeholders::_1));
Если у вас нет , C ++ 11 (даже если вы отметили свой вопрос как таковой), то вы, вероятно, могли бы получить что-то, работающее с std::mem_fun
или std::bind1st
.
Проблема была в моем SelectionFilter
. Была ошибка, связанная с тем, что метод accept
из SelectionFilter
всегда возвращал ложь, и, следовательно, фаза локального поиска вообще не развивалась.
После разрешения, конфигурация динамического завершения работает как есть.
Разве это не так?
<localSearch>
<termination>
<terminationCompositionStyle>OR</terminationCompositionStyle>
<unimprovedStepCountLimit>4000</unimprovedStepCountLimit>
<stepCountLimit>10000</stepCountLimit>
</termination>
</localSearch>
Если вы не определили CH, по умолчанию будет FIRST_FIT
.