无法在 GCC 中定义 IntType 的 MAX 值
Cannot define MAX value for IntType in GCC
为什么这在GCC 4.5.1中不起作用
#include <iostream>
#include <type_traits>
#include <limits.h>//for INT_MIN
#include <typeinfo>
using namespace std;
#ifdef _MSC_VER
#define UNIVERSAL_INT_MAX LLONG_MAX
#define UNIVERSAL_INT_MIN LLONG_MIN
#endif
#ifdef __GNUC__
#define UNIVERSAL_INT_MAX LONG_LONG_MAX
#define UNIVERSAL_INT_MIN LONG_LONG_MIN
#endif
using namespace std;
int main()
{
cout << UNIVERSAL_INT_MAX << 'n';
return 0;
}
我得到的错误:
"main.cpp|24|error: 'LONG_LONG_MAX' was not declared in this scope"
编辑
#ifdef __GNUC__
#define UNIVERSAL_INT_MAX ( ( 1ULL << numeric_limits< long long >::digits ) - 1 )
#define UNIVERSAL_INT_MAX_plus_three (UNIVERSAL_INT_MAX + 3)
#endif
using namespace std;
int main()
{
cout << UNIVERSAL_INT_MAX << 'n';
cout << "Huhh?: " << UNIVERSAL_INT_MAX_plus_three << 'n';
return 0;
}
long long
是非标准的,所以LONG_LONG_MAX
是非标准的。
最好使用C++机制numeric_limits< long long >::max()
,这是<limits>
。
long long
仍然是非标准的,但如果编译器实现了它,这保证可以正常工作。
编辑:您可以使用以下方法实现与编译时常量相同的目标
( ( 1ULL << numeric_limits< long long >::digits ) - 1 )
既然这是C++为什么不使用std::numeric_liimts呢?
#include <limits>
#include <iostream>
int main() {
std::cout << std::numeric_limits<int>::max() << std::endl;
}
尝试LLONG_MAX
:它和长一样非标准,但它是编译时
相关文章:
- <streamsize>C++ 中 numeric_limits::max() 的值
- 黑客级别的Mini-Max Sum
- 'max'匹配'std::function<const int &(const int &, const int &)>'无过载
- 关于 std::min, std::max 中的比较运算符的混淆
- 找到一种有效的方法,在 2 个巨大的缓冲区上执行 MAX,每字节字节
- std::max() 函数与定点实现的比较中的问题
- 使用 CImg 库的 std::min 和 std::max 的编译问题
- 在 3ds Max 中更新进度条后,环境和效果 UI 不刷新
- 从自定义类获取对象向量中的 max 元素
- 如何在C++中递归地找到max元素的索引?
- SFINAE 与 numeric_limits<T>::max() 在 MSVC2017 上
- 这句话是什么意思 - " vector<long long> distance(n, std::numeric_limits<long long>::max()); "?
- 在f2c.h文件中定义min()max()宏时出错
- c++curl返回413请求实体过大,但是post大小远小于max大小
- 在枚举类型上使用std::max是不是一种糟糕的做法
- 为什么Visual Studio 2019不支持用于减少Openmp的关键字"max"?
- 没有函数模板的实例"max"与参数列表参数类型匹配(int、int)
- 为什么 std::uniform_int_distribution<IntType>::operator() 不是 const?
- 如何在 C++11 中将 std::max 与自定义比较器一起使用?
- 无法在 GCC 中定义 IntType 的 MAX 值