问题标签 [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 atomic 内置函数的 plus 方法。
我想std::numeric_limits<Atomic>
实例化std::numeric_limits<underlying integer type>
(例如在我的系统_Atomic_word
上只是一个 int 的 typedef)。
有没有办法做到这一点?
c++ - int 的最大值
是否有任何代码可以在 C/C++ 中找到整数的最大值(根据编译器),比如Integer.MaxValue
java 中的函数?
c++ - 警告 C4003 和错误 C2589 和 C2059 on:x = std::numeric_limits::最大限度();
此行在一个小型测试程序中正常工作,但在我想要它的程序中,我收到以下编译器投诉:
我得到相同的结果:
为什么将 max 视为宏 max(a,b); ?
c++ - 在封闭范围内循环
您将如何修复此代码?
T 被限制为整数类型,可以是更广泛的此类类型,并且可以是有符号或无符号的
begin
可numeric_limits<T>::min()
end
可以numeric_limits<T>::max()
(在这种情况下++i
会在上面的代码中溢出)
我有好几种方法,但没有一个是我真正喜欢的。
c - 为什么 FLT_MIN 等于 0?
limits.h
指定非浮点数学类型的限制,例如INT_MIN
和INT_MAX
。这些值是您可以使用 int 表示的最负值和最正值。
在float.h
中,有 和 的FLT_MIN
定义FLT_MAX
。如果您执行以下操作:
您会得到以下输出:
FLT_MAX
正如您所期望的那样,等于一个非常大的数字,但是为什么FLT_MIN
等于零而不是一个非常大的负数呢?
c++ - 在常量表达式中使用 numeric_limits::max()
我想在一个类中定义一个常量,它的值是最大可能的 int。像这样的东西:
此声明无法编译并显示以下消息:
numeric.cpp:8:错误:'std::numeric_limits::max()' 不能出现在常量表达式中 numeric.cpp:8:错误:函数调用不能出现在常量表达式中
我明白为什么这不起作用,但有两件事对我来说很奇怪:
在我看来,在常量表达式中使用值是一个自然的决定。为什么语言设计者决定让max()成为一个函数,从而不允许这种用法?
该规范在 18.2.1 中声称
对于在 numeric_limits 模板中声明为 static const 的所有成员,特化应以可用作整数常量表达式的方式定义这些值。
这是否意味着我应该能够在我的场景中使用它并且它不与错误消息相矛盾?
谢谢你。
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()'
我在家里用 xcode 在我的 mac 上编译了这段代码,没有任何问题。我在学校用 linux 上的 g++ 编译它,我得到了这些错误:
numeric_limits' 不是 std 的成员
'>' 之前的预期主表达式 令牌
调用 'max()' 没有匹配的函数</p>
我猜也许我必须包含一个额外的标题。如果我拿走std::
它只会给我一个类似的错误:
numeric_limits
在这方面没有申明
integer - 为什么无符号 n 位整数的最大值是 2ⁿ-1 而不是 2ⁿ?
n
位整数的最大值为 2 n -1。为什么我们有“负1”?为什么最大值不只是 2 n?