To produce the transformed template, for each type, non-type, or template
template parameter (including template parameter packs (
[temp.variadic])
thereof) synthesize a unique type, value, or class template
respectively and substitute it for each occurrence of that parameter
in the function type of the template
.[
Note 1: 
The type replacing the placeholder
in the type of the value synthesized for a non-type template parameter
is also a unique synthesized type
. — 
end note]
Each function template 
M that is a member function
is considered to have
a new first parameter of type 
X(M), described below,
inserted in its function parameter list
.If exactly one of the function templates was considered by overload resolution
via a rewritten candidate (
[over.match.oper])
with a reversed order of parameters,
then the order of the function parameters in its transformed template
is reversed
.For a function template M with cv-qualifiers cv
that is a member of a class A: