SFINAE e decltype (auto)

Se um modelo de função retornardecltype(auto) (ou outro especificador de tipo usandoauto) mas a declaração de retorno seria mal formada, o resultado da SFINAE? É oreturn declaração considerada como o contexto imediato da assinatura da função?

Nada no draft da N3690 parece exigir isso. Por padrão, acho que o SFINAE não se aplica.

Isso parece lamentável porque você pode escrever uma função para encaminhar para outra função, mas você não pode tornar sua existência condicional no delegado como ao escrever longhand. Além disso, verificar a existência de uma função de membro não estático de pares não pode ser feito semdecltype(auto) Porquethis não pode ser usado em uma assinatura de função. No entanto, isso indica um problema fundamental, comodecltype(auto) fornece um caminho para considerar o tipo de classe como completo dentro de uma assinatura de membro, onde não é.

Uma proposta foi escrita ou o problema foi formalmente analisado em algum lugar?

A capacidade de tratar o tipo de classe como completa dentro de uma assinatura de membro pode ter outras implicações ... mas isso é apenas uma questão para outra pergunta.

questionAnswers(2)

yourAnswerToTheQuestion