小编xto*_*ofl的帖子

如何判断python中的信号量是否已满

我有一个有界的信号量对象,确保我的程序一次不下载超过一定数量的文件.每个工作线程在开始下载时获取信号量,并在完成后释放它.

我有另一个线程,想要在没有下载任何内容时运行代码.我想要一种锁定方法,直到信号量完全可用.我怎么能用Python做到这一点?

python semaphore

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

PHPUnit调用未定义的方法`Mock_x _ :: method()`

我正在尝试创建我的第一个phpunit测试,发现自己需要在IMailer接口上存根方法.

interface IMailer
{
    public function send($to, $from, $cc, $subject, $body);
    public function sent();
}

    $mailer = $this->getMockBuilder(
        'IMailer',
        array('send', 'sent'))->getMock();

    $mailer->method('send')->willRreturn(0);
Run Code Online (Sandbox Code Playgroud)

但是,我一直在努力

PHP Fatal error: 
  Call to undefined method Mock_Mailer_13fc0a04::method()
  in ...Test.php on line 16
Run Code Online (Sandbox Code Playgroud)

一个var_dump($mailer);结果

class Mock_IMailer_4c3e02a7#215 (1) {
  private $__phpunit_invocationMocker =>
  NULL
}
Run Code Online (Sandbox Code Playgroud)

使用the expect($this->any())给出了一个dito错误 - 似乎被模拟的对象没有任何模拟功能......

我在ubuntu盒子上运行phpunit 3.7.28和php 5.5.9.

怎么会?我该如何解决?

php phpunit mocking undefined

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

为什么我可以将接受值的callable传递给接受引用的std :: function?

当我声明一个变量时function<void(const Foo&)>,编译器仍然允许我分配一个接受值的lambda:

function<void(const Foo&)> handler;
handler = [](Foo f){};
Run Code Online (Sandbox Code Playgroud)

(cfr.也是http://cpp.sh/5dsp)

因此,当调用处理程序时,将创建一个副本.标准的哪个部分允许这个?有没有办法我可以标记客户端代码,这将是一个问题(一些static_assert的排序?)?

c++ covariance coercion function-object

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

什么时候不需要typedef?

我遇到了一些代码阅读

typedef enum eEnum { c1, c2 } tagEnum;

typedef struct { int i; double d; } tagMyStruct;
Run Code Online (Sandbox Code Playgroud)

我听说有传言说这些结构可以追溯到C语言.在C++中你可以很容易地写出来

enum eEnum { c1, c2 };
struct MyStruct { int i; double d; };
Run Code Online (Sandbox Code Playgroud)

真的吗?你什么时候需要第一个变种?

c c++ typedef

5
推荐指数
2
解决办法
499
查看次数

参数定义(类型和名称)和(类型*名称)之间有什么区别?

这是一个非常基本的问题,但是,从C++专家那里听到它会很好.

在C++中有两种相似的方法来声明by-reference参数.

1)使用"星号":

void DoOne(std::wstring* iData);
Run Code Online (Sandbox Code Playgroud)

2)使用"&"":

void DoTwo(std::wstring& iData);
Run Code Online (Sandbox Code Playgroud)

每种方法的含义是什么?在任何情况下都有任何问题吗?

奖金#1:在#1和#2中调用方法的正式方法是什么?它们都被称为"按参考"吗?

奖金#2:故意使用std :: wstring.在每种情况下,对标准库类有什么影响?

c++ argument-passing

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

C++中的声明式编程

我经常面临将一个 API 的参数空间映射到另一个 API 的参数空间的问题。我经常看到这个问题是通过嵌套嵌套的... switch 语句解决的。

我想知道是否会碰巧有一个库或一种技术可以让您“声明”映射而不是“编程”它。

一个简单的例子包括将两个枚举的值合并为一个:

namespace sourceAPI {
  struct A { typedef e { A1, A2, A3 } };
  struct B { typedef e { B1, B2 } };
}

namespace targetAPI {
  struct AB { typedef e { A1B1, A1B2, A2B1, A2B2, A3B1, A3B2 } };
}
Run Code Online (Sandbox Code Playgroud)

其中映射通常是这样完成的

switch( a ){
  case( A::A1 ): switch( b ) {
     case( B::B1 ): return A1B1;
     case( B::B2 ): return A1B2;
     ....
}
Run Code Online (Sandbox Code Playgroud)

而且这个映射仍然需要一个“反向”开关。

但我更喜欢“密集”的东西

declare( source( A::A1, …
Run Code Online (Sandbox Code Playgroud)

c++ frameworks declarative

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

指定要模拟的通用接口的类

我正试图用Mockito捕捉一个论点.这个论点属于类型List< MyClass >.但我找不到正确的语法来指定它.

可以这样做:

ArgumentCaptor< MyClass > captor = 
   ArgumentCaptor.forClass( MyClass.class );
Run Code Online (Sandbox Code Playgroud)

但我没有得到这个编译:

ArgumentCaptor< List<MyClass> > captor = 
   ArgumentCaptor.forClass( List<MyClass>.class );
Run Code Online (Sandbox Code Playgroud)

有办法吗?

java generics mocking mockito

5
推荐指数
2
解决办法
6513
查看次数

boost program_options:帮助与有意义的选项

有没有一种简单的方法可以将帮助选项与"真正的"程序选项分开?事实上,是否可以定义选项的层次结构,即BNF:

options := help_options | program_options
help_options := '-h'
program_options := '-m1' mode1options | '-m2' mode2options
mode1options := number
...
Run Code Online (Sandbox Code Playgroud)

或者有更好的方法来实现这一目标吗?我应该恢复精神吗?

c++ boost command-line-arguments boost-program-options

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

istream抽取操作符:如何检测解析失败?

如何检测istream提取是否失败?

string s("x");
stringstream ss(s);
int i;
ss >> std::ios::hex >> i;
Run Code Online (Sandbox Code Playgroud)

编辑 - 虽然问题标题涵盖了这一点,但我忘了提到身体:我真的想要检测失败是由于错误的格式化,即解析,还是由于任何其他与IO相关的问题,以便提供正确的反馈(malformed_exception("x")或其他).

c++ parsing istream

5
推荐指数
2
解决办法
5456
查看次数

java xml document.getTextContent()保持为空

我正在尝试在JUnit测试中构建一个xml文档.

doc=docBuilder.newDocument();   
Element root = doc.createElement("Settings");
doc.appendChild(root);          
Element label0 = doc.createElement("label_0");
root.appendChild(label0);
String s=doc.getTextContent();
System.out.println(s);
Run Code Online (Sandbox Code Playgroud)

然而,文件保持空白(即println收益率)null.我不知道为什么会这样.实际问题是后续的XPath表达式会引发错误:Unable to evaluate expression using this context.

java xml xmldom

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