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] | |
This patch implements P0012R1: "Make exception-specifications be part of the type system, version 5". Some of the conversion logic was already there from the transactional memory TS implementation, and indeed the semantics of the noexcept function pointer conversion was modeled on that wording, but I've simplified it in some places and added some missing cases. One thing that turned up was that we can't defer instantiation of noexcept-specifiers outside of the toplevel type of a function, so I needed to add a tsubst flag to indicate that context. This patch implements Richard Smith's suggestion that we allow noexcept(E) to be a deduced context in order to avoid another factor of two expansion in the partial specializations of is_function. This is not part of the C++17 CD, but seems like the direction of the committee. Accordingly, I've added macros for this to c++config and adjusted <type_traits> and <new> to use them. Tested x86_64-pc-linux-gnu. Are the libstdc++ changes OK for trunk?
Attachment:
noexcept-type.diff
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |