c 中的uint()函数在哪里

Where is uint() function in C++

本文关键字:函数 在哪里 中的 uint      更新时间:2023-10-16

我正在尝试编译QT应用程序,但我会遇到错误:

error: 'uint' was not declared in this scope

称呼它的代码:

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

我意识到这是一个愚蠢的问题,但是我在任何地方都找不到它(搜索QT源和标准lib),并且由于其名称而不可能。我怀疑它在QT框架中具有一些辅助功能。

有人知道我可以在哪里找到源吗?

很可能是函数中的 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)

获得相同的效果。