Maison > développement back-end > C++ > Dois-je mettre entre parenthèses std :: min et std :: max lors de l'utilisation de NOMINMAX ?

Dois-je mettre entre parenthèses std :: min et std :: max lors de l'utilisation de NOMINMAX ?

DDD
Libérer: 2024-11-09 17:10:02
original
1058 Les gens l'ont consulté

Should I Parenthesize std::min and std::max When Using NOMINMAX?

std::min/max Ambiguïté avec NOMINMAX

Dans le but d'exploiter les fonctions std::min et std::max au sein un projet C qui intègre Windows.h, vous avez introduit la directive NOMINMAX pour éviter d'éventuelles collisions de noms. Cependant, vous avez rencontré un obstacle en tentant d'accéder à ces fonctions dans des fichiers qui n'utilisent pas directement NOMINMAX.

Pour résoudre ce problème, Microsoft suggère de recourir à une solution peu orthodoxe :

Parenthèses les noms de fonctions

Dans les fichiers dépourvus de la directive NOMINMAX, entourez les noms de fonctions std::min et std::max entre parenthèses. Cette syntaxe, (std::min)(x, y) et (std::max)(x, y), empêche le compilateur de les interpréter comme des macros de type fonction, ce qui peut interférer avec votre intention.

Il est important de noter que cette solution n'est pas idéale et ne doit être considérée qu'en dernier recours. L'approche appropriée consiste à garantir que NOMINMAX est défini dans tous les fichiers dans lesquels vous avez l'intention d'utiliser std::min et std::max, permettant au compilateur de résoudre systématiquement leurs ambiguïtés.

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