小编Mat*_*lia的帖子

C++ std :: string的各个实例使用相同的分配器吗?

我一直想知道的一件事是,如果std::string我在C++代码中使用的实例使用相同的分配器,或者它们是否有自己独立的内存池?

显然,跨多个频繁创建和销毁的字符串共享单个内存池更有效.任何人都可以为我确认或否认这一点吗?

c++ memory-management stl

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

使用不同的IPC机制

我是一名c ++程序员.

我想知道一个实时场景,我们可以使用不同的IPC机制,如PIPE/Named,共享内存.

我大致知道在哪里可以使用套接字和消息队列.但对于PIPE /命名PIPE和共享内存,我不知道.

这只是为了解不同的IPC机制及其用法.

谢谢,

c++ ipc

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

如何在boost :: mpl算法中使用std :: tuple类型?

boost::mpl算法似乎不能够在工作std::tuple类型的开箱即用的例如,下列不编译(升压1.46.0,G ++快照2011-02-19):

#include <tuple>
#include <boost/mpl/vector.hpp>
#include <boost/mpl/contains.hpp>

namespace mpl=boost::mpl;

typedef mpl::vector<int,float,bool> types;
static_assert(mpl::contains<types, float>::value, "vector contains bool");

typedef std::tuple<int,float,bool> types2;
// the following does not compile:
// error: no class template named ‘apply’ in ‘struct boost::mpl::contains_impl<boost::mpl::non_sequence_tag>’
static_assert(mpl::contains<types2, float>::value, "tuple contains bool");
Run Code Online (Sandbox Code Playgroud)

使boost::mpl算法工作的最简单方法是什么std::tuple

  • 是evtl. boost::fusion提供此功能(因为它这样做boost::tuple)?
  • 如果不是,它有可能结转的融合实现boost::tuplestd::tuple容易吗?
  • 如果不是,我是否真的必须实现MPL文档中列出的所有内部元函数或哪些足够?(该文档只是说" 许多固有元函数提供了一个默认的实现,将在大多数情况下工作 ",但目前尚不清楚哪些准确.还有一些测试只提供开始和结束并没有导致我到任何地方).

c++ tuples boost-mpl c++11

6
推荐指数
2
解决办法
3858
查看次数

有没有办法在Javascript中正确地乘以两个32位整数?

有没有办法在Javascript中正确地乘以两个32位整数?

当我从C中尝试使用时,long long我得到了这个:

printf("0x%llx * %d = %llx\n", 0x4d98ee96ULL, 1812433253,
      0x4d98ee96ULL * 1812433253);
==> 0x4d98ee96 * 1812433253 = 20becd7b431e672e
Run Code Online (Sandbox Code Playgroud)

但是从Javascript来看结果是不同的:

x = 0x4d98ee97 * 1812433253;
print("0x4d98ee97 * 1812433253 = " + x.toString(16));
==> 0x4d98ee97 * 1812433253 = 20becd7baf25f000
Run Code Online (Sandbox Code Playgroud)

尾随零使我怀疑Javascript具有奇怪限制的整数分辨率,介于32位和64位之间.

有没有办法得到正确的答案?(如果重要的话,我在x86_64 Fedora 15上使用Mozilla js-1.8.5.)

javascript 64-bit

6
推荐指数
3
解决办法
2754
查看次数

为什么celery在执行任务时会返回KeyError?

我一直得到这个keyError.我正在向任务函数发送字符串和id(整数),所以我认为这不是序列化问题.它还说keyerror是在函数本身的路径上,而不是内容.请帮忙.

Tasks.py

from celery.decorators import task
from notification import models as notification

@task(ignore_result=True)
def notify_match_creation(match, home_team, away_team, home_team_captain, away_team_captain):
    notification.send(User.objects.filter(profile__teams__pk__in=(home_team, away_team)),
                      "tournaments_new_match",
                      {'match': unicode(match),
                       'home_team_captain': home_team_captain,
                       'away_team_captain': away_team_captain,
                       })
Run Code Online (Sandbox Code Playgroud)

相关设置

CELERY_RESULT_BACKEND = "database"
CELERY_RESULT_DBURI = "postgresql://user:pass@localhost/ahgl"
BROKER_HOST = "localhost"
BROKER_PORT = 5672
BROKER_USER = "guest"
BROKER_PASSWORD = "guest"
BROKER_VHOST = "/"
Run Code Online (Sandbox Code Playgroud)

芹菜产量:

[任务]

  . apps.tournaments.tasks.notify_match_creation
  . tournaments.tasks.notify_match_creation
[2012-02-25 02:34:06,209: WARNING/MainProcess] celery@NATTOWER has started.
[2012-02-25 02:34:06,477: WARNING/PoolWorker-4] E:\Webdesign\ahgl\ENV\lib\site-packages\djcelery\loaders.py:84: UserWarn
ing: Using settings.DEBUG leads to a memory leak, never use this setting …
Run Code Online (Sandbox Code Playgroud)

python django celery django-celery

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

分离已启动的进程

我已经开始使用一个过程QProcess::start(),之后我需要将其分离.我该怎么做?我没有在Qt文档中找到相关信息.

我知道QProcess::startDetached(),但由于程序中的其他代码,我无法使用它(我需要分离进程的启动和分离).

c++ qt

6
推荐指数
2
解决办法
3026
查看次数

是否有回复AT + GCAP&co.告诉"我不是调制解调器,走开"?

我正在研究将在串行端口仿真模式下使用蓝牙连接到PC的设备的固件.

在测试期间,我发现Linux上的调制解调器管理器"帮助"尝试将其检测为调制解调器,发送AT+GCAP命令; 对此,目前我的设备回复类似的东西INVALIDCMD AT+GCAP.这是我的协议的正确响应,但显然不是AT回复,因此调制解调器管理器不满意并再次尝试与AT+GCAP其他调制解调器相关的东西.

现在,我发现调制解调器经理一些解决方法(见这里,因而这里,尤其是udev规则方法),但是:

  • 它们不是非常强大(我必须制定一个自定义的udev规则,如果我们改变蓝牙模块可能会破坏);
  • 我担心不仅调制解调器管理器,而且类似的软件/操作系统功能(例如在Windows或OS X上)可能会给我类似的烦恼.

此外,完全控制固件,我可以添加一个特殊的情况AT+GCAP和类似的东西; 那么,来问我的问题:

是否有标准/安全回复AT+GCAP和其他类似的调制解调器探测查询告诉"我不是调制解调器,走开让我一个人呆着?"

hardware modem serial-port firmware at-command

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

如何使用std :: make_heap

http://www.cplusplus.com/reference/algorithm/push_heap/

这太令人困惑了.要在std中使用堆,首先将元素放在向量中,然后调用

std::make_heap(v.begin(), v.end());
Run Code Online (Sandbox Code Playgroud)

如果我在向量中插入元素怎么办?堆乱了吗?例如,v最初可能有10个元素,而我只将堆从第3个元素变为第7个元素,现在我将元素插入到第5个位置和第9个位置,是不是在进程中销毁了堆结构?

为什么push_back(99)push_heap再次打电话之前你必须先在例子中?看起来不仅令人困惑而且效率低下.

那是什么意思sort_heap()?不应该对堆进行排序,(那是什么使它成为堆的权利?)

c++ heap std

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

`__repr__`函数对正常函数的意义是什么?

我正在尝试用我自己学习python而且我坚持使用__repr__函数.虽然我已经阅读了很多帖子__repr__以及python文档.所以我决定在这里提出这个问题.下面的代码解释了我的困惑.

class Point:

    def __init__(self,x,y):
            self.x, self.y = x,y

    def __repr__(self):
        return 'Point(x=%s, y=%s)'%(self.x, self.y)

    def print_class(self):
        return 'Point(x=%s, y=%s)'%(self.x, self.y)



p = Point(1,2)

print p
print p.print_class()


Point(x=1, y=2)
Point(x=1, y=2)
Run Code Online (Sandbox Code Playgroud)

如果正常函数也可以执行类似的任务,那么__repr__结束print_class()(在我的情况下是正常函数)函数的额外优势是什么.

python python-2.7

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

是否可以找到 GCC 可以生成的所有汇编指令的列表?

Xeno KovahOpenSecurityTraining 上主持的x86 程序集介绍的第一天作业中,他指定:

我们现在知道的说明(24)

NOP PUSH/POP CALL/RET MOV/LEA ADD/SUB JMP/Jcc CMP/TEST AND/OR/XOR/NOT SHR/SHL IMUL/DIV REP STOS,REP MOV LEAVE

编写一个程序来查找我们尚未涵盖的指令,并在明天报告该指令。

他进一步断言这个任务是,

  • 后面要介绍的说明不重要:SAL/SAR
  • 上跳跃或变化MUL/IDIV变体IMUL/DIV也不要指望
  • 额外的禁区说明:任何浮点数(因为我们没有在本课程中介绍这些内容。)
  • 他在视频中说你不能使用内联汇编。(被问到时提到)。

是否可以找到 GCC 当前输出的 x86 汇编指令列表,而不是objdump随机执行并审核它们然后创建源代码

这个问题的基础似乎是实际使用的指令的一个非常小的子集,人们需要知道逆向工程(这是课程的重点)。Xeno 似乎试图找到一种有趣的、有指导意义的方式来说明这一点,

我认为知道大约 20-30(不包括变化)就足够了,你很少会检查手册

虽然我欢迎大家加入我在 OpenSecurityTraining 的这个很棒的课程,但问题是我提出的从 GCC 中找出它的方法(如果可能的话)。不是,让人们真正完成 Xeno 的任务。;)

x86 assembly gcc instructions

6
推荐指数
2
解决办法
993
查看次数