boostorg / boostorg/asio

BOOST_ASIO_HAS_STD_FUTURE_CLASS detection bug on clang-cl

Abierto
#417 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
C++
Estrellas
1.6k
Forks
485
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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`.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.