GKD.RoboCtrl
载入中...
搜索中...
未找到
defer.hpp
1#pragma once
2
3#include <functional>
4#include <utility>
5
6#define DEFER_CAT_IMPL(x, y) x##y
7#define DEFER_CAT(x, y) DEFER_CAT_IMPL(x, y)
8
9#define defer(...) auto DEFER_CAT(_defer_, __COUNTER__) = ::roboctrl::utils::detail::Defer([&](){ __VA_ARGS__; })
10
11namespace roboctrl::utils{
12namespace detail {
13 struct Defer {
14 template<class F>
15 Defer(F&& f) : fn(std::forward<F>(f)) {}
16
17 ~Defer() { fn(); }
18
19 std::function<void()> fn;
20 };
21}
22}
asio::awaitable< T > awaitable
协程任务类型。
Definition async.hpp:42
用于存放工具函数的命名空间。
Definition concepts.hpp:13