SFINAE и decltype (авто)

Если шаблон функции возвращаетсяdecltype(auto) (или другой спецификатор типа, использующийauto) но выражение return было бы неверно сформировано, приводит ли SFINAE? Этоreturn оператор считается непосредственным контекстом функции подписи?

Ничто в проекте N3690, кажется, не требует этого. По умолчанию я думаю, что SFINAE не применяется.

Это кажется неудачным, потому что вы можете написать функцию для пересылки в другую функцию, но вы не можете сделать ее существование обусловленным делегатом, как при написании от руки. Кроме того, проверка наличия равноправной нестатической функции-члена не может быть выполнена безdecltype(auto) так какthis не может использоваться в сигнатуре функции. Однако это указывает на фундаментальную проблему, какdecltype(auto) предоставляет путь к рассмотрению типа класса как завершенного в сигнатуре члена, где он 'нет.

Было ли написано предложение, или проблема была формально проанализирована где-нибудь?

Возможность трактовать тип класса как завершенный в сигнатуре члена может иметь и другие последствия… но это'просто корм для другого вопроса.

Ответы на вопрос(2)

Ваш ответ на вопрос