vsapsai added inline comments.
================
Comment at: libcxx/include/memory:1470
+ decltype(_VSTD::declval<_Alloc>().construct(_VSTD::declval<_Pointer>(),
+ _VSTD::declval<_Args>())),
+ void
----------------
Quuxplusone wrote:
> I think you should replace this `)))` with `)), void())` for absolute
> correctness (e.g. `construct` might plausibly return a pointer to the
> constructed object, and I think C++03 is okay with that).
> Otherwise, awesome, this looks like what I'd expect. :)
The standard says the result of `construct` is not used but I haven't found any
mention it **must** be `void`.
That being said, the proposed change fails for the C++03 macro-based decltype
shim:
error: too many arguments provided to function-like macro invocation
_VSTD::declval<_Args>()), void()),
^
One option to fix that is to use
is_same
<
decltype(_as_before_),
decltype(_the_same_copy_pasted_argument_)
>
But I don't think this use case is worth such hacks.
https://reviews.llvm.org/D48753
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits