Skip to content

fix typo #3033

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 14, 2021
Merged

fix typo #3033

merged 1 commit into from
Mar 14, 2021

Conversation

fsb4000
Copy link
Contributor

@fsb4000 fsb4000 commented Mar 13, 2021

The link was correct. There is no https://wg21.link/p0962r2

By the way cppreference has https://wg21.link/P0593R6 but your table doesn't have the row. I'm not sure if this row is needed in your table, but I would be very grateful if you could say when P0593R6 was implemented for MSVC?

@PRMerger15
Copy link
Contributor

@fsb4000 : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Copy link
Contributor

@colin-home colin-home left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, thanks. I'll look into the other issue.

@colin-home
Copy link
Contributor

@fsb4000
The compiler dev team were of the opinion that p0593r6 was a no-op for compiler behavior, and closed the related work item a year ago without adding it to the tracking table I use to populate the conformance page. I can add it, but the version column would say N/A.

@colin-home colin-home merged commit df10b55 into MicrosoftDocs:master Mar 14, 2021
@fsb4000
Copy link
Contributor Author

fsb4000 commented Mar 14, 2021

@corob-msft

Thank you very much! I added "N/A" to the cppreference table.

@fsb4000 fsb4000 deleted the patch-2 branch March 14, 2021 13:15
@colin-home
Copy link
Contributor

@fsb4000
I wonder if "Yes" is better than "N/A" for P0593R6, since all versions of the MSVC compiler show the required behavior. The only difference is, that behavior is no longer considered undefined. Lifetime analysis is optionally run in a separate tool (even though it's invoked by the /analyze compiler switch), so there have never been compiler diagnostics that would need to be turned off to support P0593R6.

I see a similar N/A marking for P1236R1; This entry probably also deserves a "Yes". Signed integers have always been two's complement in the Microsoft compilers. It's the native representation on all architectures MSVC has ever supported. There's never been MSVC support for one's complement or sign-magnitude arithmetic.

@fsb4000
Copy link
Contributor Author

fsb4000 commented Mar 15, 2021

Done! Thanks again!

@frederick-vs-ja
Copy link

@corob-msft
P0593R6 changes the semantics of pseudo-destructor call, making it end the lifetime of a scalar object. And as pseudo-destructor call and explicit destructor call (given the destructor is constexpr) are allowed in constant evaluation via P0784R7, UB introduced by P0593R6 (out-of-lifetime access) are required to be diagnosed in constant evaluation.
So P0593R6 is not no-op for compiler behavior IMO.

"Yes" is better for P1236R1, as left shift operations changed from undefined to well-defined is not diagnosed in constant expression (e.g. constexpr int i = (-1) << 15; is accepted, even in VS2015). However, in order to be conformant to C++14/17, such operations should be diagnosed in C++14/17 modes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants