This commit is contained in:
Zengtudor 2025-07-15 16:11:56 +08:00
parent 33f1554c47
commit 038c1170fd
4 changed files with 56 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/build
/.cache

15
CMakeLists.txt Normal file
View File

@ -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
)

24
include/asyncio.hpp Normal file
View File

@ -0,0 +1,24 @@
#include <coroutine>
#include <future>
namespace zt{
template<class T>
struct Task{
struct promise_type;
struct promise_type{
std::promise<T> 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<T>{};
}
void unhandled_exception(){
return;
}
};
};
}

15
src/test1.cpp Normal file
View File

@ -0,0 +1,15 @@
#include <future>
#include <iostream>
#include <ostream>
#include <coroutine>
#include "asyncio.hpp"
zt::Task<int> return0(){
std::println(std::cout,"return 0;");
co_return 0;
}
int main(){
auto ret = return0();
ret.promise_type
}