Недавно я заменил некоторые классы Vector/Matrix на классы, использующие SSE, и теперь проверяю правильность выравнивания памяти.
Следуя совету в ответе на этот вопрос, я заменил оператор new/delete для классы, которым это требуется, и начали работу над настраиваемым распределителем для использования с контейнерами STL, однако, похоже, между ними существует некоторый конфликт:
Для начала я просто скопировал и вставил пример класса распределителя из здесь, который отлично компилируется, когда я использую его с std::vector рассматриваемых типов без моего собственного нового/удаления, но когда я заменяю эти функции, я получаю сообщение об ошибке "нет функция сопоставления для вызова 'operator new'" из функции построения(),
void construct(pointer p, const T& t) { new(p) T(t); }
Я предполагаю, что тот факт, что я заменил "обычный" новый, как-то затуманил размещение нового? Однако, учитывая, что я не могу написать свое собственное размещение нового, чтобы оно могло подобраться, я не совсем уверен, что делать... быть высоко оценен!
Я компилирую в Linux, используя Clang v3.4 (или gcc 4.1.2); не используя С++ 11.
Большое спасибо.