what libc++ version introduced C++14 delete operators?

Hi,

I hope this is the right place to ask:

What libc++ release version first had the C++14 new & delete operators (specifically, delete(void*, size_t))? I think they were introduced in svn rev. 229281 .

I'm interested in particular how one can test for presence of these functions, preferably with an actual linking step (aka autoconf test).

Thanks!

René

release.
An imperfect test would be checking _LIBCPP_VERSION and if it is greater
than 1101, then it will have those calls.

This has two drawbacks:
* There will be versions of libc++ where _LIBCPP_VERSION == 1101 and the
calls exist.
* There *may* be customized versions of libc++ where vendors have decided
to not ship those calls. (I don't know of any, but ...).

-- Marshall

Hi,

An imperfect test would be checking _LIBCPP_VERSION and if it is greater
than 1101, then it will have those calls.

Thanks, that's better than nothing.

This has two drawbacks:
* There will be versions of libc++ where _LIBCPP_VERSION == 1101 and the
calls exist.

The application here is a GCC patch I'm working on (and off :)) to give it a -
stdlib=libstdc++|libc++ option. With older libc++ versions it appears to be
possible to use GCC's static libsupc++ as a source for the missing operators. I
presume that a trailing -lsupc++ linker argument will simply become a noop when
libc++ already provided all dependencies. To be confirmed of course (and sadly I
have no idea ATM how to write a test case.)

* There *may* be customized versions of libc++ where vendors have decided
to not ship those calls. (I don't know of any, but ...).

Why would vendors have done that? The only reason I can see is to allow a newer
libc++ to be used with older clang versions that provided the operators
implicitly, but such combinations shouldn't cause problems anyway, right?

R.

libc++ actually has a test suite that can be used on other compilers and it
looks like someone's been running it against gcc. You will find tests for
those features in libcxx/test/.

See
https://releases.llvm.org/5.0.0/projects/libcxx/docs/TestingLibcxx.html#cmdoption-lit-arg-use_system_cxx_lib
and
https://releases.llvm.org/5.0.0/projects/libcxx/docs/TestingLibcxx.html#cmdoption-lit-arg-cxx_under_test

Thanks, I'll have a look at those next time I come back to this lil' pet project
:slight_smile:

R.