BOOST_ASIO_HAS_STD_FUTURE_CLASS detection bug on clang-cl
- Dominant language
- C++
- Stars
- 1.6k
- Forks
- 485
- PR merge metrics
- No merged PRs in 30d
Description
clang-cl on Windows uses the clang compiler with the MSVC STL. In the detection logic here https://github.com/boostorg/asio/blob/develop/include/boost/asio/detail/future.hpp
`__GNUC__` is true (as clang sets it)
`BOOST_ASIO_HAS_CLANG_LIBCXX` is false (as it's MSVC STL)
`_GLIBCXX_HAS_GTHREADS` is false (as it's not that either)
So this leaves `BOOST_ASIO_HAS_STD_FUTURE_CLASS` undefined.
This in turn causes `#include ` to silently fail to define anything, and that leads to an obscure error message about incomplete types and unexpected void when trying to e.g. post a packaged_task (ie the same error message as if you try to use that functionality without including that header, as now the header is effectively empty).
Workaround is to manually define `BOOST_ASIO_HAS_STD_FUTURE_CLASS`.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.