2017-09-26 49 views
-1

我嘗試編譯Qt應用程序UINT()函數,但我得到一個錯誤:凡在C++中

error: 'uint' was not declared in this scope

的一段代碼調用它:

double Bi = gsl_ran_binomial_pdf(uint(i),t,uint(N-1));

我意識到這是一個愚蠢的問題,但我無法在任何地方找到它(搜索Qt源代碼和標準庫),並且因爲它的名稱而不可搜索。我懷疑它在Qt框架中有一些輔助函數。

任何人都知道我在哪裏可以找到源代碼?

+1

你想投的值: '(unsigned int)i' –

+3

'uint'不是函數。 –

+0

因爲我不能確定uint()是什麼,所以我不想只投這個值。 – vitush93

回答

4

很可能uint不是函數,而是unsigned int類型的typedef(或別名)。某處源會有像

typedef unsigned int uint; 

或(C++ 11式)

using uint = unsigned int; 

這告訴編譯器,當你鍵入uint,它應替代的名稱內置型unsigned int

現在,當你說uint(i),這不是一個函數調用,而是一個函數樣式轉換,其轉換價值的unsigned int。你也可以說

static_cast<uint>(i) 

得到相同的效果。

+0

就是這樣。在Qt源代碼中找到它。 – vitush93