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
Paragraphs 2 and 6 of [basic.type.qualifier] appear to be in contradiction (emphases are mine) #4297
Comments
There is no contradiction. The first example in p6 is saying that the top-level qualifier on the compound type is |
Ok I see what you mean. But what does it mean a |
Exactly that: a pointer-to-member is just some (special) data type, and that type can be volatile-qualified, as-if it were a volatile int. |
using PMF = void (C::*)(int) const;
PMF pmf = &C::foo;
volatile PMF vol_pmf = pmf; |
I really think this kind of thing belongs on StackOverflow. Instead of telling us there's a flaw in the standard, you could ask on StackOverflow why the wording seems contradictory. This could be clarified there, and so could your follow-up question about what the volatile-qualified type means. |
Well if that's what you prefer, definitely I'll stop posting issues here. Thanks for your kind attention. Good luck! |
"what does it mean" The same what it means to have a volatile T for any other (scalar) T. |
[basic.type.qualifier]/2:
[basic.type.qualifier]/6:
Note : According to [basic.compound]/(1.3) and (1.8), both pointers and pointers to member are compound types.
The text was updated successfully, but these errors were encountered: