草庐IT

object-construction

全部标签

c++ - 模板函数 : default construction without copy-constructing in C++

考虑structC{C(){printf("C::C()\n");}C(int){printf("C::C(int)\n");}C(constC&){printf("copy-constructed\n");}};还有一个模板函数templatevoidfoo(){//default-constructatemporaryvariableoftypeT//thisiswhatthequestionisabout.Tt1;//willbeuninitializedfore.g.int,float,...Tt2=T();//willcalldefaultconstructor,thenco

c++ - 在 Objective c++/c++ 中包装 Objective C

我有一个使用Boost/WXWidgets编写的C++应用程序,针对Windows和MacOSX。但是,我遇到了一个使用这些库无法解决的问题。我的解决方案要求我包装一个ObjectiveC类,以便我可以从我的一个c++模块中调用它。到目前为止,我的研究告诉我,我需要将ObjectiveC++写入带有.mm扩展名的源文件中,从而允许XCode将该文件视为ObjectiveC和C++的混合体。我发现很多文章详细介绍了如何包装C++,以便可以从ObjectiveC调用它,但没有任何文章提供任何相反的细节。任何指向文章的链接,或者更好的是,一个有效的例子,将不胜感激。

c++ - 如果对象是普通可构造/可破坏的,是否允许 STL 容器跳过调用 allocator::construct 和 allocator::destroy?

问题在标题中。容器是否允许这样做,或者分配器的方法是否保证被调用,即使对象是微不足道的可构造/可破坏的?我确实尝试搜索此内容,但空手而归...但如果重复,请告诉我。 最佳答案 §23.2.1[container.requirements.general]/p3:Forthecomponentsaffectedbythissubclausethatdeclareanallocator_type,objectsstoredinthesecomponentsshallbeconstructedusingtheallocator_trait

c++ - 构造函数被继承时的 std::is_nothrow_constructible

考虑以下两个示例:structA{A()noexcept=default;};structB:A{B()noexcept=default;templateB(T)noexcept{}};structC:A{usingA::A;templateC(T)noexcept{}};和用法:std::cout::value::value::value::value输出是:1101使用的编译器:GCC4.8.1。因此,如果我显式编写默认的B构造函数,(X)会生成1,另一方面,如果默认的C构造函数可用由于继承,(Y)产生0。这是为什么?这是否意味着在使用is_nothrow_constructibl

c++ - 从 Objective-C 移植到 C++ 的最佳方式是什么?

我没有任何Objective-C经验,但有很强的C++背景。是否有自动化工具/脚本,或者最坏的情况,是否有一些手动方法使用一些优秀的引用来将用Objective-C编写的代码移植到C++?有哪些困难?编辑:有人告诉我代码使用Objective-C相当简单。这是一个iPhone应用程序,可能不会在操作系统级UI方面使用太多。C++版本适用于GNUStep不是一个选项的非Apple平台,因此Objective-C++不是一个选项。 最佳答案 我处理过同样的问题。并有一些解决方案:Microsoft现在提供自己的ObjectiveC“桥”

iphone - 将 libmms 与 Objective-C 结合使用

这几天我一直在互联网上寻找有关如何使用libmms的教程或示例。似乎没有,这对于一个似乎被广泛使用的库来说很奇怪。LibMMS是一个用于解析mms://和mmsh://类型网络流的通用库。http://sourceforge.net/projects/libmms/files/libmms/0.6.2/libmms-0.6.2.tar.gz/download我找到的唯一代码示例来自stackoverflow上的另一篇文章。下面会显示哪个是mms_connect(NULL,NULL,g_tcUrl.av_val,g_hostname.av_val,g_playpath.av_val,""

c++ - "Expected ' (' for function-style cast or type construction"错误是什么意思?

我收到错误“Expected'('forfunction-stylecastortypeconstruction”,我已尽力在线研究此错误的含义,但无法找到导致此错误的任何文档错误。我在StackOverflow上发现的所有相关问题都修复了特定的代码片段,并且没有更笼统地解释导致错误的原因。这些包括Expected'('forfunction-stylecastortypeconstruction答案突出了代码的几个问题。究竟是哪个问题导致了错误尚不清楚。c++Xcodeexpected'('forfunction-stylecastortypeconstruction在主函数中定义函

c++ - Objective-C 枚举错误?

我在类头的顶部定义了一个枚举:enumPresetSeq{kSeqClear=0,kSeqAllBeats,kSeqAllTicks};但是当我尝试使用枚举为该类声明一个方法时。-(void)quickSetSeq:(PresetSeq)patternforChannel:(long)ch;我收到错误:在“PresetSeq”之前应有“)”如果我改用typedef枚举:typedefenum{kSeqClear=0,kSeqAllBeats,kSeqAllTicks}PresetSeq;然后编译器很高兴,但我不记得在C/C++中必须这样做。在Obj-C中枚举必须是typedef吗?谢谢

c++ - C++ vector 与 Objective-C 中的什么相关?

我正在从Objective-C转向C++,但不确定vector是什么。我已经阅读了有关它们的文档,但我不太清楚。您如何使用Objective-C类比来解释C++vector? 最佳答案 它们与NSMutableArrays非常相似,但vector是一个模板类,因此可以为任何(标准模板库兼容)类型实例化。NSArrays始终包含NSObjects。也就是说,假设您指的是std::vector。 关于c++-C++vector与Objective-C中的什么相关?,我们在StackOverf

c++ - Objective-C 预处理器定义,动态 C 字符串到 NSString 声明

我正在尝试创建一个可以根据上下文发出C++或Objective-C的宏定义,但似乎无法轻松地在宏中构造NSString。C++版本很简单,因为它使用常规字符串,但事实证明制作一个发出NSString的字符串很棘手:#defineFOO(x)bar(@##x)预期的结果是通过使用@前缀将字符串参数转换为NSString参数:FOO("x")//=>bar(@"x")我得到的是一个阻止编译的错误:Pastingformed'@"x"',aninvalidpreprocessingtoken 最佳答案 NSString*x=@"text"