[cfe-dev] Which version of libc++ provides C++14 shared_mutex header
Edward Diener
eldlistmailingz at tropicsoft.com
Mon Jun 8 22:15:12 PDT 2015
I asked this question about libc++ on the LLVM developers mailing list
but since no one had any informatory answer there they suggested I come
here.
I want to determine, for a given _LIBCPP_VERSION of libc++, whether the
C++14 header file shared_mutex is supported/provided at compile time
through some sort of predefined macro or combination of macros.
Since libc++ appears to be independent of clang, gcc, or whatever
compiler might want to use it as its C++ standard library, I would have
expected that the optimum way of doing this was to find libc++
documentation that explained that for a particular _LIBCPP_VERSION a
particular set of header files were supported. Or, at the very least,
for a particular _LIBCPP_VERSION C++03 header files only were supported,
for another particular _LIBCPP_VERSION C++03 and C++11 header files were
supported, for another particular _LIBCPP_VERSION C++03, C++11, and
C++14 header files were supported etc. Or something like that.
I do know about the clang include file checking macros but I don't know
with what version of clang I can expect this to work. But given that the
include file checking macros were introduced in gcc with version 5.1,
and given that other compilers could potentially be using libc++, I am
hoping that there is a strictly libc++ solution to my problem.
If there is not I would like to recommed to the libc++ developers that
there should be.
I am working to potentially add support in Boost.config to shared_mutex
header file detection, and libc++ is one of the standard libraries
supported by Boost.config. Unfortunately the detection of standard
header files for Boost.config in libc++ is pretty primitive. Is there
any documentation about the predefined macros in libc++ which could help
us at Boost come up with a much better way to determine what libc++
supports and does not support for any given release of the library ? If
I have missed a discussion or discussions about this regarding libc++
please feel free to point me in the right direction. My google search
regarding libc++ and how to tell what is supports for any given release
yields almost nothing of value and its documentation page at
http://libcxx.llvm.org/ does not tell me anything like what I want to
know either.
More information about the cfe-dev
mailing list