Je l'ai dans mon code.Comment puis-je calculer le maximum de deux variables size_t
vector<unsigned int> import;
vector<unsigned int> aquired;
. . .
size_t new_size = max(import.size(),aquired.size());
et je reçois cette erreur:
error: more than one instance of
overloaded function "max" matches the
argument list:
function "max(int, int)"
function "max(unsigned int, unsigned int)"
function "max(int, unsigned int)"
function "max(unsigned int, int)"
function "max(long long, long long)"
function "max(unsigned long long, unsigned long long)"
function "max(long long, unsigned long long)"
function "max(unsigned long long, long long)"
function "max(float, float)"
function "max(double, double)"
function "max(float, double)"
function "max(double, float)"
argument types are: (size_t, size_t)
je crois comprendre que size_t
est un entier non signé. Alors pourquoi est-ce un problème et comment puis-je le contourner.
Compiler avec:
$gcc --version
gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3
$nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2010 NVIDIA Corporation
Built on Wed_Sep__8_17:12:45_PDT_2010
Cuda compilation tools, release 3.2, V0.2.1221
'size_t' est pas nécessairement un' unsigned', mais je me demande où les candidats viennent de? – UncleBens
Je ne peux pas reproduire cela sur gcc 4.4.1. Pouvez-vous poster un programme de test complet? – ssegvic
Ajout de std :: to max résolu le problème Je pense que le max a été masqué par un autre en-tête ou quelque chose. –