Ошибка компилятора MSVC C4315 - документация не найдена - PullRequest
6 голосов
/ 19 ноября 2010

При компиляции моего приложения сегодня я столкнулся с этим предупреждением (код, я думаю, не имеет значения):

предупреждение C4315: указатель 'MyClass': 'this' для элемента 'MyClass ::my_data_ 'может не выравниваться 8, как ожидалось конструктором

Я не могу найти документацию по этому предупреждению, ни в онлайн-справке, ни в моей локальной справке, ни через поиск Google,Я нашел одну ссылку на форуме MS:

Нет документации для предупреждения компилятора C431 5

Но нет информации о самой ошибке.

Doу вас есть информация об этой ошибке?Я пытаюсь понять, как это исправить.

1 Ответ

5 голосов
/ 19 ноября 2010

Я бы искал что-то (скрытое в заголовке?), Изменяющее упаковку структуры со значения по умолчанию.

Похоже, предупреждение говорит о том, что любой тип MyClass::my_data_ должен быть выровненным по 8 байтов, но он не помещается в это выравнивание внутри MyClass.

Поиск директив #pragma pack(some-number), которые не сбрасываются с помощью #pragma pack().

Использование #pragma pack(show), вероятно, будеттоже полезно.

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