C++ Logo


Advanced search

Implied object parameter during partial ordering

From: Brian Bi <bbi5291_at_[hidden]>
Date: Thu, 28 Oct 2021 19:33:03 -0400
In the description of function template partial ordering, there's a
procedure for transforming member functions so that they can be compared
with non-member functions: http://eel.is/c++draft/temp.func.order#3

I find the wording difficult to understand. First, the fact that "Each
function template *M* that is a member function is considered to have a new
first parameter..." occurs in this paragraph seems to suggest that the
insertion of the implied object parameter is only done to the template that
we're currently transforming (the argument template). But it seems that the
intent is that the insertion of the implied object parameter is always done
to both templates, because we want the parameter template (if a member
function) to also have the implied object parameter. So I think the current
wording is not clear enough about that.

Second, the wording "the positionally-corresponding parameter of the other
transformed template" is also confusing for the same reason: we only
transform one of the templates at a time.

I suspect this is a purely editorial issue, but I'm not sure what an
improved version of the wording would look like. Maybe someone on this list
can help suggest wording so I can open up a github issue (or just open up a
github issue yourself).

*Brian Bi*

Received on 2021-10-28 18:33:17