Skip to content

<filesystem>: Fix damage caused by redefinition of _Iter_value_t to iter_value_t in concepts mode - #631

Merged
Casey Carter (CaseyCarter) merged 2 commits into
microsoft:masterfrom
CaseyCarter:fsbug
Mar 24, 2020
Merged

Casey Carter (CaseyCarter) merged 2 commits into
microsoft:masterfrom
CaseyCarter:fsbug

Conversation

@CaseyCarter

@CaseyCarter Casey Carter (CaseyCarter) commented Mar 23, 2020 •

Copy link
Copy Markdown
Contributor

Description

iter_value_t doesn't detour through iterator_traits, so it can be valid for non-iterator types. This breaks _Is_Source2, however, which expects _Iter_value_t to filter out non-iterator types.

Drive-by: rename _Is_Source2 to _Is_Source_impl to be consistent with how we name trait helpers elsewhere.

Fixes DevCom-953628.

[This is a dual of internal MSVC-PR-237115.]

Checklist

Be sure you've read README.md and understand the scope of this repo.

If you're unsure about a box, leave it unchecked. A maintainer will help you.

  • Identifiers in product code changes are properly _Ugly as per
    https://eel.is/c++draft/lex.name#3.1 or there are no product code changes.
  • The STL builds successfully and all tests have passed (must be manually
    verified by an STL maintainer before automated testing is enabled on GitHub,
    leave this unchecked for initial submission).
  • These changes introduce no known ABI breaks (adding members, renaming
    members, adding virtual functions, changing whether a type is an aggregate
    or trivially copyable, etc.).
  • These changes were written from scratch using only this repository,
    the C++ Working Draft (including any cited standards), other WG21 papers
    (excluding reference implementations outside of proposed standard wording),
    and LWG issues as reference material. If they were derived from a project
    that's already listed in NOTICE.txt, that's fine, but please mention it.
    If they were derived from any other project (including Boost and libc++,
    which are not yet listed in NOTICE.txt), you must mention it here,
    so we can determine whether the license is compatible and what else needs
    to be done.

…ter_value_t in concepts mode

`iter_value_t` doesn't detour through `iterator_traits`, so it can be valid for non-iterator types. This breaks `_Is_Source2`, however, which expects `_Iter_value_t` to filter out non-iterator types.

Drive-by: rename `_Is_Source2` to `_Is_Source_impl` to be consistent with how we name trait helpers elsewhere.

Fixes DevCom-953628.
@CaseyCarter Casey Carter (CaseyCarter) added the bug Something isn't working label Mar 23, 2020
@CaseyCarter
Casey Carter (CaseyCarter) requested a review from a team as a code owner March 23, 2020 19:54
Comment thread stl/inc/filesystem Resolved
@CaseyCarter
Casey Carter (CaseyCarter) merged commit 76d94b0 into microsoft:master Mar 24, 2020
@CaseyCarter Casey Carter (CaseyCarter) removed their assignment Jun 27, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants