Maison > développement back-end > C++ > le corps du texte

Comment utiliser std::min/max avec #define NOMINMAX ?

DDD
Libérer: 2024-11-12 07:46:02
original
807 Les gens l'ont consulté

How to Use std::min/max with #define NOMINMAX?

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal