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
Several rules conflict with the modification of P1971 #4844
Comments
A member function of a class template is a templated function. ([temp.pre]/8) |
However, that rule not only applies to the member function of a class template but also non-member function. We should restrict that "if it is templated" as a condition. Moreover, non-template function is defined as:
I don't know whether the specialization in the parenthesis only refers to the specialization of a function template or it also refers to the specialization of a member function of a class template. However, the rules say it is not related to a function template instead of templated function, which means specialization of a member function of a class template and common function all can be called non-template function. Hence, the above opinion is also suitable for it. |
After further consideration. I think [basic.scope#scope-3.3.1] is sufficient here since the "if any". [over.over#5] is arguably right since it only applies to member function with constraints. |
As the modification P1971 and it had merged in the current draft
[dcl.decl#general-4]
This rule requires that the trailing
requires-clause
should be only used in a declaration of a template-declaration.Consider these several rules that has conflicted with this modification
[basic.scope#scope-3.3.1]
[over.over#5]
If it is a non-template function, how could it has a constraint as per [dcl.decl#general-4]. As far as now, I find out these contradictions located in these rules. Maybe, there is more in somewhere.
The text was updated successfully, but these errors were encountered: