Browse Source

支持VS2019 16.9

3.0.0
tearshark 3 years ago
parent
commit
4ac08ab5bd
5 changed files with 32 additions and 3 deletions
  1. 26
    0
      librf/librf.h
  2. 2
    0
      librf/src/def.h
  3. 1
    1
      librf/src/future.h
  4. 1
    1
      librf/src/generator.h
  5. 2
    1
      vs_proj/librf.vcxproj

+ 26
- 0
librf/librf.h View File

#include <optional> #include <optional>
#include <thread> #include <thread>
#include <cassert> #include <cassert>
#ifdef __cpp_impl_coroutine
#include <coroutine>
#ifdef _MSC_VER
extern "C" size_t _coro_frame_size();
extern "C" void* _coro_frame_ptr();
extern "C" void _coro_init_block();
extern "C" void* _coro_resume_addr();
extern "C" void _coro_init_frame(void*);
extern "C" void _coro_save(size_t);
extern "C" void _coro_suspend(size_t);
extern "C" void _coro_cancel();
extern "C" void _coro_resume_block();
#pragma intrinsic(_coro_frame_size)
#pragma intrinsic(_coro_frame_ptr)
#pragma intrinsic(_coro_init_block)
#pragma intrinsic(_coro_resume_addr)
#pragma intrinsic(_coro_init_frame)
#pragma intrinsic(_coro_save)
#pragma intrinsic(_coro_suspend)
#pragma intrinsic(_coro_cancel)
#pragma intrinsic(_coro_resume_block)
#endif
#else
#include <experimental/coroutine> #include <experimental/coroutine>
#endif
#include "src/stop_token.hpp" #include "src/stop_token.hpp"

+ 2
- 0
librf/src/def.h View File

#define LIB_RESUMEF_VERSION 30000 // 3.0.0 #define LIB_RESUMEF_VERSION 30000 // 3.0.0
#ifndef __cpp_impl_coroutine
namespace std namespace std
{ {
using experimental::coroutine_traits; using experimental::coroutine_traits;
using experimental::suspend_always; using experimental::suspend_always;
using experimental::suspend_never; using experimental::suspend_never;
} }
#endif
namespace resumef namespace resumef
{ {

+ 1
- 1
librf/src/future.h View File

} }
template<class _PromiseT/*, typename = std::enable_if_t<traits::is_promise_v<_PromiseT>>*/> template<class _PromiseT/*, typename = std::enable_if_t<traits::is_promise_v<_PromiseT>>*/>
void await_suspend(coroutine_handle<_PromiseT> handler)
void await_suspend(coroutine_handle<_PromiseT> handler) const
{ {
_state->future_await_suspend(handler); _state->future_await_suspend(handler);
} }

+ 1
- 1
librf/src/generator.h View File

//ref_state()->set_exception(std::move(e)); //ref_state()->set_exception(std::move(e));
std::terminate(); std::terminate();
} }
#if defined(__clang__) || defined(__GNUC__)
#if defined(__cpp_impl_coroutine) || defined(__clang__) || defined(__GNUC__)
void unhandled_exception() void unhandled_exception()
{ {
//this->ref_state()->set_exception(std::current_exception()); //this->ref_state()->set_exception(std::current_exception());

+ 2
- 1
vs_proj/librf.vcxproj View File

<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WIN32_WINNT=0x0601;_CONSOLE;ASIO_STANDALONE;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING=1;ASIO_DISABLE_CONCEPTS=1;RESUMEF_ENABLE_MULT_SCHEDULER=1;RESUMEF_DEBUG_COUNTER=0;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>_WIN32_WINNT=0x0601;_CONSOLE;ASIO_STANDALONE;_SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING=1;ASIO_DISABLE_CONCEPTS=1;RESUMEF_ENABLE_MULT_SCHEDULER=1;RESUMEF_DEBUG_COUNTER=0;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\librf;..\..\asio\asio\include;..\..\asio-1.10.6\include;..\modern_cb;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\librf;..\..\asio\asio\include;..\..\asio-1.10.6\include;..\modern_cb;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>/await</AdditionalOptions>
<AdditionalOptions>
</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<LanguageStandard>stdcpplatest</LanguageStandard> <LanguageStandard>stdcpplatest</LanguageStandard>
<CLanguageStandard>c11</CLanguageStandard> <CLanguageStandard>c11</CLanguageStandard>

Loading…
Cancel
Save