"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué recibo errores al utilizar std::min/max con #define NOMINMAX?

¿Por qué recibo errores al utilizar std::min/max con #define NOMINMAX?

Publicado el 2024-12-22
Navegar:105

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

Usando std::min/max con #define NOMINMAX

En una actualización reciente de su archivo main.cpp, introdujo la siguiente directiva de preprocesador:

#define NOMINMAX
#include 
#include 

Esta acción le permite utilizar las funciones std::max y std::min dentro de su código. Sin embargo, los intentos posteriores de emplear estas funciones en otros archivos producen errores como:

error C2589: '(' : illegal token on right side of '::'
error C2059: syntax error : '::'

A pesar de los intentos de definir NOMINMAX en estos archivos adicionales, el problema persiste.

El problema radica en el hecho de que NOMINMAX define alias para el mínimo de Windows y macros max, sobrescribiendo las versiones C estándar proporcionadas por . Para resolver esto, use paréntesis alrededor de las llamadas std::min y std::max:

(std::min)(x, y);

Este enfoque evita invocar la función- como macros, lo que permite aplicar las versiones estándar de C.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3