// Copyright 2026, Amlal El Mahrouss (amlal@nekernel.org) // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // Official repository: https://git.ocl.nekernel.org/core #include #include #include #include constexpr long int operator ""_USD(long double n) { return n * 1000.0; } /// @brief Wrap OCL in ASIO calls. int main() { boost::asio::io_context ioc{1}; auto spawn_strand = boost::asio::make_strand(ioc); boost::asio::co_spawn(spawn_strand, [&]() -> boost::asio::awaitable { ocl::allocator int_alloc; auto balance = int_alloc.construct_array<1>(); *balance = operator ""_USD(150); ocl::io::println("USD: ", *balance); co_return; }, boost::asio::detached); ocl::asio::run_loop<[]() { std::terminate(); return; }>(ioc); return EXIT_SUCCESS; }