(Сведения о платформе: Windows 10, Visual Studio C ++ (MSV C 14.26.28801))
Вот базовая c репродукция. Рассмотрим следующую программу, которая отлично работает:
struct Rectangle {};
int main() {
Rectangle rect {};
}
Компилируется и запускается, как ожидалось.
Но теперь, если мы введем импорт в windows .h следующим образом:
#include <Windows.h>
struct Rectangle {};
int main() {
Rectangle rect {};
}
Получаем следующие ошибки компиляции:
syntax error: missing ';' before identifier 'rect' (C2146) [25, 5]
'rect': undeclared identifier (C2065) [25, 5]
expected a ';' [25, 15]
'rect': undeclared identifier (C2065) [26, 5]
identifier "rect" is undefined [26, 32]
function call missing argument list (C4551) [25, 5]
Ура!
Документы Microsoft не дают много информации: https://docs.microsoft.com/en-us/cpp/error-messages/compiler-errors-1/compiler-error-c2146?view=vs-2019
(Я все еще новичок в C ++, извиняюсь, если это что-то очевидное)
Я предполагаю, что где-то в windows .h есть какая-то директива ... это меняет какое-то поведение, но я не совсем уверен, что искать или искать.
Спасибо!