я пытаюсь адаптировать конкретную Исходник--пример, но есть проблемы, чтобы понять, как он держит контроль над основным контуром:Пожалуйста, объясните это C++ макрос
// Combine some macros together to create a single macro
// to launch a class containing a run method
#define RUN_OVR_APP(AppClass) \
MAIN_DECL { \
if (!ovr_Initialize()) { \
SAY_ERR("Failed to initialize the Oculus SDK"); \
return -1; \
} \
int result = -1; \
try { \
result = AppClass().run(); \
} catch (std::exception & error) { \
SAY_ERR(error.what()); \
} catch (std::string & error) { \
SAY_ERR(error.c_str()); \
} \
ovr_Shutdown(); \
return result; \
}
Я знаю, StackOverflow не хочет ссылки, но в данном конкретном случае это может быть necceassary для того, чтобы получить более подробную информацию о используемых команд: https://github.com/OculusRiftInAction/OculusRiftInAction/blob/master/examples/cpp/common/ovr/OvrUtils.h
выглядит как обычный код на C++, завернутый в макрос. что именно вы не понимаете? мы можем ответить лучше –
Я считаю, что в качестве мусора - не используйте его. –
Я запутался в основном по следующей строке: result = AppClass(). Run(); Означает ли это, что указанный Appclass выполняется в цикле в int main? – Echo88