Ответ 1
Предложение "Если функция преобразования является функцией-членом", была добавлена в рабочий черновик в N2798 как часть формулировки Concepts per N2773 Предлагаемая формулировка концепций. N2798 12.3.2/1 читает (я буду использовать жирный, чтобы показать дополнения, и outout, чтобы показать удаление):
1 Функция-член класса
X
, не имеющая параметров, или связанная функция понятия, единственным параметром которого является типX
, с имя формыпреобразования-функция-ID:
operator
Тип конверсиипреобразования типа-ID:
type-specifier-seq атрибут-спецификатор opt конвертер-декларатор opt
конверсионного описатель:
ptr-operator conversion-declarator opt
указывает преобразование из
X
в тип, указанный идентификатором типа преобразования. Такие функцииназываются функциями преобразования.Классы, перечисления и typedef-имена не должны быть объявлены в спецификаторе type-seq. Не могут быть указаны ни типы параметров, ни типНет. Если функция преобразования является функцией-членом, tTТипaфункция преобразования (8.3.5) - это "функция, не возвращающая параметр, возвращающий тип преобразования- идентификатор" ; если функция преобразования является связанной функцией, тип функции преобразования - это "функция, принимающая параметр типаX
, возвращающий идентификатор типа преобразования" . Функция преобразования никогда не используется для преобразования...
В тексте N2960 была снята формулировка понятий. "Если функция преобразования является функцией-членом", она также должна была быть удалена в то время, так как она теперь оставлена. Соответствующая часть N2960 §12.3.2/1:
1 Функция-член класса
X
, не имеющая параметров,или ассоциированная функция понятия, единственным параметром которого является тип X,с именем формапреобразования-функция-ID:
operator
Тип конверсиипреобразования типа-ID:
type-specifier-seq attribute-specifier opt conversion-declarator opt
конверсионного описатель:
ptr-operator conversion-declarator opt
указывает преобразование из
X
в тип, указанный идентификатором типа преобразования. Такие функции называются функциями преобразования. Нельзя указать тип возврата. Если функция преобразования является функцией-членом, тип функции преобразования (8.3.5) - это "функция без параметра, возвращающего идентификатор-тип-идентификатор"; если функция преобразования является связанной функцией, тип функции преобразования - это "функция, принимающая параметр типа....X
, возвращающий идентификатор типа преобразования"