MSVC warning C4315
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 31.01.25 21:53
Оценка:
Здравствуйте!

warning C4315: bla-bla may not be aligned 8 as expected by the constructor

Начала возникать в некоторых местах, которые я окружил прагма паками (1)

MSDN или как оно сейчас называется — такого варнинга не знает.

Вдогонку — а можно ли через pragma warning запретить warning as error? А то разрешить можно, а запретить — чот не вижу как

Я решил везде, где юзаю pragma pack, выводить сообщение через #pragma pack(show) для диагностики, но теперь и этот варнинг вызывает ошибку. Снять признак варнинг как ошибка не понял как, через /Wd можно отключить сам варнинг, но это не то, что хотелось

ЗЫ А как-то можно, чтобы сообщения pragma message добавлялись в окошко Error List MSVC, но не вызывали ошибку компиляции. А то в Output оно выводится, а в Error List — нет. И перейти на строчку в исходниках никак
Маньяк Робокряк колесит по городу
Отредактировано 31.01.2025 22:02 Marty . Предыдущая версия . Еще …
Отредактировано 31.01.2025 21:56 Marty . Предыдущая версия .
Re: MSVC warning C4315
От: Pzz Россия https://github.com/alexpevzner
Дата: 31.01.25 22:22
Оценка: 15 (1) +2
Здравствуйте, Marty, Вы писали:

M>warning C4315: bla-bla may not be aligned 8 as expected by the constructor


M>Начала возникать в некоторых местах, которые я окружил прагма паками (1)


Я так понимаю, у тебя внутри структуры, которая сама по себе #pragma pack (1), имеются поля, которые во-первых являются классами с констриктором, во-вторых, сами по себе определены без #pragma pack (1), а в третьих, содержат поля, которые могут потребовать выравнивания на 8 (например, long или указатель). И внутри внешней, упакованной, структуры эти поля с конструкторами оказываются невыровненными на 8. Вот при это тебе и хочет сообщить компилятор.
Re[2]: MSVC warning C4315
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 31.01.25 22:27
Оценка:
Здравствуйте, Pzz, Вы писали:

M>>warning C4315: bla-bla may not be aligned 8 as expected by the constructor


M>>Начала возникать в некоторых местах, которые я окружил прагма паками (1)


Pzz>Я так понимаю, у тебя внутри структуры, которая сама по себе #pragma pack (1), имеются поля, которые во-первых являются классами с констриктором, во-вторых, сами по себе определены без #pragma pack (1), а в третьих, содержат поля, которые могут потребовать выравнивания на 8 (например, long или указатель). И внутри внешней, упакованной, структуры эти поля с конструкторами оказываются невыровненными на 8. Вот при это тебе и хочет сообщить компилятор.


Да ты чёртов гений
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.