En C++20, nous sommes maintenant en mesure de contraindre l'option auto
pour n'être que d'un type spécifique. Donc si j'avais du code qui ressemble à ce qui suit sans aucune contrainte :
auto something(){
return 1;
}
int main(){
const auto x = something();
return x;
}
La variable x
on en déduit que c'est un int
. Cependant, avec l'introduction de C++20, nous pouvons maintenant contraindre le paramètre auto
pour être un certain type comme celui-ci :
std::integral auto something(){
return 0;
}
int main(){
const auto x = something();
return x;
}
Est-ce que ça ne va pas à l'encontre du but de auto
ici ? Si j'ai vraiment besoin d'un std::integral
ne pourrais-je pas simplement omettre le type de données auto
complètement ? Est-ce que je comprends mal l'utilisation de auto
complètement ?