草庐IT

Binding_New_Objective-C_Types

全部标签

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++ - C/C++ 中的 STL、iostream、new、delete for CUDA

我可以在C/C++中为CUDA使用STL、iostream、new、delete吗? 最佳答案 如果您有Fermi级GPU(因此计算能力>=2.0),并且正在使用CUDA4.0或更高版本,那么new和delete都可以使用在设备代码中。不支持STL容器和算法以及iostream。如果您想对CUDA使用“类似STL”的操作,您可能会对Thrust感兴趣模板库。它允许主机代码使用容器类型透明地与GPU交互,并实现许多非常有用的数据并行原语,如排序、缩减和扫描。请注意,这仍然是主机端设备,不能在您自己的内核代码中使用Thrust及其容器。

c++ - 可以将堆栈对象地址提供给 placement new 吗?

忽略这种做法的用处。(当然,我们欢迎现实生活中的例子。)例如,以下程序输出a的正确值:#includeusingnamespacestd;intmain(){inta=11111;inti=30;int*pi=new(&i)int();cout但是new-allocation不应该在i附近创建一些簿记信息吗?(为了正确的后续释放),在这种情况下应该会破坏i周围的堆栈。? 最佳答案 是的,使用指向堆栈上对象的指针执行placement-new是完全可以的。它只会使用那个特定的指针来构造对象。Placement-new实际上并不是分配任

C++14 元编程 : Automagically build a list of types at compile/init time

使用C++14和CuriouslyRecurringTemplatePattern(CRTP)以及可能的Boost.Hana的某种组合(或boost::mpl如果您愿意),我可以在编译时(或静态初始化时)构建一个类型列表而无需显式声明吗?例如,我有这样的东西(在Coliru上查看):#include#include#includenamespace{structD1{staticconstexprautoval=10;};structD2{staticconstexprautoval=20;};structD3{staticconstexprautoval=30;};}intmain(

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++ 中,为什么动态创建对象需要 `new` 而不仅仅是分配?

我有这个简单的类层次结构:classBase{public:virtualintx()const=0;};classDerived:publicBase{int_x;public:Derived(intx):_x(x){}intx()const{return_x;}};如果我使用malloc分配一个Derived的实例,然后尝试访问多态函数x,程序崩溃(我得到段错误):intmain(){Derived*d;d=(Derived*)malloc(sizeof(Derived));*d=Derived(123);std::coutx()当然,我的实际应用要复杂得多(它是一种内存池)。我很

c++ - new 和 delete 处理多线程问题

我正在看书EfficientC++:PerformanceProgrammingTechniques作者对全局新的和删除的运营商说了以下内容:Theymanagememoryintheprocesscontext,andsinceaprocessmayspawnmultiplethreads,new()anddelete()mustbeabletooperateinamultithreadedenvironment.Inaddition,thesizeofmemoryrequestsmayvaryfromonerequesttothenext.第6章单线程内存池。这是真的吗?我认为C+

C++ 连接字符串导致 "invalid operands of types ‘const char*’ 和 ‘const char"

我想连接两个字符串,但出现错误,我不知道如何克服这个错误。有什么方法可以将这个constchar*转换为char吗?我应该使用一些取消引用吗?../src/main.cpp:38:error:invalidoperandsoftypes‘constchar*’and‘constchar[2]’tobinary‘operator+’make:***[src/main.o]Error1但是,如果我尝试以这种方式组成“bottom”字符串,它会起作用:bottom+="|";bottom+=tmp[j];bottom+="";这是代码。#include#include#include#inc

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