草庐IT

Union-Find

全部标签

c++ - 通过 union 合法访问 __m128 变量的字节吗?

考虑这个变量声明:union{struct{floatx,y,z,padding;}components;__m128sse;}_data;我的思路是通过x,y,z字段赋值,进行SSE2计算,通过读取结果x、y、z。不过,我有点怀疑它是否合法。我关心的是对齐:MSDN说__m128变量自动对齐到16字节边界,我想知道我的union是否可以打破这种行为。这里还有其他陷阱需要考虑吗? 最佳答案 union的对齐应该没问题,但在Windows的情况下,您可以直接访问32位组件。来自xmmintrin.h(DirectXMath):type

C++:严格别名与 union 滥用

提前为第一个可能很愚蠢的帖子道歉。虽然有很多关于这个主题的Material,但其中很少有是确定的和/或对我来说可以理解的。我有一个AlignedArray模板类,可以在堆上以任意对齐方式动态分配内存(AVX汇编例程需要32字节对齐)。这需要一些丑陋的指针操作。AgnerFog在cppexamples.zip中提供了一个示例类,它滥用union来实现这一点(http://www.agner.org/optimize/optimization_manuals.zip)。但是,我知道写入union的一个成员然后从另一个成员读取会导致UB。AFAICT将任何指针类型别名为char*是安全的,但

c++ - 包含非平凡成员 union 的类的构造函数和复制构造函数

我正在尝试实现一个自定义变体类型,它使用union来存储各种不同类型的数据。在字段type_id中我打算存储union中存储的数据是哪种类型。union包含非平凡的成员。这是我当前的实现:structMyVariant{enum{t_invalid,t_string,t_int,t_double,t_ptr,t_dictionary}type_id;union{intas_int;doubleas_double;std::stringas_string;std::unique_ptras_ptr;std::mapas_dictionary;};};我尝试创建一个MyVariant的实例

c++ - 布局兼容类型的 union

看这段代码:structA{shorts;inti;};structB{shorts;inti;};unionU{Aa;Bb;};intfn(){Uu;u.a.i=1;returnu.b.i;}是否保证fn()返回1?注意:这是this的后续问题. 最佳答案 是的,这是定义的行为。首先让我们看看标准对A和B有什么看法。[class.prop]/3有AclassSisastandard-layoutclassifit:hasnonon-staticdatamembersoftypenon-standard-layoutclass(or

C++ 成员引用基类型 'int' 不是结构或 union

我在C++代码中遇到问题。我有一个unionStateValue:unionStateValue{intintValue;std::stringvalue;};和一个结构StateItemstructStateItem{LampStatestate;StateValuevalue;};我有一个方法,它遍历StateItem类型的vectorfor(inti=0;i在Hue的情况下,我得到以下编译器错误:Memberreferencebasetype'int'isnotastructureorunion我不明白这里的问题。你们中的任何人都可以帮助我吗? 最佳答

c++ - 为什么 std::variant 不能保存数组对象类型而 union 可以?

这是一个简单的例子,我们可以像这样定义一个低级的union:staticunion{uint64_ta;uint8_tb[8];};但我们不能像这样声明std::variant(请不要关心语法,如果我错了请纠正我!,捕获想法)std::variantvcppReference明确指出,TemplateparametersTypes-thetypesthatmaybestoredinthisvariant.Alltypesmustbe(possiblycv-qualified)non-arrayobjecttype此外,MSVC-v141(C++17)编译器给出了一个编译错误:Error

windows - 在 Windows 8.1 : Trying to override Windows/System32/find. exe 上为 CMD 设置系统路径

我试图覆盖windowsfind命令,以便我可以调用find的另一个实现。另一个实现由MSYS提供,位于C:\MinGW\msys\1.0\bin。在Windows7上,我可以打开一个CMD,然后运行:SETPATH=C:\MinGW\msys\1.0\bin;%PATH%由于在C:\Windows\System32\路径之前添加了MSYS路径前缀,因此当在Windows7上的CMD中调用find时,将执行MSYS版本。该命令不适用于Windows8.1。当我在Windows8.1的CMD中调用find时,无论我做什么,它都默认为Windows实现。有没有办法在Windows8.1上覆

node.js - Windows 上 "Cannot find module"上的 node-gyp 错误

我正在尝试构建Atom。当我运行npminstall时,出现错误:Error:Cannotfindmodule'C:\ProgramFiles(x86)\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js'我在Windows上。我该如何解决这个问题? 最佳答案 2020年更新:评论中有报告称此方法(在2014年绝对有效)不再有效。请在删除任何内容之前备份此文件夹。这意味着不知何故,node-gyp模块已损坏、卸载或以其他方式搞砸了。这可以通过两个简单的步骤解决(

windows - 在 Windows 10 上运行 Kafka 失败 : The system cannot find the path specified

我正在尝试在本地运行Kafka。我已经安装并运行了Zookeeper。我已经下载了Kafka2.11-1.1.0的二进制文件。我已将server.config中日志的位置调整为有效路径。当我运行.\bin\windows\kafka-server-start.bat.\config\server.properties时,我收到一条错误消息Thesystemcannotfindthepathspecified.我可以看到这两个文件都存在于我计算机上的正确位置-我应该排除哪些故障? 最佳答案 我在运行kafka-server-start

windows - 如何调试 Jenkins 错误消息 "could not find a suitable ssh-agent provider"?

我在Win7上使用Jenkins,我已经为ssh-agent插件安装了tomcat。我可以通过ssh通过gitbash克隆我的GitLab项目。但是如果我通过Jenkins构建项目,它总是说:[ssh-agent]UsingcredentialsIliptonChen(APRTest)[ssh-agent]Lookingforssh-agentimplementation...[ssh-agent]FATAL:Couldnotfindasuitablessh-agentproviderFATAL:[ssh-agent]UnabletostartagentThefulloutputtex