mirror of
https://github.com/CHN-beta/nixos.git
synced 2024-10-23 03:18:45 +08:00
17 lines
651 B
C++
17 lines
651 B
C++
# include <biu.hpp>
|
|
int main()
|
|
{
|
|
using namespace biu::literals;
|
|
biu::Atomic<std::string> a("hello");
|
|
a = "world";
|
|
a.apply([](auto& value) { value += "!"; });
|
|
auto b = a.get();
|
|
auto lock = a.lock();
|
|
*lock = "!";
|
|
static_assert(std::same_as<decltype(a.apply([](auto& value) { value += "!"; })), biu::Atomic<std::string>&>);
|
|
static_assert(std::same_as<decltype(a.apply([](auto&) { return 3; })), int>);
|
|
static_assert(std::same_as<decltype(a.apply([](auto&) {}, [](auto&){ return true; }, 1s)), bool>);
|
|
static_assert
|
|
(std::same_as<decltype(a.apply([](auto&) { return 3; }, [](auto&){ return true; }, 1s)), std::optional<int>>);
|
|
}
|