An optional reference or possibly cv-qualified pointer is removed from
the second type in the sequence to determine the the class type. The cv-qualification
of the resulting type applies to the member function, unless otherwise
explicitly specified by the property tag.

If the template parameters do not describe a valid type, any attempt to
access the type member will result in a compile error.