Maison > développement back-end > C++ > Pourquoi est-ce que j'obtiens des erreurs lors de l'utilisation de std::min/max avec #define NOMINMAX ?

Pourquoi est-ce que j'obtiens des erreurs lors de l'utilisation de std::min/max avec #define NOMINMAX ?

Patricia Arquette
Libérer: 2024-11-14 17:18:02
original
345 Les gens l'ont consulté

Why Do I Get Errors When Using std::min/max with #define NOMINMAX?

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

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

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 . Pour résoudre ce problème, utilisez des parenthèses autour des appels std::min et std::max :

(std::min)(x, y);
Copier après la connexion

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal