草庐IT

der_pod_t

全部标签

c++ - 使用 SFINAE 检测 C++ 中类型的 POD-ness

这里的原标题是解决VS2005C++中SFINAE错误的方法这是尝试性地使用SFINAE来为TR1中存在的is_pod模板类创建等效项(在VS2005中还没有TR1)。当模板参数是POD类型(包括基本类型和由它们构成的结构)时,它的value成员应该是true,如果不是(就像非平凡的构造函数),它应该是false。templateclassis_pod{public:typedefcharYes;typedefstruct{chara[2];}No;templatestaticYestest(int){union{TvalidPodType;}u;}templatestaticNote

c++ - POD 与非 POD 类类型的默认初始化

C++标准说(8.5/5):Todefault-initializeanobjectoftypeTmeans:IfTisanon-PODclasstype(clause9),thedefaultconstructorforTiscalled(andtheinitializationisill-formedifThasnoaccessibledefaultconstructor).IfTisanarraytype,eachelementisdefault-initialized.Otherwise,theobjectiszero-initialized.用这段代码structInt{in

通过默认 c'tor 进行 C++ pod 初始化

考虑这个POD:structT{inti;charc;};哪个C++标准要求POD成员通过引入的默认c'tor初始化为零(或者从一开始就在标准中)?是的,这意味着如果没有用户指定的c'tor,'i'和'c'都将被初始化为0。参见http://msdn.microsoft.com/en-us/library/80ks028k%28VS.80%29.aspx 最佳答案 我不知道我是否正确理解了你的问题。thatmeanswithoutuserspecifiedc'tor,'i'and'c'willbothbeinitializedto0

Pod Repo删除主做什么?

因此,我对Cocoapods非常陌生,我希望对命令进行一些澄清。我有一个错误Unabletofindaspecificationfor'Firebase/Core'在多次尝试不同的命令之后,唯一有效的事情是Podreporemovemaster。谁能告诉我为什么这起作用及其做到了?看答案主(规格)存储库是GitHub上的存储库,其中包含所有可用POD的列表。如果它被损坏或不最新,则在安装或更新豆荚时可能会遇到问题。经过podreporemovemaster您删除了可能被损坏或不最新的主回购。

如何指定可可Pod资产目标

我创建了一个可可POD框架,其中包括一些图像资产。这些资产包含在POD规范中,当我检查框架时,我可以看到图像,但是我无法从应用程序访问它。当我检查“开发豆荚”部分中的资产时,我注意到目标是一个称为zapic-zapic而不是目标zapic的捆绑包。如果我将目标成员资格更改为“zapic”,一切都按预期工作,我可以通过捆绑包访问图像。如何在框架中更改目标,以便我不需要手动更改目标?看答案花了几个小时试图弄清楚这一点之后,我发现这是一个单独的捆绑包,因为我的规格文件正在定义s.resource_bundles={'Zapic'=>'Zapic/ZapicAssets.xcassets'}。这仅仅是

c++ - 从 C++ 中的 POD 结构获取可用数据成员的列表

这个问题听起来有点不寻常。让我们来看一个POD结构:structMyStruct{intmyInt;doublemyDouble;AnotherPOD*myPointer;};编译器知道可用数据成员的列表。您知道在编译时(更好)还是在运行时获取数据成员名称(和类型)列表的方法吗?我有大量的POD结构,我想自动创建运算符我知道我可以为头文件创建一个解析器,创建一些文件并编译它们。但是,我确信编译器已经有了这些信息,我想利用它。有什么想法吗?谢谢 最佳答案 BOOST_FUSION_ADAPT_STRUCT引入了编译时反射(这很棒)。当

c++ - 如何初始化静态本地 POD 常量?懒还是不懒?

POD表示没有构造函数和析构函数的原始数据类型。我很好奇,编译器如何处理POD静态局部变量的惰性初始化。如果函数要在多线程应用程序中的紧密循环内运行,那么惰性初始化意味着什么?这些是可能的选择。哪个更好?voidfoo_1(){staticconstintv[4]={1,2,3,4};}voidfoo_2(){constintv[4]={1,2,3,4};}这个怎么样?没有惰性初始化,但语法略显笨拙?structBar{staticconstintv[4];voidfoo_3(){//dosomething}};constintMy::v[4]={1,2,3,4};

c++ - C++ 模板如何专用于所有 32 位 POD 类型?

我开发了一个简单的模板函数来交换单个字段的字节顺序:templateinlinevoidSwapEndian(T&ptr){char*bytes=reinterpret_cast(&ptr);inta=sizeof(T)/2;while(a--){chartmp=bytes[a];intb=sizeof(T)-1-a;bytes[a]=bytes[b];bytes[b]=tmp;}}我经常在T=int或float的地方使用它。这两种类型在目标平台上均由4个字节表示,并且可以由模板的相同特化处理。因为这个函数有时负责处理大缓冲区的原始数据,所以我创建了一个优化的特化:templatein

c++ - C++11 中的默认构造函数、POD 的初始化和隐式类型转换

我刚看了Chandler在GoingNative2012上关于Clang的演讲。他展示了以下代码:#includestructS{intn;};structX{X(int){};};voidf(void*){std::cerrChandler指出,这为c++11调用了f(void*),为c++03调用了f(X)。他还指出,原因是S().n默认初始化为0,使其成为nullptr常量。首先,我假设成员变量n的零初始化依赖于编译器实现并且不受标准保证(或者这是否随c++11发生了变化)?Chandler暗示这是由于支持常量表达式,但我仍然不能完全理解他的推理。其次,为什么f(X)会被C++0

C++11:可变同质非 POD 模板函数参数?

在C++11中,您将如何编写一个采用可变数量的同类非POD函数参数的模板函数?例如,假设我们想为定义小于“operator//pseduo-code...templateTmin(Tx1,Tx2,...,Txn){Tlowest=x1;for(Tx:{x2,...,xn})if(x上面是非法的C++11,你怎么写才合法? 最佳答案 均匀?只需使用std::initializer_list。templateTmin_impl(std::initializer_listvalues){return*std::min_element(va