Я пытаюсь скомпилировать класс, который использует cppwinrt, используя llvm-clang 8.0.Единственный блокировщик на данный момент заключается в том, что clang не может найти реализации для сопрограммных встроенных функций, определенных в experimental/resumable
.Это встроенные функции, определенные в заголовке VC ++ experimental/resumable
:
extern "C" size_t _coro_resume(void *);
extern "C" void _coro_destroy(void *);
extern "C" size_t _coro_done(void *);
#pragma intrinsic(_coro_resume)
#pragma intrinsic(_coro_destroy)
#pragma intrinsic(_coro_done)
В соответствии с документацией Clang это встроенные функции в Clang:
void __builtin_coro_resume(void *addr);
void __builtin_coro_destroy(void *addr);
bool __builtin_coro_done(void *addr);
Если я вручную заменю встроенные функции взаголовок с лязгами, которые он компилирует.Однако это явно не переносимое решение.Могу ли я в любом случае добиться того же результата с помощью некоторого прагматического хака или замены заголовка времени компиляции?