草庐IT

NSOperation 和 NSOperationQueue 的 C++ 等价物

请告诉我如何在C++中实现NSOperation和NSOperationQueue功能。 最佳答案 NSOperation是一个用于管理非关键任务的类。您创建操作,并将它们放在NSOperationQueue中,每个操作都在应用程序执行时执行。C++中没有这样的“等价物”。C++是一种语言,因为NSOperationQueue是FoundationKit的一部分,是OSX和iOS的一部分,是一组Objective-C对象,不属于objective-c标准。您需要研究并使用执行任务并发的Android范例。或者您可以只从服务器手动下载

c++ - Mac OS X 等价于 CreateEvent() 与用于进程间通信的命名对象?

我正在寻找MacOSX上最简单或最合适的方法来简单地“发出信号”或通知一个进程。来自Windows背景,这可以使用类似以下的方法来实现。进程A://createnamedeventhCreatedEvent=CreateEvent(NULL,TRUE,FALSE,"MyUniqueNamedEvent");//waitforittobesignalledWaitForSingleObject(hCreatedEvent,INFINITE);然后在进程B中://opentheexistingnamedeventhOpenedEvent=OpenEvent(EVENT_ALL_ACCESS

java - CountDownLatch 等价物

对于某些并发编程,我可以使用Java的CountDownLatch概念。是否有C++11的等效项,或者该概念在C++中称为什么?我想要的是在计数达到零时调用一个函数。如果还没有,我会自己写一个类如下:classcountdown_function{public:countdown_function(size_tcount);countdown_function(constcountdown_function&)=default;countdown_function(countdown_function&&)=default;countdown_function&operator=(co

c++ - 如何在 C++ 中获得整数类型的无符号等价物?

有没有办法在C++中获得有符号整数类型的无符号等价物(相同大小)?我的思路是:templatestructget_unsigned{};templatestructget_unsigned{typedefunsignedinttype;};...templatevoidmyfunc(Tval){get_unsigned::typeu=std::abs(val);...}我正在标准库或Boost中寻找现有的解决方案,除非只有几行代码,否则我不想自己动手。 最佳答案 Boost.TypeTraits有make_unsigned:type

C++ Java static final 等价物

我正在使用C++编写国际象棋游戏程序。我想为类Board创建两个类属性:ROWS和COLUMNS。在Java中,我会将它们声明为staticfinal,一切都会按我的意愿运行。我如何在C++中做同样的声明?我需要在其他类中通过“Board::ROWS”和“Board::COLUMNS”访问这些属性。我所拥有的是这个,它抛出编译错误,因为ROWS和COLUMNS没有在m_TileMap的声明范围内声明。在不使用#define语句的情况下执行此操作是否有好的做法?classBoard{Tile*m_TileMap[ROWS][COLUMNS];public:staticconstintRO

c++ - std::string 的 strncpy 等价物?

在C++标准库中是否有与strncpy完全相同的?我的意思是一个函数,它将一个字符串从一个缓冲区复制到另一个缓冲区,直到它到达终止符0?例如,当我必须解析来自不安全源(例如TCP数据包)的字符串时,我能够在处理数据的同时执行长度检查。我已经搜索了很多关于这个主题的内容,我也发现了一些有趣的主题,但所有这些人都对std::string::assign感到满意,它也能够将字符大小作为参数进行复制.我对这个函数的问题是,它不执行任何检查是否已经命中终止空值-它会认真对待给定的大小并复制数据,就像memcpy将其复制到字符串的缓冲区中一样.如果在应对时有这样的检查,那么分配和复制的内存比必须完

char* 上 memset 的 C++ 等价物

我有这个代码char*oldname=newchar[strlen(name)+1];memcpy(oldname,name,strlen(name)+1);name=newchar[strlen(oldname)+strlen(r.name)+1];memset(name,'\0',strlen(name));strcat(name,oldname);strcat(name,"");strcat(name,r.name);我明白使用memcpy和memset是不行的,但我还不明白如何在C++中使用它,最好不使用std。有人知道吗?谢谢。 最佳答案

c++ - gnu c++ 中是否有 __if_exists 的等价物?

__if_exists是微软特定的关键字,用于在编译时测试标识符是否存在:msdn:__if_exists它在“伪造的”模板特化方面非常有用,因为在某些情况下,它提供了一种比“真正的”特化或重载等其他方法更简单、可读且性能更好的方法。但现在我必须将一个大项目移植到gnuc++,我想如果我不得不为我使用它的(诚然很少的)场合找到其他方法,我会开始有点哭泣 最佳答案 在我看来,这是一个蹩脚的关键字......不幸的是,据我所知,它不存在于gcc中,但我可能根本不知道它。处理此问题的正确C++方法是通过使用概念,即根据某些要求调整类型上执

java - Eclipse 是否有 "vim: set ft=cpp:"或 "-*- c++ -*-"的等价物?

有时文件中的一些代码没有任何扩展名。此类文件将包含以单一语言编写的代码,但每个此类文件可能使用不同的语言(例如C、C++、汇编语言、wiki标记和HTML)编写。同样,当文件名中有共同的扩展名,但不同的文件使用不同的编程语言时,也会出现此问题。我要解决的问题是避免让每个checkout工作区的开发人员都不必弄清楚源文件是什么类型的文件(没有扩展名,或者扩展名不暗示源文件使用的语言)。为此,文件的作者有责任在文件中加入正确的魔法,以便正确打开文件。由于Eclipse能够根据文件中的某些嵌入文本禁用格式化程序,因此我认为也应该可以指定文件类型。OpenWith功能允许单个开发人员更改文件的

Preon 的 Java 或 C++ 等价物?

Preon是一个用于创建二进制编解码器的Java库:您只需在类的数据成员中放置关于它们与位字段的对应关系的注释(例如,用于特定字段的位数),并且基于此类,该库构建一个Codec对象能够创建类的实例,从二进制输入流中读取数据。由于许可问题(它是在GPL下分发的),我无法使用它。在Java或C++中是否有任何具有等效或相似功能的库? 最佳答案 看着license页面,preon库是“GNU通用公共(public)许可证,版本2,带有类路径异常(exception)”,这很重要。这允许您以二进制形式使用该库,您的应用程序也不是GPL。