⚡ 如你所见,在 awacorn::detail
命名空间内有名为 function
的内部类。它是 Awacorn 的高性能 std::function
实现,用于节省时间/空间成本。
以下是一张优缺点的表格。
优点 | 缺点 |
---|---|
它位于 awacorn/detail/function.hpp ,并且无论是包含 event async 还是 promise ,都会看到这个类。 |
N/A |
它的速度很快,并且大小是 std::function 的一半(在 gcc 12.2.0 x86_64-linux-gnu 上)。 |
但是它不支持拷贝构造,所以你必须小心谨慎地使用它。 |
它可以包装 std::function 。 |
但 std::function 无法用于包装它。 |
它实现了 std::function 几乎所有的接口。 |
但它仍不等同于 std::function ,在使用时需要进行很麻烦的转换,还会导致性能损失。 |
💡 有点像 Rust
不是么?
awacorn::detail
命名空间内的成员均是 Awacorn 的 内部类,擅自使用会导致 可移植性降低,并且我们也不推荐这么做。