小编dwo*_*dgb的帖子

C++左值,右值,引用,参数和性能

所以我有一个函数需要将std :: vector作为参数.我想知道声明参数的最佳方法,以便底层数组不会被深度复制,因为它可能相当大.

// which should I choose?
void myFunc(std::vector<char>); // 1
void myFunc(std::vector<char>&); // 2
void myFunc(std::vector<char>&&);  // 3
void myFunc(std::vector<char>*) // 4
Run Code Online (Sandbox Code Playgroud)

我该选哪个?另外,我不会修改函数中的向量,所以不应该添加const?我应该重载该功能并将它们组合在一起吗?

c++ parameters rvalue lvalue c++11

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

Nightwatch.js异步Selenium操作

假设我有一个Nightwatch测试,其中有两个步骤可以填写表格.作为第一步的一部分,我需要动态查询页面中的一些数据(使用Selenium api),然后使用该数据进行额外的selenium调用,并使用最终结果进行自定义断言.我需要使用Selenium api的原因并不是我不知道如何使用普通的Nightwatch断言,而是正常的断言不足以测试我想要测试的事物的类型.此外,在第一步结束时,单击一个按钮,该按钮将移动到表单的下一部分(为第二步准备).

(代码版):

module.exports = {
  'Part 1': (client) => {

    // ... do cool stuff

    client.SOME_SELENIUM_COMMAND(...SOME_ARGS..., (result) => {

      client.SOME_OTHER_SELENIUM_COMMAND(...SOME_OTHER_ARGS..., (result2) => {
        // ... do more cool stuff with result2
      });
    });

    // moves the page onto part 2
    client.click(SOME_BUTTON);
  },

  'Part 2': (client) => {
    // ... part 2 stuff
  }
};
Run Code Online (Sandbox Code Playgroud)

我的问题是:在selenium命令结果部分解析之前,测试将移至第二部分.

我知道内部Nightwatch使用某种事件队列和EventEmitters来确保命令以正确的顺序执行,但是看起来第一部分末尾的click命令正在排队,之后回调中的命令可以是.

nightwatch.js

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

标签 统计

c++ ×1

c++11 ×1

lvalue ×1

nightwatch.js ×1

parameters ×1

rvalue ×1