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
[conv.qual] Improvement and supply the omitted result #5358
Comments
|
Yes, but it cannot clarify that we use the wording such as one type
However, we say the symbol cvi is a set of cv-qualifiers ([basic.type.qualifier]) in [conv.qual] p1. [basic.type.qualifier] p6 lists the valid set
There is no {const, const}.
when n is
It has implied that the type to which the rule applied whose qualification-decomposition should at least comprise one "pointer to" component. Because we didn't say |
Another issue is that [expr.const.cast] p7 does not coordinate well with [conv.qual] p3. Consider this example static_cast<int const>(0); // cast away constness? In this case,
this issue remains existence because
|
[conv.qual] p3 omitted to specify the result of the conversion, it might be
it implies that the result has the same pointer value as the original.
admit only two similar types can undergo qualification conversion
The current wording just says
According to the definition of qualification-combined type, it just concerns whether the corresponding Pi and CVi satisfy some conditions. For example:
int **
andchar**
.#4860 has excluded an identity conversion from qualification conversion. But two types that have a difference only in their top-level cv-qualifications are also considered to be different types. For example:
int const
vs.int
,char* const
vs.char*
, they only differ in their top-level cv-qualifiers.So, based on that, the wording might be changed to
duplicately add
const
[conv.qual] p3.3 says
Consider a const has added in cv3k due to [conv.qual] p3.1. [conv.qual] p3.3 can result in a duplicate addition. For example:
T1 = int***
andT2 = int *const* const*
, after applying [conv.qual] p3.1, T3 will bepointer to const pointer to const pointer to int
where cv32 is different from cv12, however, cv31 does have aconst
.{const const }
is not a valid set defined in [basic.type.qualifier] p6.The change might be
[conv.qual] p3 should apply to a pointer, a pointer to member types
Because the bullets in p3 refer to the component
Pi
that is defined as “pointer to”, “pointer to member of class Ci of type”, “array of Ni”, “array of unknown bound of”. So, the precondition for this definition should ben
≥ 1The initial sentence might be changed to
As a similar reason to the above, the definition of similar might be changed to
The text was updated successfully, but these errors were encountered: