Russian Qt Forum

Программирование => С/C++ => Тема начата: Igors от Апрель 28, 2012, 13:23



Название: Проблемы с placement new [РЕШЕНО]
Отправлено: Igors от Апрель 28, 2012, 13:23
Добрый день

Безобидный текст
Код
C++ (Qt)
int buf[2];
int * test = new (buf) int;
 
Выдает ошибку
Цитировать
/Test.cpp(569): error: function "operator new" cannot be called with the given argument list
            argument types are: (unsigned long, int [2])
     int * test = new (buf) int;
Это происходит при компиляции static либы. В приложении (или в тестовом проекте) все нормуль. Если new без указания места (напр new int) - тоже все хорошо. Прошерстил все файлы либы - никаких перекрытых new нет. В чем причина?

Спасибо


Название: Re: Проблемы с placement new
Отправлено: alexis031182 от Апрель 28, 2012, 14:39
А так скомпилится? Мне тоже интересно
Код
C++ (Qt)
int *buf = new int[2];
int *test = new (buf) int;
 


Название: Re: Проблемы с placement new
Отправлено: Igors от Апрель 28, 2012, 14:42
А так скомпилится? Мне тоже интересно
Код
C++ (Qt)
int *buf = new int[2];
int *test = new (buf) int;
 
Тоже нет, та же ошибка


Название: Re: Проблемы с placement new
Отправлено: navrocky от Апрель 28, 2012, 15:50
http://ideone.com/3UQwk

Код
C++ (Qt)
#include <new>
делал?


Название: Re: Проблемы с placement new
Отправлено: Igors от Апрель 28, 2012, 18:01
http://ideone.com/3UQwk

Код
C++ (Qt)
#include <new>
делал?
Сделал, помогло, спасибо.
В main у меня тоже все было Ok, а вот в static либе только с инклудом