[PATCH] [libc++] Check the support of default function template args.
tzuhsiang.chien at gmail.com
Mon Jan 6 06:01:57 PST 2014
Summary: This patch is a part of the efforts (and the last one) to make
g++ being able to compile libc++ *headers* in C++98 mode. This patch
removes the default function template arguments in <memory> and preserve
SFINAE by moving enable_if<> to function return type or argument type.
- template <class _Pp,* class = typename enable_if<...>*>
- _LIBCPP_INLINE_VISIBILITY explicit unique_ptr(_Pp __p) _NOEXCEPT
is changed to:
+ template <class _Pp>
+ _LIBCPP_INLINE_VISIBILITY explicit unique_ptr(_Pp __p,
+ *typename enable_if<..., __nat>::type = __nat()*) _NOEXCEPT
Please have a look. Thanks.
On Sat, Dec 28, 2013 at 1:54 AM, Logan Chien <tzuhsiang.chien at gmail.com>wrote:
> Hi Howard,
> I am doing some experiment to replace stlport with libc++ in the Android
> platform, which does not have libstdc++. Although I can compile the libc++
> library itself with clang, I can't build the world with clang at the
> moment. Thus, I wish to make the C++98/03 headers compatible with g++, so
> that I can include them without problems.
> On Sat, Dec 28, 2013 at 1:05 AM, Howard Hinnant <howard.hinnant at gmail.com>wrote:
>> Hi Logan,
>> Could you comment on the motivation for using g++ + libc++. I.e., why
>> use libc++ instead of the libstdc++ that comes bundled with g++?
>> On Dec 26, 2013, at 11:08 AM, Logan Chien <tzuhsiang.chien at gmail.com>
>> > Ping.
>> > On Fri, Dec 20, 2013 at 10:53 PM, Logan Chien <
>> tzuhsiang.chien at gmail.com> wrote:
>> > Ping. Any further comments?
>> > This patch tries to reduce the usage of the default function template
>> arguments, which is not supported in pre-C++0x. Without this change, we
>> will get compilation error from g++ if we tries to include libc++ headers
>> in pre-C++0x mode.
>> > To remove the usage of default function template arguments, the patch
>> moves the enable_if<> to return type or the function argument types. This
>> pattern is used in the other code of libc++ as well.
>> > Please let me know if you have any comments. Thanks.
>> > Sincerely,
>> > Logan
>> > _______________________________________________
>> > cfe-commits mailing list
>> > cfe-commits at cs.uiuc.edu
>> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-commits