SFINAE y decltype (auto)

Si una plantilla de función devuelvedecltype(auto) (u otro especificador de tipo usandoauto) pero la declaración de devolución estaría mal formada, ¿resulta SFINAE? Es elreturn ¿Declaración considerada como el contexto inmediato de la firma de función?

Nada en el draft N3690 parece requerir esto. Por defecto, supongo que SFINAE no se aplica.

Esto parece desafortunado porque puede escribir una función para reenviar a otra función, pero no puede condicionar su existencia al delegado como cuando escribe a mano. Además, la verificación de la existencia de una función miembro no estática entre pares no se puede hacer sindecltype(auto) porquethis no se puede utilizar en una firma de función. Sin embargo, esto indica un problema fundamental, comodecltype(auto) proporciona una ruta para considerar el tipo de clase como completo dentro de la firma de un miembro, donde no lo es.

¿Se ha escrito una propuesta o se ha analizado formalmente el problema en alguna parte?

La capacidad de tratar el tipo de clase como completo dentro de la firma de un miembro puede tener otras implicaciones ... pero eso es solo un forraje para otra pregunta.

Respuestas a la pregunta(2)

Su respuesta a la pregunta