【发布时间】:2014-01-05 14:02:40
【问题描述】:
我是 SO 新手,这是我的第一个问题,但我已阅读规则,希望不会违反任何规则。
我最近开始学习编程并选择 C++ 作为我的第一语言。今天,我已经到了需要帮助才能做出正确决定的地步。我正在从第 6 版 C++ Primer Plus 中学习,到目前为止作者只介绍了 C 宏,并且没有说过关于 numeric_limits 模板(至少我认为它是一个模板)关于哪个由于我的好奇心,我从网上学习。
所以,现在我有点迷茫了,因为如果我理解正确的话,numeric_limits 是一种检查 C++ 类型限制的现代方法,因为它易于扩展。此外,在 C 宏中的 AFAIK 中,没有像 char16_t 这样的 C++11 类型的定义。
虽然我只搜索了that question,但提供了尽可能有用的答案,但不幸的是,他们没有回答我特别感兴趣的问题。而且他们实际上大多都很老了。
现在,具体问题:
基于未来对代码执行速度、安全性和实用性的需求(我不太关心简单性)是使用那些旧的 C 宏还是我应该坚持 numeric_limits 考虑到我提到的各个方面?
请原谅我在英语中的任何错误。这不是我的母语。
【问题讨论】:
-
你的英语很好。
-
您链接的问题中接受的答案仍然是很好的建议。使用
numeric_limits。如果您的编译器完全支持C++11,那么大多数numeric_limits函数都是constexpr,这增加了它们的实用性。 -
@PeteBecker 非常感谢。我通过 MinGW 使用 g++ 4.8.1 作为我的编译器,AFAIK 主要支持 C++11,所以这应该不是问题。
标签: c++ c++11 numeric-limits