Размещение нового в gcc - PullRequest
3 голосов
/ 09 апреля 2010

Мне нужно найти обходной путь для ошибки с размещением нового в g ++. У меня сейчас это исправлено в gcc-4.3 но я должен поддерживать версии 4.2 и 4.1. Например, следующий код компилируется с ошибкой

"ошибка: нет соответствующей функции для вызова оператора 'new (long unsigned int, void * &)"

template<class T, template<typename> class Alloc> 
inline void* type_ctor()
{
    Alloc<T> a; void* p = a.allocate(1);
    new(p) T;
    return p;
}

.....

type_ctor<A, NewAllocator >();

1 Ответ

10 голосов
/ 09 апреля 2010

Чтобы использовать стандартное размещение библиотеки new s, вам нужно #include <new>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...