You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When I use vs and use std::this_thread::sleep_for in a C++ module, I get an error.
'std::this_thread::sleep_until': no matching overloaded function found
binary '+': 'const std::chrono::time_point<std::chrono::steady_clock,std::chrono::duration<__int64,std::ratio<1,1000000000>>>' does not define this operator or a conversion to a type acceptable to the predefined operator
binary '+=': no global operator found which takes type 'const std::chrono::duration<__int64,std::ratio<1,1000>>' (or there is no acceptable conversion)
binary '-': 'const std::chrono::time_point<std::chrono::steady_clock,std::chrono::duration<__int64,std::ratio<1,1000000000>>>' does not define this operator or a conversion to a type acceptable to the predefined operator
binary '>': 'const std::chrono::duration<__int64,std::ratio<1,1000>>' does not define this operator or a conversion to a type acceptable to the predefined operator
The minimum duplicate file is as follows:
Mouse.ixx
A possible solution:
Modify #include <thread> and #include <chrono> in Mouse.ixx to import std to pass the compilation. The modified Mouse.ixx file is as follows:
Interestingly, I've found when I've run into these types of issues MSVC always compiles if the code is extracted to a definition outside the class definition:
Interestingly, I've found when I've run into these types of issues MSVC always compiles if the code is extracted to a definition outside the class definition:
Haven't tested this example though. I've encountered the same chrono/sleep bug in our codebase.
As you said, I tested this example and it compiled correctly when the member function was defined outside the class definition,The complete code is as follows:
Mouse.ixx
StephanTLavavej
changed the title
<thread>: Using std::this_thread::sleep_for in a module results in compilation errors<thread>: Using this_thread::sleep_for in a module results in compilation errors
Jan 8, 2025
When I use vs and use std::this_thread::sleep_for in a C++ module, I get an error.
The minimum duplicate file is as follows:
Mouse.ixx
main.cpp
A possible solution:
Modify
#include <thread>
and#include <chrono>
in Mouse.ixx toimport std
to pass the compilation. The modified Mouse.ixx file is as follows:The main.cpp file does not need to be modified and can now be compiled.
I am using the vs version:
The text was updated successfully, but these errors were encountered: