小编Oli*_*ver的帖子

C++ const cast,不确定这是否安全

这似乎是一个愚蠢的问题,但我真的需要澄清一下:

这会给我的计划带来任何危险吗?

是否const_cast需要?

如果我更改了输入指针值,它是否可以安全地工作,std::string还是会创建未定义的行为?

到目前为止唯一的问题是,每当我修改输入指针并使其无法使用时,这可能会影响字符串"some_text".

std::string some_text = "Text with some input";

char * input = const_cast<char*>(some_text.c_str());
Run Code Online (Sandbox Code Playgroud)

谢谢你给我一些提示,我想避免自己拍摄

c++ const-cast

7
推荐指数
2
解决办法
1258
查看次数

ZeroMQ:如何实现类似C的多线程

在C中我们有套接字和描述符,可以只取其中一个并将它们交给一个线程,这使得你可以接受传入的连接并将工作交给你喜欢的线程并且线程可以通过本身的回应.

我的问题是,如何使用ZeroMQ实现这一目标?使用Request-Reply模式,我似乎无法异步发送和接收,响应必须按顺序排列,我的目标是将多个客户端连接到单个服务器,不按顺序发送响应.

我看了一下Request Response模式,但API明确指出使用带有多个Threads的Socket是一个坏主意.也许我错过了一些东西,或者ZeroMQ比我知道的更聪明.如果您需要任何进一步的信息,请发表评论,我会尽力提供信息.

我还看了一下提供的示例:代码示例

这是Socket描述:ZMQ-Socket

java sockets multithreading zeromq

6
推荐指数
1
解决办法
1924
查看次数

读取Oracle sql delete

我的问题是,如何删除读取的记录?我正在使用Oracle ond AIX和c ++应用程序中的Roguewave DB Layer.

我一直在谷歌搜索这个答案,但似乎只有简单的例子.是否有返回已删除行的SQL语句?

这将极大地提高我的应用程序的性能,因为只有0.1%的情况需要保留在此表中,换句话说,我将0.1%插回到表中.

我发现的唯一提示是"Into"子句,我会假设使用delete into会完成这项工作,但我从未使用它.

http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/returninginto_clause.htm

c++ sql oracle

3
推荐指数
1
解决办法
318
查看次数

使用Oracle STANDARD_HASH,在JAVA中重现哈希

我在 Oracle 中使用 STANDARD_HASH('input','SHA256') 函数用相对哈希值填充记录。

这可以通过连接到 Oracle 来重现:

select STANDARD_HASH('1234','SHA256') 
from dual
Run Code Online (Sandbox Code Playgroud)
select STANDARD_HASH('1234','SHA256') 
from dual
Run Code Online (Sandbox Code Playgroud)

现在问题是什么;为了准确地重现 Oracle 中 STANDARD_HASH 生成的哈希值,我必须在 JAVA 中做什么?有人对此有经验吗?

笔记; 由于某种原因,推荐的 Oracle 哈希函数上没有种子。有谁知道默认种子或如何解决这个问题?

背景:我想做什么?使用 Oracle-Default-Tools 填充 Oracle 中的表,并使用 Java 程序接收输入、对其进行散列并在表中选择正确的记录。

我不想要什么;人们告诉我如何以不同的方式实现它,我正是需要这种方式,否则可以节省你的时间

java oracle hash compatibility

3
推荐指数
1
解决办法
5678
查看次数

C++多条件语句 - 合并

我根据规范编写了一个程序.
规范有大约3种类型,每种类型在每个点上都有不同的处理方式.

这或多或少意味着代码可读性,我写的如下所示,现在我的问题是,如果你有200个这样的语句,将它们全部合并为一个"if enum-type x"是不值得的.

我相信有一个程序已经做到了但谷歌对这个具体问题没有多大帮助.提前感谢您的帮助.

/* Point 1.15 Filling Customers bdate */

if(current.identifier == APPLE){ output.setValue(1.15, additionalObj.some.color)}
if(current.identifier == PLUM){ output.setValue(1.15, otherObj.another.color) }
if(current.identifier == GRAPE){ output.setValue(1.15, default::color) }


/* Point 1.16 Filling Customers cash*/

if(current.identifier == APPLE){ do whatever}
if(current.identifier == PLUM){ do whatever}
if(current.identifier == GRAPE){ do whatever}
Run Code Online (Sandbox Code Playgroud)

要取得的成果:

if(current.identifier == APPLE){ output.setValue(1.15, additionalObj.some.color) 
                                 do whatever
}
Run Code Online (Sandbox Code Playgroud)

等等,所以我可以自动将它们合并为1个语句,而我仍然拥有可读代码

编辑:我可能误导了你,它实际上不是一个类型,它只是一个带有字符串标识符和SubObjects的对象所以我不能使用多态.我已经调整了上面所以你可以看到我想要实现的目标.

c++

1
推荐指数
1
解决办法
243
查看次数

编译器呼喊文本">"是意外​​的C++ XLC

我在头文件中声明了一个函数.

我不知道为什么但是编译器对此行呻吟并说"The Text ">"是出乎意料的.

我正在使用AIX 5.3和XLC/VAC编译器.也许我对函数的定义也有问题,但我认为地图必须知道它适用的类型是什么.

有问题的行打印在下面.

std::map<std::string , std::list<std::pair<int, Event*> > * > * functionX(Customer * id, std::multimap<string, CustomerDetails> * p_mapWithCustomers);
Run Code Online (Sandbox Code Playgroud)

我假设这是函数的正确声明

正如下面提出的,我已经定义了typedef,遗憾的是这只会使问题变得很糟糕,现在我在typedef的行上得到了同样的错误.

typedef std::pair<int, Event* > pair_event_t;
typedef std::map<std::string, pair_event_t * > map_rule_t;
Run Code Online (Sandbox Code Playgroud)

c++ templates compilation header c++-standard-library

0
推荐指数
1
解决办法
1522
查看次数