問題タブ [numeric-limits]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - テンプレートとstd::numeric_limits
私はAtomicというクラスを持っています。これは基本的に_Atomic_word
、gccアトミックビルトインを呼び出すplusメソッドです。
std::numeric_limits<Atomic>
インスタンス化したいと思いますstd::numeric_limits<underlying integer type>
(たとえば、私のシステム_Atomic_word
では、intのtypedefにすぎません)。
これを行う方法はありますか?
c++ - int の最大値
Integer.MaxValue
javaのC/C++のような関数で(コンパイラに従って)整数の最大値を見つけるコードはありますか?
c++ - 警告C4003およびエラーC2589およびC2059:x = std ::numeric_limits:: max();
この行は小さなテストプログラムでは正しく機能しますが、必要なプログラムでは、次のコンパイラの苦情があります。
同じ結果が得られます:
maxをマクロmax(a、b)と見なすのはなぜですか。?
c++ - 閉じた範囲でのループ
このコードをどのように修正しますか?
T は整数型に制限され、そのような型の幅が広くなり、符号付きまたは符号なしにすることができます
begin
することができますnumeric_limits<T>::min()
end
することができますnumeric_limits<T>::max()
(その場合++i
、上記のコードでオーバーフローします)
私はいくつかの方法を持っていますが、本当に好きなものはありません。
c - FLT_MIN がゼロに等しいのはなぜですか?
limits.h
INT_MIN
および などの非浮動小数点演算タイプの制限を指定しますINT_MAX
。これらの値は、int を使用して表すことができる最も負の値と最も正の値です。
には、 とfloat.h
の定義がFLT_MIN
ありFLT_MAX
ます。次の場合:
次の出力が得られます。
FLT_MAX
は、ご想像のとおり、非常に大きな数に等しいのですが、なぜFLT_MIN
非常に大きな負の数ではなくゼロに等しいのでしょうか?
c++ - 定数式でnumeric_limits::max()を使用する
クラス内で、可能な最大のint値である定数を定義したいと思います。このようなもの:
この宣言は、次のメッセージでコンパイルに失敗します。
nude.cpp:8:エラー:'std :: neuro_limits :: max()'は定数式に表示できませんnumeric.cpp:8:エラー:関数呼び出しは定数式に表示できません
これが機能しない理由は理解できますが、2つのことが奇妙に見えます。
定数式で値を使用するのは自然な決断のように思えます。言語設計者がmax()を関数にして、この使用を許可しないことにしたのはなぜですか?
仕様は18.2.1で次のように主張しています
nude_limitsテンプレートでstaticconstと宣言されたすべてのメンバーについて、特殊化は、これらの値を整数定数式として使用できるように定義する必要があります。
シナリオで使用できるはずで、エラーメッセージと矛盾しないのではないでしょうか。
ありがとうございました。
c++ - std::numeric_limitsがなぜですか:: max()関数?
C ++標準ライブラリでは、値std::numeric_limits<T>::max()
は関数として指定されます。特定のタイプのその他のプロパティは、定数(などstd::numeric_limits<T>::is_signed
)として指定されます。タイプのT
すべての定数は関数として与えられますが、他のすべての定数は定数値として与えられます。
その背後にある理論的根拠は何ですか?
c++ - Qtタイプの制限はどこにありますか?
定期的に、limits.hを参照して、intやlongなどの特定のタイプの最大値を確認できます。
Qtには、qlonglongのようなタイプがあります。これらのタイプの制限を手動またはプログラムで参照するために同様の方法で使用できるヘッダーファイルおよび/またはドキュメントはありますか?
c++ - 「numeric_limits」はこのスコープで宣言されていません。「max()」の呼び出しに一致する関数がありません
このコードを自宅の Mac で xcode を使用してコンパイルしましたが、問題はありませんでした。Linuxでg ++を使用して学校でコンパイルすると、次のエラーが発生します。
numeric_limits' は std のメンバーではありません
'>' の前に一次式が必要です トークン
「max()」の呼び出しに一致する関数がありません</p>
たぶん、追加のヘッダーを含める必要があると思います。を取り除くとstd::
、同様のエラーが表示されます。
numeric_limits
このスコープで宣言されていませんでした
integer - 符号なし n ビット整数の最大値が 2ⁿ ではなく 2ⁿ-1 であるのはなぜですか?
n
ビット整数の最大値は 2 n -1 です。なぜ「マイナス1」があるのですか?最大値が 2 nではないのはなぜですか?