草庐IT

long-integer

全部标签

c++ - 如何访问 integer_sequence 的第 n 个值?

这个问题在这里已经有了答案:templateparameterpacksaccessNthtypeandNthelement(5个回答)2年前关闭。我想知道如何访问std::integer_sequence的第n个值.例如给定一个类型usingfoo=std::integer_sequence;我想要类似的东西autoi=get();//i=4标准库中有什么东西可以做到这一点吗?如果不是,如果我希望它在C++14(而不是C++17)中工作,我是否需要求助于迭代解决方案? 最佳答案 据我所知,没有这样的内置方法,但您可以自己用几行简洁

c++ - "long"和 "long int"之间的区别,abs & labs

这可能只是cplusplus.com处符号的不一致。,但是C++中的“longint”和“long”类型有区别吗?cplusplus.com说abs接受“int”和“long”类型的输入,而labs使用“longint”。我认为这基本上是一个错字。如果是这样,那么abs和labs之间的唯一区别是保证labs返回long吗? 最佳答案 long和longint没有区别。我们有abs(long)和labs(long)(两者是等价的)的原因是labs()是一个C库的残余。C没有函数重载,所以函数abs()只能采用一种类型(int)并且必须

c++ - 从 std::size_t* 到 long unsigned int* 的无效转换

在raspberrypi-arv7l上,我正在编译以下C++程序#includevoidfun(unsignedlongint*i){std::cout对于上面的代码,我收到以下错误:a.cpp:Infunction'intmain()':a.cpp:12:9:error:invalidconversionfrom'std::size_t*{akaunsignedint*}'to'longunsignedint*'[-fpermissive]fun(&i);^~a.cpp:3:6:note:initializingargument1of'voidfun(longunsignedint*

c++ - 如何在编译时找出 integer_sequence 是否包含给定的数字?

给定:typedefstd::integer_sequenceallowed_args_t;和:templatevoidfoo(){static_assert(/*fireifargnotinallowed_args_t!*/)}我应该如何编写static_assert以使其在编译时尽可能便宜?我正在使用C++17。 最佳答案 你可能想使用:templateconstexprboolis_in(inti,std::integer_sequence){return((i==Is)||...);}typedefstd::integer_

c++ - 为什么在 C 或 C++ 中使用 "long long"可能是一件坏事?

为什么在C或C++中使用“longlong”可能是一件坏事?前几天我正在编译一个运行时库,在代码中它检查long是否为64位,如果不是,它使用longlong。但除此之外,它还会发出#warning“usinglonglong”。我想不出任何理由将“longlong”作为警告,除非它是开发人员遗留下来的调试问题。谢谢陈茨 最佳答案 据我所知,longlong目前仅在C99中是标准的。它也将是C++0x中的一种类型,但大多数现代编译器应该已经支持它。但是,对于固定大小的整数,可以使用C99header,或者在C++中

c++ - 加倍到 `unsigned long long` 会导致内存(堆栈?)损坏

以下代码有什么问题(崩溃):#include#includevoidfoo(std::stringstr,unsignedlonglongval){std::coutVisualStudio2012/调试/Win32它在x64中工作,如果我们将unsignedlonglong更改为longlong甚至unsignedlong此代码片段崩溃。在其他情况下,函数参数的地址会发生变化。我怀疑它与将double转换为unsignedlonglong的_stol2有关 最佳答案 SubmittedtoMicrosoft作为错误(已接受)

java - 如何使用 Swig 将数组(java 中的 long 数组)从 Java 传递到 C++

我有如下示例.h文件:classTest{public:voidSelectValues(longlongvalues[])};我使用SWIG并从下面的.i文件创建了JNI接口(interface)%moduleMyLib%include"carrays.i"%array_functions(longlong,long_long_array)%{#include"Test.h"%}/*Let'sjustgrabtheoriginalheaderfilehere*/%include/*Thislineisusedforcallingconventions*/%include"Test.h

c++ - unsigned long vs size_t 导致函数重载失败

我定义了一个函数:voidmyfunc(size_tparam1,size_tparam2){...}它工作正常。但是当我尝试重载这个函数时voidmyfunc(unsignedlongparam1,unsignedlongparam2){...}编译失败,提示如下:错误:无法重载myfunc(unsignedlongparam1,unsignedlongparam2)。如何在不将输入参数静态转换为size_t的情况下解决这个问题?谢谢! 最佳答案 听起来size_t和unsignedlong在您的系统上是同一类型;编译器提示你有两

c++ - 为什么没有未调整大小的 Integer 类型?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭11年前。为什么STL不包含无限整数数据类型?我感觉是一种目的类似于字符串的数据类型。程序员不必担心值溢出并且可以处理更大的数字。所以我很好奇它的缺失是否有特定原因。这不是关于如何实现或使用来自第3方库的问题,但只是一个问题,为什么这种语言还没有附带一个。感谢有关此事的任何链接。

c++ - 使用非固定整数(int、long)而不是固定大小的整数(int64_t、int32_t)有什么好处吗?

也许是性能?我觉得使用非固定整数只会让程序更复杂,并且在移植到另一个架构时更容易失败。 最佳答案 std::intN_t提供onlyiftheimplementationcandirectlysupportthem.因此,使用它们的移植代码可能会失败。我更喜欢std::intfastN_t用于一般用途,因为它们的限制较少,应该和int一样快或更快.此外,大多数C++代码使用int无处不在,所以你可能会在通过std::int32_t时遇到晋升怪事进入接受int的函数,特别是如果sizeof(int)只有16位。