diff --git a/Source/cmStdIoInit.cxx b/Source/cmStdIoInit.cxx index a2fc50db7f..49f31873bd 100644 --- a/Source/cmStdIoInit.cxx +++ b/Source/cmStdIoInit.cxx @@ -93,19 +93,23 @@ public: Globals(); +#ifdef _WIN32 + static BOOL WINAPI CtrlHandler(DWORD /*dwCtrlType*/) + { + Get().StdErr.Destroy(); + Get().StdOut.Destroy(); + Get().StdIn.Destroy(); + return FALSE; + } +#endif + static Globals& Get(); }; #ifdef _WIN32 Globals::Globals() { - static auto const ctrlHandler = [](DWORD /*dwCtrlType*/) -> BOOL { - Get().StdErr.Destroy(); - Get().StdOut.Destroy(); - Get().StdIn.Destroy(); - return FALSE; - }; - SetConsoleCtrlHandler(ctrlHandler, TRUE); + SetConsoleCtrlHandler(CtrlHandler, TRUE); } #else Globals::Globals() = default;