草庐IT

multiple-processes

全部标签

C++ 及其类型系统 : How to deal with data with multiple types?

“简介”我是C++的新手。我了解了所有基本内容,并设法为我的编程语言构建了2-3个简单的解释器。让我头疼的第一件事:用C++实现我的语言的类型系统想一想:Ruby、Python、PHP和Co.有很多内置类型,显然是用C实现的。所以我首先尝试的是在我的语言中使用三种可能的类型来给出一个值:Int、String和Nil。我想到了这个:enumValueType{Int,String,Nil};classValue{public:ValueTypetype;intintVal;stringstringVal;};是的,哇,我知道了。由于必须一直调用字符串分配器,因此传递此类非常慢。下次我尝试

c++ - 重新定义 malloc/free with static linking has multiple definition error

我公司最近想把编译器从gcc-3.4更新到gcc-4.5。但是,我们客户的机器可能没有最新的libstdc++.so,所以我们想静态链接我们的二进制文件。我们的程序需要定制的malloc()/free()以满足非常高的性能要求。我修改了makefile,在链接时添加了一个-static,得到了以下错误信息:/usr/lib64/libc.a(malloc.o)(.text+0x18c0):Infunction`free'::multipledefinitionof`free'../../ic/src/memmgr/libmemmgr_mt_thread.a(memmgr_mt_thre

c++ - 警告 : overloaded virtual function "Base::process" is only partially overridden in class "derived"

我低于警告。我的部分代码是:classBase{public:virtualvoidprocess(intx){;};virtualvoidprocess(inta,floatb){;};protected:intpd;floatpb;};classderived:publicBase{public:voidprocess(inta,floatb);}voidderived::process(inta,floatb){pd=a;pb=b;....}我低于警告:Warning:overloadedvirtualfunction"Base::process"isonlypartiallyo

C++11 线程 : Multiple threads waiting on a condition variable

我目前正在研究一个模拟扩展生产者-worker模型的问题。在这个问题中,有3个worker和3个工具可用,要让worker工作,他们需要2个工具(和Material,但这些无关紧要)。如果金库中有>=2个工具,worker将拿取2个。否则,他们将等待一个条件变量,该变量将在>=2个时发出信号。这对2个worker来说没问题:一个工作然后将工具归还到金库,另一个等待的worker将被唤醒并拿走2个工具。问题是,有3个worker,总会有一个人饿着肚子去拿工具。经过一些测试后,我注意到等待条件变量的线程是以堆栈形式构建的。有没有可能让它排队?(1等,2等,3等。当1觉醒想再做一个的时候,就

c++ - "multiple overloads"使用具有重复类型的模板类

我正在尝试编写一个采用两种模板类型的类。这个类继承自一个接口(interface)。请参见下面的代码。#include#includetemplateclassIObserver{public:virtualvoidNext(constT&value)noexcept=0;};templateclassBinaryObserver:publicIObserver,publicIObserver{public:voidNext(constT1&value)noexceptoverride{};voidNext(constT2&value)noexceptoverride{};};intm

c++ - 编译时错误 : Multiple definition of 'main'

我收到以下错误:`main'的多重定义我新建了一个项目,里面有两个c++文件:文件1#includeusingnamespacestd;intmain(){cout文件2#includeusingnamespacestd;intmain(){cout当我按下构建项目并运行时,出现错误。如何运行这些文件? 最佳答案 您不能在同一个项目中有两个主要功能。将它们放在单独的项目中或重命名其中一个函数并从另一个主要函数调用它。无论参数列表如何,您的项目中永远不能有多个main()函数,因为它是入口点。但是,只要参数列表不同(functiono

c++ - 可变参数模板 : Interlacing multiple packs

给定任意数量的包,从每包中取出第一种,将它们放在一起。然后从每个包中取出第二种,将它们放在一起,等等......然后将它们全部合并。任何剩下的人都会在他们之间重复这个过程。例如,为了更好的可读性,使用整数来表示不同的类型,InterlacePacks,Pack,Pack>::type会给予Pack仅当所有包的尺寸都相同时,以下代码才有效。当包装尺寸不同时,我现在完全无法处理“剩菜”。到目前为止,这是我的代码。我会解释每个阶段,以便您了解我的计划:#include//FirstahelpertoremovethefirstNtypesfromapack:templatestructRem

c++ - 简单的 C++ : How to overload the multiplication operator so that float*myClass and myClass*float works

classMyClass;intmain(){floata=5;MyClassc1;MyClassc2=a*c1;MyClassc3=c1*a;}如何重载乘法运算符以便a*c1和c1*a都能工作? 最佳答案 像这样:MyClassoperator*(floatx,constMyClass&y){//...}MyClassoperator*(constMyClass&y,floatx){//...}第二个也可以是成员函数:classMyClass{//...MyClassoperator*(floatx);};前2个选项作为类范围之外

c++ - 网络游戏作弊: Is it possible to prevent one Win32 process from inspecting/manipulating another's memory?

我玩在线游戏《魔兽世界》,该游戏受到自动机器人的困扰,这些机器人检查游戏的分配内存以读取游戏/玩家/世界状态信息,这些信息用于机械地玩游戏。他们有时也会直接写入游戏的内存本身,但据我所知,更复杂的不会。该游戏的供应商BlizzardEntertainment有一个名为Warden的单独应用程序,它应该可以检测和禁用类似的黑客和作弊行为,但它并不能捕获所有内容。是否可以制作一个Windows应用程序,让您是唯一一个可以将您读入内存的内容读入内存的应用程序?在数百万台机器上运行的大型C++应用程序上实现这种做法是否实用? 最佳答案 做不

c++ - 如何在 Boost.Process 0.5 中将程序终止与流结束绑定(bind)?

在这个Boost.Process0.5(http://www.highscore.de/boost/process0.5/index.html)的简单示例中,程序(ls)的输出正在提供一个流。流工作正常但与预期相反,流在程序完成后不会变为无效(例如流结束)(类似于以前版本的Boost.Process,例如http://www.highscore.de/boost/process/index.html)为了使流(示例中的是)在子程序退出后自动失效,我缺少什么?也许这是我必须在file_descriptor的Boost.Streamsstream中设置的一个选项?#include//ver