草庐IT

int_parser

全部标签

c++ - 如果 count() 是 constexpr 函数,为什么 std::array<int, count()> 不能编译?

这个问题在这里已经有了答案:constexprnotworkingifthefunctionisdeclaredinsideclassscope(3个回答)3年前关闭。为什么下面的C++代码不能用VC2017编译?structFixedMatchResults{staticconstexprstd::size_tcount(){return20;};std::arrayresults;};错误是:errorC2975:'_Size':invalidtemplateargumentfor'std::array',expectedcompile-timeconstantexpression

c++ - 诸如 `msg(long)` 与候选 `msg(int32_t)` 和 `msg(int64_t)` 等函数的模糊重载

注意:这与Determinenumberofbitsinintegraltypeatcompiletime非常相似,但是这是一个非常简化的版本,所有内容都包含在一个.cpp中编辑:添加了一个解决方案-尽管给出了(并接受)了正确的解释,但我找到了一种通用的解决问题的方法。问题问题在于像这样的函数msg(int32_t);msg(int64_t);像这样的电话longlongmyLong=6;msg(myLong);//Won'tcompileongcc(4.6.3),callisambiguous这在MSVC上编译。谁能解释为什么这在gcc上失败(我假设这可能与gcc通常严格符合标准这一

c++ - 如何在 C++11 中将 u32string 转换为 int?

我们如何在C++11中将u32string转换为int?另外,我应该使用什么方法将此类字符串的一部分转换为int-让开始和结束迭代器可用?我试过:u32stringtest=U"14";cout但它抛出:candidatefunctionnotviable:noknownconversionfrom'constchar32_t*'to'constchar*'for1stargumentexternintatoi(__constchar*__nptr) 最佳答案 #include//wstring_convert#include//c

c++ - 是什么让 enum -> int 比 enum -> unsigned 转换更好?

在下面的代码中,选择了重载f(int)而不是f(unsigned)。使用clang3.0和gcc4.8测试。enumE{};Ef(int);intf(unsigned);Ee=f(E(0));我对标准的阅读使我认为enum->int和enum->unsigned是相同的标准转换序列,它们都只包含一个整数转换。[conv.integral]Anrvalueofanenumerationtypecanbeconvertedtoanrvalueofanintegertype.根据[over.best.ics],仅包含整数转换的标准转换序列的等级是'Conversion'。[over.ics.

spark中使用flatmap报错:TypeError: ‘int‘ object is not subscriptable

 1、背景描述菜鸟笔者在运行下面代码时发生了报错:frompysparkimportSparkContextsc=SparkContext("local","apple1012")rdd=sc.parallelize([[1,2],3,[7,5,6]])rdd1=rdd.flatMap(lambdax:x)print(rdd1.collect())报错描述如下:2、报错原因 显然这是传入的数据类型发生了错误:因为我们试图对整数对象执行下标操作,而这是不允许的。原来flatMap底层通过取下标来展开元素如果rdd集合里面有非可迭代对象(如int元素)则会报错TypeError:'int'obje

c++ - random_ints(a,N) 有什么作用以及如何在我的代码中使用它?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。http://developer.download.nvidia.com/CUDA/training/GTC_Express_Sarah_Tariq_June2011.pdf在上面的教程(幻灯片29)中,他们启动了3个指向int的指针:int*a,*b,*c;显然这是类型(int*),但它们以某种方式使内核可以使用语法a[index]访问其索引。他们还使用一些(对我来说)未知的命令来初始化他们的

c++ - 将 int32 重新解释为 float

我需要保存一个浮点值,它是一个整数值的复制内存。在reinterpretedFloat函数中,我制作了一个样本整数并将内存复制到一个浮点变量。问题是当memcpy-edfloat返回时值会改变。这是示例代码。#include#includevoidprintHex(constunsignedchar*buff,intcount){printf("0X");for(inti=0;i(&tmp),4);//memcpyreturntmp;}intmain(){floatnewFloat=reinterpretedFloat();printHex(reinterpret_cast(&newF

c++ - 使用 int 进行枚举类初始化

我在编程的时候发现了一些有趣的事情:enumclassFoo{FOO_THING,FOO_TOO};intmain(){Foofoo{1};//ItisOKFoofoo2(1);//Itisaninvalid}你能告诉我,为什么foo{1}对于编译器来说是可以的,而为什么foo2(1)是无效的?编译器GCC(g++(Ubuntu7.3.0-21ubuntu1~16.04)7.3.0)说:$g++-Wall-std=c++17foo.cpperror:cannotconvert‘int’to‘Foo’ininitializationFoofoo2(1);我真的很想知道底层机制。:)))编

c++ - GLSL : Replace large uniform int array with buffer or texture

现在我正在尝试将一个整数数组传递到片段着色器中,并通过一个统一数组来实现:uniformintmyArray[300];并在着色器外用glUniform1iv填充它。不幸的是,大于~400的统一数组会失败。我知道我可以改用“统一缓冲区”,但似乎找不到将大型一维数组传递到带有缓冲区或其他方式的片段着色器的完整示例。谁能提供这样的例子? 最佳答案 这应该让您开始使用统一缓冲区对象来存储数组。注意GL要求UBO的最小容量为16KiB,最大容量可以通过GL_MAX_UNIFORM_BLOCK_SIZE查询。片段着色器示例(UBO需要Open

c++ - 在 C++ 中使用 sscanf 从字符串中提取一个 int

我的函数必须处理看起来像sayhelloy(5)或数据|x(3)|的字符串,我需要能够提取显示的整数并将其存储到一个名为address的单独int变量中。然而,一些通过的字符串将没有任何整数,对于这些字符串,地址必须默认为0。当字符串包含整数时,它总是在括号之间。我曾尝试使用sscanf,但是,作为sscanf的新手,我遇到了问题。出于某种原因,地址始终显示为0。这是我的代码:voidprocess(stringinfo){intaddress=0;//setto0incaseinfocontainsnodigitssscanf(info.c_str(),"%d",address);.