Maison > Article > développement back-end > Pourquoi est-ce que j'obtiens des erreurs lors de l'utilisation de std::min/max avec #define NOMINMAX ?
Dans une mise à jour récente de votre fichier main.cpp, vous avez introduit la directive de préprocesseur suivante :
#define NOMINMAX #include <Windows.h> #include <algorithm>
Cette action vous permet d'utiliser les fonctions std::max et std::min dans votre code. Cependant, les tentatives ultérieures d'utilisation de ces fonctions dans d'autres fichiers génèrent des erreurs telles que :
error C2589: '(' : illegal token on right side of '::' error C2059: syntax error : '::'
Malgré les tentatives de définition de NOMINMAX dans ces fichiers supplémentaires, le problème persiste.
Le problème réside dans le fait que NOMINMAX définit des alias pour les macros Windows min et max, écrasant les versions C standard fournies par
(std::min)(x, y);
Cette approche évite d'invoquer les macros de type fonction, permettant ainsi d'appliquer les versions C standard.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!