Syntax-Fehler mit std::numeric_limits::max

Ich habe Klasse struct-definition wie folgt:

#include <limits>

struct heapStatsFilters
{
    heapStatsFilters(size_t minValue_ = 0, size_t maxValue_ = std::numeric_limits<size_t>::max())
    { 
         minMax[0] = minValue_; minMax[1] = maxValue_; 
    }

    size_t minMax[2];
};

Das problem ist, dass ich kann 'std::numeric_limits::max ()" verwendet und der compiler sagt:

Error 8 error C2059: syntax error : '::'

Error 7 error C2589: '(' : illegal token on right side of '::'

Den compiler, die ich verwende, ist Visual C++ 11 (2012)

Nicht reproduzieren können. Versuchen Sie, einschließlich <cstddef>.
Ich bin nicht mit std für size_t in meinem code. Sollte ich das tun?
Welche compiler verwenden Sie? Ich benutze Visual C++ 11 (2012)
prüfen Sie, ob Sie irgendwo #define max(a,b) oder ähnliches hinzu, oder fügen Sie #undef max vor struct ifxHeapStatsFilters zu prüfen, ob es das Thema hier
ja! du hast Recht! es hat geklappt! 🙂

InformationsquelleAutor mmostajab | 2014-12-12

Schreibe einen Kommentar