J'ai vu cet exemple dans la documentation de cppreference pour std::numeric_limits
#include <limits>
#include <iostream>
int main()
{
std::cout << "type\tlowest()\tmin()\t\tmax()\n\n";
std::cout << "uchar\t"
<< +std::numeric_limits<unsigned char>::lowest() << '\t' << '\t'
<< +std::numeric_limits<unsigned char>::min() << '\t' << '\t'
<< +std::numeric_limits<unsigned char>::max() << '\n';
std::cout << "int\t"
<< std::numeric_limits<int>::lowest() << '\t'
<< std::numeric_limits<int>::min() << '\t'
<< std::numeric_limits<int>::max() << '\n';
std::cout << "float\t"
<< std::numeric_limits<float>::lowest() << '\t'
<< std::numeric_limits<float>::min() << '\t'
<< std::numeric_limits<float>::max() << '\n';
std::cout << "double\t"
<< std::numeric_limits<double>::lowest() << '\t'
<< std::numeric_limits<double>::min() << '\t'
<< std::numeric_limits<double>::max() << '\n';
}
Je ne comprend pas l'opérateur "+" dans
<< +std::numeric_limits<unsigned char>::lowest()
Je l'ai testé et remplacé par "-", ce qui a également fonctionné. Quelle est l'utilité d'un tel opérateur "+" ?
3 votes
Essayez-le. Qu'est-ce que vous obtenez si vous laissez de côté le
+
?4 votes
Cette question ne serait pas besoin de à demander si l'auteur du code se soucie d'expliquer ce que cela signifie ou d'utiliser un cast explicite à la place...
0 votes
Si vous le remplacez par
-
alors les sorties ne seront pas les valeurs correctes pour les limites1 votes
Pour mémoire, si vous voulez chercher ce genre de choses sur Google, on appelle cela l'opérateur "unaire plus" - il est unaire parce qu'il ne prend qu'une seule valeur (dans ce cas, la chose juste après), et "plus" est la façon Google-friendly de dire
+
. Dans ce cas, votre requête serait probablement "c++ unary plus". Ce n'est pas vraiment intuitif, et vous devez apprendre à lire la documentation que vous trouverez, mais c'est une compétence utile à cultiver.