Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Warning[w6]: Type conflict for external/entry ...
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Непомнящий Евгений
Варнинг линкера:
Warning[w6]: Type conflict for external/entry "__near_array_new_prefix_size", in module paramAccessor against external/entry in module ?vec_newdel; types have different type attributes

В хидере, включенном в paramAccessor.cpp, сделаны объявления:
Код
void* operator new(size_t sz, TStackMem *sm);
void* operator new[](size_t sz, TStackMem *sm);

Ругаться начал после добавления operator new[].
TStackMem - мой собственный класс.

Подскажите, в чем причина?

IAR 4.30, eec++, dlib.

Спасибо.
sKWO
Цитата(Непомнящий Евгений @ Mar 17 2008, 10:54) *
Варнинг линкера:
Warning[w6]: Type conflict for external/entry "__near_array_new_prefix_size", in module paramAccessor against external/entry in module ?vec_newdel; types have different type attributes
В хидере, включенном в paramAccessor.cpp, сделаны объявления:
Код
void* operator new(size_t sz, TStackMem *sm);
void* operator new[](size_t sz, TStackMem *sm);

Подскажите, в чем причина?


точно не знаю но помоему у Вас эта функция объявлена в хидере, включенном в paramAccessor.cpp и объявления эти отличаются с функцией в paramAccessor.cpp.
IgorKossak
Если Вы пытаетесь переопределить стандартные операторы new и new[], то наверное лучше сделать так:
Код
void* operator new(size_t sz);
void* operator new[](size_t sz);

Так Вы сможете выделять память для объектов любого типа, в том числе и Вашего собственного.
Непомнящий Евгений
Цитата(IgorKossak @ Mar 24 2008, 21:01) *
Если Вы пытаетесь переопределить стандартные операторы new и new[], то наверное лучше сделать так:
Код
void* operator new(size_t sz);
void* operator new[](size_t sz);

Так Вы сможете выделять память для объектов любого типа, в том числе и Вашего собственного.

TStackMem - это аллокатор, т.е. объект, который отвечает за выделение памяти. Эта форма оператора new с явным указанием аллокатора, что позволяет иметь несколько разных схем выделения памяти. Используется примерно так:
Код
new (&stack) int[100];
new (&stack) TMyClass();


По теме - сейчас пробую получить минимальный кусок, который приводит к ворнингу, как получится - выложу. Может при этом чего прояснится.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.