Dòng này hoạt động chính xác trong một chương trình thử nghiệm nhỏ, nhưng trong chương trình mà tôi muốn nó, tôi nhận được khiếu nại biên dịch sau:cảnh báo C4003 và lỗi C2589 và C2059 trên: x = std :: numeric_limits <int> :: max();
#include <limits>
x = std::numeric_limits<int>::max();
c:\...\x.cpp(192) : warning C4003: not enough actual parameters for macro 'max'
c:\...\x.cpp(192) : error C2589: '(' : illegal token on right side of '::'
c:\...\x.cpp(192) : error C2059: syntax error : '::'
tôi nhận được kết quả tương tự với:
#include <limits>
using namespace std;
x = numeric_limits<int>::max();
Tại sao nó thấy tối đa là macro tối đa (a, b); ?
Trong trường hợp của tôi, không có '-DNOMINMAX', tôi đã gặp phải lỗi trình biên dịch nội bộ. Thật thú vị khi xem cách Microsoft liên tục đấu tranh chống lại chính nó. –