1. ホーム
  2. c++

[解決済み] C++でuint()関数はどこですか?

2022-02-11 11:34:06

質問

Qtアプリケーションをコンパイルしようとしているのですが、エラーが発生します。

error: 'uint' was not declared in this scope

それを呼び出すコードの断片。

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

これは愚かな質問だと思いますが、私はそれをどこにも見つけることができません(Qtソースと標準libを検索)、そしてそれはその名前のために非Googleのものです。Qtフレームワークの何らかのヘルパー関数ではないかと思います。

どなたかソースをご存知の方はいらっしゃいますか?

解決方法は?

可能性が高いのは uint は関数ではなく、むしろ unsigned int . ソースのどこかに、次のような行があります。

typedef unsigned int uint;

または (C++11 風)

using uint = unsigned int;

これは、コンパイラに uint の代わりに、組み込み型である unsigned int .

では、次のように言うと uint(i) は、関数呼び出しではなく 関数型キャスト に変換し、その値を unsigned int . 同様に次のように言うこともできます。

static_cast<uint>(i)

を使えば、同じ効果が得られます。