Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
'tipo de retorno': todas as expressões de retorno devem resultar no mesmo tipo: anteriormente era 'tipo de retorno'
Observações
Um lambda deve especificar o seu tipo de retorno, a menos que contenha uma única instrução return. Se um lambda contiver várias instruções de retorno, todas elas deverão ter o mesmo tipo.
Para corrigir este erro
- Especifique um tipo de retorno posterior para o lambda. Verifique se todos os retornos do lambda são do mesmo tipo ou podem ser implicitamente convertidos para o tipo de retorno.
Example
O exemplo a seguir gera C3487 porque os tipos de retorno do lambda não coincidem:
// C3487.cpp
// Compile by using: cl /c /W4 C3487.cpp
int* test(int* pi) {
// To fix the error, uncomment the trailing return type below
auto odd_pointer = [=]() /* -> int* */ {
if (*pi % 2)
return pi;
return nullptr; // C3487 - nullptr is not an int* type
};
return odd_pointer();
}