[cfe-dev] [libc++] Is libc++ compatible with previous c++ language standard implementation

Craig Topper via cfe-dev cfe-dev at lists.llvm.org
Tue Mar 6 23:25:42 PST 2018


I'm not sure about libc++'s support for pre-C++11, but I think it does
support earlier standards. The constructor you're asking about isn't a
great example to look at. The function signature (1) was split into two
different functions in C++11 rather than using a defaulted argument. But
the calling code shouldn't be able to tell the difference. It doesn't
require any code changes on the user's part.

It also looks like even the defaulted argument for alloc is implemented in
libc++ with different signatures which is different than what the spec
says. But again user code can't tell.

~Craig

On Tue, Mar 6, 2018 at 10:38 PM, Zeson Wu via cfe-dev <
cfe-dev at lists.llvm.org> wrote:

> Hi, All.
>
> Does anybody know that whether libc++ is compatible with previous c++
> language standard implementation or not? For example, I know libc++ is now
> support c++11, I will show a example.
>
> http://en.cppreference.com/w/cpp/container/vector/vector. In the
> reference, there are two different constructors for vector,
>
> explicit vector( size_type count, const T& value = T(), const Allocator&
> alloc = Allocator()); (until C++11) *(1)*
> explicit vector( size_type count );(since C++11) (until C++14) *(2)*
>
> If I use vector<T> a(1), which one will be chosen with different c++ std
> command option, such as -std=c++03, -std=c++11? Actually, I can not find
> the (1) version in libc++ source.
>
> In my option, both two functions should be implemented and guarded by
> related language level macro, but I can not find in libc++ source. So
> libc++ is not compatible with previous c++ language standard implementation?
>
> Thanks.
>
> --
> Zeson
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20180306/2887fd86/attachment.html>


More information about the cfe-dev mailing list