Comment utiliser std::min/max avec #define NOMINMAX
Pour utiliser les fonctions de bibliothèque standard std::max et std : :min lors de la définition de la macro NOMINMAX, suivez ces étapes :
1. Définissez NOMINMAX dans tous les fichiers où std::min/max sont utilisés
Pour garantir que la macro prend effet, vous devez définir #define NOMINMAX dans tous les fichiers où vous utiliserez std::max et std : :min. Cela évite les collisions avec les fonctions max et min intégrées de Windows.
2. Utilisez des parenthèses pour contourner l'expansion des macros
NOMINMAX définit std::min et std::max comme macros. Si vous rencontrez les erreurs susmentionnées, cela signifie que le préprocesseur interprète ces fonctions comme des macros. Pour contourner cela, mettez les noms de fonctions entre parenthèses :
(std::min)(x, y); // For std::min (std::max)(x, y); // For std::max
En mettant les noms de fonctions entre parenthèses, le préprocesseur les traitera comme des appels de fonction plutôt que comme des extensions de macro.
Remarque :Cette solution est quelque peu gênante, car elle nécessite de mettre entre parenthèses std::min et std::max à chaque fois que vous utilisez eux. Cependant, il s'agit d'une solution de contournement pour ce problème particulier.
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!