草庐IT

zval_struct

全部标签

C++ 使用 boost fusion adapt_struct 迭代到嵌套结构字段

两个stackoverflowanswers建议使用融合adapt_struct迭代结构字段的方法。该方法看起来不错。但是,如何迭代到本身是结构的字段?根据前面的答案,我想出了下面的代码。问题出在代码无法编译的“#if0”子句处。作为替代解决方案,我创建了“decode()”函数来获取指向目标参数的空指针。这行得通,但在编译时丢失了类型信息。有更好的解决方案吗?structFoo_s{inti;};BOOST_FUSION_ADAPT_STRUCT(Foo_s,(int,i))structBar_s{intv;Foo_sw;};BOOST_FUSION_ADAPT_STRUCT(Bar

c++ - 当给定一个有效的 struct tm 时,mktime 返回 -1

#include#includeintmain(intargc,char*argv[]){structtmstm;stm.tm_sec=27;stm.tm_min=5;stm.tm_hour=18;stm.tm_mday=2;stm.tm_mon=0;stm.tm_year=43;stm.tm_wday=0;stm.tm_yday=0;printf("%d\n",mktime(&stm));getchar();return0;}打印-1我误会了什么?[+edit]这是使用具有32位目标的VisualStudio2012。我想后续问题是“存储任意日期/时间值(即可能在1900年之前的值)

c++ - 使用可选的 'struct' 关键字时出现 g++ 警告

如果我写这个程序:#includenamespacefoo{structbar{intx;};}intmain(void){structfoo::bar*a=newstructfoo::bar;deletea;return0;}并编译它:g++main.cxx-Wall-Wextra它给了我这个警告:main.cxx:Infunction‘intmain()’:main.cxx:10:39:warning:declaration‘structfoo::bar’doesnotdeclareanything[enabledbydefault]但是,如果我在new关键字之后取出struct关

c++ - 这是 C++11 中的 struct POD 吗?

这个结构是C++11中的POD吗?structB{inta;B(intaa):a(aa){}B()=default;};请注意,此问题明确针对C++11。我知道这个类不是C++98和C++03中的POD。有关C++11中POD的解释,请参阅trivialvs.standardlayoutvs.POD(受此问题启发:Isthereacompile-timefunc/macrotodetermineifaC++0xstructisPOD?) 最佳答案 是的,根据newrules是一个POD.如果您查看新标准的§8.4.2/4段,您会发现

C++:struct 和 new 关键字

我是C++的初学者,我有以下代码:structAirline{stringName;intdiameter;intweight;};Airline*myPlane=newAirline;我的问题是,如果我没记错的话,当我调用new方法时,它会分配内存。PC如何知道要分配多少内存,特别是考虑到其中有一个字符串类型?谢谢 最佳答案 std::string对象是固定大小的;它包含一个指向实际字符缓冲区的指针及其长度。std::string的定义看起来像classstring{char*buffer;size_tnchars;public:

c++ - 从 struct timespec 转换为 std::chrono::?

我有一个structtimespec值流。我想将它们转换为nativeC++11表示,但我完全被chrono打败了。什么是最佳目的​​地以及如何从structtimespec或structtimeval到达那里,因为这是一个简单的转换,微秒对这些计时来说已经足够了?我想我想了解这个,对吧?std::chrono::system_clock::time_point在这种情况下,timespec是来自GPS的UNIX时间。是的,他们正在使用4字节秒(转换后的形式在内存中签名,然后写成无符号),到2038年将被确定。作为引用,我将把它添加到gsf的C++阅读器中

c++ - 重定义struct报错,我只定义了一次

我真的不明白如何修复这个重定义错误。编译+错误g++main.cpplist.cppline.cppInfileincludedfromlist.cpp:5:0:line.h:2:8:error:redefinitionofâstructLineâline.h:2:8:error:previousdefinitionofâstructLineâmain.cpp#includeusingnamespacestd;#include"list.h"intmain(){intno;//Listlist;cout>no;//list.set(no);//list.display();}list.

windows - struct sockaddr,sin_family不是成员

根据msdn的这篇文章(http://msdn.microsoft.com/en-us/library/windows/desktop/ms740496(v=vs.85).aspx)结构因选择的协议(protocol)而异!现在我想使用http://www.intelliproject.net/articles/showArticle/index/check_tcp_udp_port中的这段代码检查端口是否打开!现在我有如下结构sockaddr:structsockaddr{ushortsa_family;charsa_data[14];};但需要这个结构:structsockaddr

c++ - Redis pub/sub 序列化数据 struct C 数据

我想将我的序列化数据存储在redis上并发布到我定义的channel。但是在redissettingkeyvalue好像有问题。我想念什么解决方案?提前致谢。#include#include#include#include#include"hiredis.h"#include"async.h"#include"macosx.h"#definePACKETSIZEsizeof(cloudRANMessage)#defineCOMMANDSIZE256typedefstructcloudRANMessage{unsignedintstation_id;unsignedintlocation

ios - 不兼容的 block 指针类型用类型表达式初始化 'void(^)(struct ALAssetsGroup *, BOOL *)'

我在SO上看到几个人已经成功地使用了这段代码。但是我得到了不兼容的block指针错误:不兼容的block指针类型正在初始化void(^)(structALAssetsGroup*,BOOL*)带有类型的表达式void(^)(ALAsset*,NSUInteger,BOOL*)有什么提示吗?(编辑完整代码)ALAssetsLibrary*library=[[ALAssetsLibraryalloc]init];void(^assetEnumerator)(structALAsset*,NSUInteger,BOOL*)=^(ALAsset*result,NSUIntegerindex,B