У меня это в моем коде.Как вычислить максимум двух переменных size_t
vector<unsigned int> import;
vector<unsigned int> aquired;
. . .
size_t new_size = max(import.size(),aquired.size());
и я получаю эту ошибку:
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)
я понимаю, что size_t
является неподписанных Int. Так почему же это проблема и как мне обойти это.
Компиляция с:
$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' не обязательно' unsigned', но мне интересно, где кандидаты приходят из? – UncleBens
Я не могу воспроизвести это на gcc 4.4.1. Можете ли вы опубликовать полную тестовую программу? – ssegvic
Добавление std :: to max разрешило проблему. Я думаю, что макс был замаскирован другим заголовком или чем-то еще. –