This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[v3 PATCH] Use constexpr addressof in optional, SFINAE housekeeping for any, optional and tuple.


Tested on Linux-PPC64.

2016-10-26  Ville Voutilainen  <ville.voutilainen@gmail.com>

    Use constexpr addressof in optional, SFINAE housekeeping
    for any, optional and tuple.
    * include/std/any (__do_emplace(_Args&&...)): New.
    (__do_emplace(initializer_list<_Up>, _Args&&...)): Likewise.
    (__any_constructible): Likewise.
    (__any_constructible_t): Use __any_constructible.
    (operator=(_ValueType&&)): SFINAE in the return type.
    (emplace(_Args&&...)): Likewise.
    (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
    * include/std/optional (_Has_addressof_mem): Remove.
    (_Has_addressof_free): Likewise.
    (_Has_addressof): Likewise.
    (__constexpr_addressof(_Tp&)): Likewise.
    (operator->): Use std::__addressof.
    * include/std/tuple (operator=(const tuple<_UElements...>&)):
    SFINAE in return type.
    (operator=(tuple<_UElements...>&&)): Likewise.
    * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.

Attachment: addressof-optional-housekeeping.diff
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]