草庐IT

不出意外

全部标签

c++ - HLSL 常量缓冲区中数组的意外大小

我还没有在这里使用过像这样更复杂的CB,但据我了解,我的C++对齐和打包必须符合HLSL的预期。所以我正在尝试figureouttherules所以我可以预测地布置C++struct以匹配HLSL的预期。我在VertexShaderv5中进行了一些测试,以查看输出中产生的打包,并在vs.hlsl中使用了此结构:cbufferconbuf{floatm0;floatm1;float4m2;boolm3[1];boolm4[4];float4m5;floatm6;float4m7;matrixm8;floatm9;floatm10;float4m11[2];floatm12[8];floa

c++ - 专业面试的意外答案

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭5年前。Improvethisquestion这是一个100%的理论问题,可能基于观点。在一次专业面试中,我得到了一个打印页面,其中包含两个类的大量编写糟糕且格式不正确的代码,以便在演讲中逐行分析它们。我们称这些数据结构为A和B。没有关于预期行为的问题陈述或任何信息。但是他们的一个问题真的让我很生气。在识别出算法的可疑行为以及许多潜在和实际错误后,他们让我再识别一个错误。我发现了其他几个明显的问题,但我没有弄清楚他们想从我这里得到什么

c++ - 意外的评估顺序(编译器错误?)

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:UndefinedBehaviorandSequencePoints我不确定这是否是gcc错误,所以我会问:unsignedintn=0;std::coutgcc给出了极其奇怪的结果:AFAICT不可能的“122”。因为operator并且因为在评估参数之前和之后都有一个序列点,n永远不会在两个序列点之间被修改两次(甚至访问)——所以它不应该是未定义的行为,只是未指定评估的顺序。因此AFAICT有效结果将是:111012002101没有别的

c++ - 使用 clang 优化进行编译时出现意外结果

我在我的代码中发现了一个错误,只有当我启用编译器优化-O1或更高时才会发生。我跟踪了这​​个错误,似乎在启用优化时我无法在boost转换范围上使用boost类型删除适配器。我写了这个c++程序来重现它:#include#include#include#includeusingnamespaceboost::adaptors;usingnamespacestd;intaddOne(intb){returnb+1;}intmain(int,char**){vectornums{1,2,3};autoresult1=nums|transformed(addOne)|type_erased()

c++ - memset() 的意外行为

我正在用所有元素中的99初始化数组#include#includeintmain(){inta[10];memset(a,99,10);std::cout但我得到的输出是出乎意料的。输出:-1667457891这个memset函数异常行为背后的原因是什么。 最佳答案 首先,memset采用字节大小,而不是数组元素的数量,因为它不知道每个元素有多大。您需要使用sizeof来获取数组的字节大小,并将其提供给memset:memset(a,99,sizeof(a));但是,在C++中,更喜欢std::fill,因为它是类型安全的、更灵活的

C++ 意外行为(我的临时对象在哪里!?)

这是一个r值实验,但当gcc向我提示缺少移动构造函数(我已将其删除)并且没有回退到复制构造函数(如我所料)时,它发生了变化然后我从标志中删除了-std=c++11并尝试了你在下面看到的内容,它有很多输出(最初没有)因为我试图弄清楚为什么它不起作用(我知道如何调试,但我发现stdout上的消息可以很好地指示正在发生的事情)这是我的代码:#includeclassObject{public:Object(){id=nextId;std::cout输出:Creatingobject:0AoughttoexistIntestCreatingobject:1Test'stmpoughttoexi

SyntaxError:vue JS中的意外令牌}

我的代码是这样:当代码运行时,它会引发错误:SyntaxError:意外令牌}但是,如果代码是这样:它不会丢失错误。我加:,以便将数据作为对象发送。如果不使用:,数据作为字符串发送。我该如何解决?看答案问题在于一个事实,如果PHP变量$product未设置(即等于null或者""),然后Vue尝试绑定道具:product和''最终导致错误(例如试图做一个:product=""绑定)尝试以下操作:注意双引号""被单一行情包围。这会说要约束product用空字符串的支柱,以防PHP$product变量未设置。请看一下这里。您可能会发现它有帮助。回忆的关键是v-bind期望有效的JavaScript

功能意外触发

我的功能可以淡入DIV,加载替换HTML,然后逐渐淡入DIV。当我单击顶部的导航栏以将内容加载到中心时,该功能被调用(正确)#maindiv。它也被称为“大约”页面,以加载不同的团队配置文件。当更改默认团队配置文件时,该错误发生。单击查看另一个配置文件时,该函数会在单击配置文件之前重复发生的所有“#Main”更改。该网站是https://symbiohsis.github.io/。可以通过单击“关于”,然后单击另一个配置文件,例如“b”来复制可见的错误。配置文件闪烁但未选择。第一个在工作正常上选择配置文件。淡入/输出的淡出&负载功能:/*ajaxloadinto$(sel)fromne

c++ - 添加两个 float 时出现意外输出

我写了下面的C++代码:floata,b;intc;a=8.6;b=1.4;c=a+b;printf("%d\n",c);输出是10。但是当我运行下面的代码时:floata,b;intc;a=8.7;b=1.3;c=a+b;printf("%d\n",c);输出是9。两者有什么区别,因为它们提供不同的输出? 最佳答案 float中没有8.7或1.3这样的数字。有一个数字10,一个数字-6.5,一个数字0.96044921875...但没有8.7或1.3。您的计算机最多可以将8.7舍入到最接近的float,并将1.3舍入到最接近的fl

c++ - 仅在 header 中的extern变量意外起作用,为什么?

我当前正在更新Arduino的C++库(使用avr-gcc编译的8位AVR处理器)。通常,默认Arduino库的作者喜欢在header中包含该类的extern变量,该变量也在.cpp类文件中定义。我认为基本上是为了让新手能够将所有东西都准备好作为内置对象。我遇到的情况是:我更新的库不再需要.cpp文件,并且已将其从库中删除。直到我进行最后一遍检查发现的错误之后,尽管没有为.cpp文件中的extern变量提供定义的事实,但没有产生链接器错误。这很简单,我可以得到它(头文件):structFoo{voidmethod(){}};externFoofoo;包含此代码并将其用于一个或多个源文件