From 038c1170fd28229bff903f3203095713946dd986 Mon Sep 17 00:00:00 2001 From: Zengtudor Date: Tue, 15 Jul 2025 16:11:56 +0800 Subject: [PATCH] update --- .gitignore | 2 ++ CMakeLists.txt | 15 +++++++++++++++ include/asyncio.hpp | 24 ++++++++++++++++++++++++ src/test1.cpp | 15 +++++++++++++++ 4 files changed, 56 insertions(+) create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 include/asyncio.hpp create mode 100644 src/test1.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e050ba0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/build +/.cache \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..8e43c93 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.10) + +project(ZtAsyncio CXX) + +set(CMAKE_CXX_STANDARD 26 + CMAKE_CXX_STANDARD_REQUIRED ON + CMAKE_CXX_EXTENSIONS OFF) + +include_directories( + ${CMAKE_CURRENT_SOURCE_DIR}/include +) + +add_executable(test1 + src/test1.cpp +) \ No newline at end of file diff --git a/include/asyncio.hpp b/include/asyncio.hpp new file mode 100644 index 0000000..60c95f0 --- /dev/null +++ b/include/asyncio.hpp @@ -0,0 +1,24 @@ +#include +#include +namespace zt{ + template + struct Task{ + struct promise_type; + struct promise_type{ + std::promise promise_; + void return_value(T value){promise_.set_value(value);} + auto initial_suspend(){ + return std::suspend_always{}; + } + auto final_suspend()noexcept{ + return std::suspend_always{}; + } + auto get_return_object(){ + return Task{}; + } + void unhandled_exception(){ + return; + } + }; + }; +} \ No newline at end of file diff --git a/src/test1.cpp b/src/test1.cpp new file mode 100644 index 0000000..2f50e88 --- /dev/null +++ b/src/test1.cpp @@ -0,0 +1,15 @@ +#include +#include +#include +#include +#include "asyncio.hpp" + +zt::Task return0(){ + std::println(std::cout,"return 0;"); + co_return 0; +} + +int main(){ + auto ret = return0(); + ret.promise_type +} \ No newline at end of file