私はこれを私のコードに入れています。最大2つの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
がunsigned 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'ではなく、候補者が来ているところ、私は疑問に思う:
gcc 4.4.1で再現できません。あなたは完全なテストプログラムを投稿できますか? – ssegvic
std ::をmaxに追加すると、問題を解決しました。maxが別のヘッダーなどでマスクされていたと思います。 –