Функция запроса выполняется асинхронно, и выполнение продолжается, поэтому сообщение сначала печатается. Вы должны ознакомиться с этим аспектом javacript и node.js, так как вы встретите его повсюду. Проверьте это руководство: Понимание асинхронного программирования в Node.js Также проверьте последние методы обработки асинхронного кода: Обратные вызовы, обещания и асинхронный / ожидаемый
Я могу подтвердить, что Clang принимает ваш код без предупреждения.
Что меня беспокоит, так это то, что cppreference показывает следующее примечание:
Встроенный спецификатор не может повторно объявлять функцию или переменную (начиная с C ++ 17), которая уже была определена в модуле перевода как не-рядный.
blockquote>Я не смог определить истинную причину этой заметки в стандарте C ++. Но поскольку cppreference в своих предупреждениях, как правило, верен, я предполагаю, что именно поэтому MSVC захлебывается вашим кодом. Вероятно, следует ожидать:
// --------------- // in MyClass.hpp // --------------- #pragma once class MyClass { public: static const int A = 100; };
, чтобы избежать предыдущего не встроенного объявления с последующим встроенным определением.