fix various minor issues causing compilation failure with clang (#567)

- Include order and forward decls were breaking button.h because a
declared but not defined struct can't be initiated (honestly this file
was cooked, crazy include order).
- `MAXINT` is GCC specific, `INT_MAX` is portable.
- InterlockedDecrement takes a LONG, not ULONG
- an imgui printf-style call using a direct string instead of %s (let's
ignore the fact that it's actually safe based on how the str is
constructed)
- missing `override` on a virtual subclass
- `CALLBACK` on a lambda threw me for a loop, but I believe moving it
after the arg list is the correct approach (see if it builds on gcc I
guess)
- `std::result_of` was removed in C++20, which the project is built with
This commit is contained in:
Will
2026-03-07 08:21:10 +10:00
committed by GitHub
parent e4b08064b7
commit 22aeb64ff9
11 changed files with 41 additions and 40 deletions
+2 -2
View File
@@ -56,8 +56,8 @@ public:
template<class T, class... Args>
auto add(T&& func, Args&&... args)
-> std::future<typename std::result_of<T(Args...)>::type> {
using ret_t = typename std::result_of<T(Args...)>::type;
-> std::future<typename std::invoke_result<T, Args...>::type> {
using ret_t = typename std::invoke_result<T, Args...>::type;
auto task = std::make_shared<std::packaged_task<ret_t()>>(
std::bind(std::forward<T>(func), std::forward<Args>(args)...));
std::future<ret_t> fut = task->get_future();