小编waa*_*919的帖子

Chrono - 两个时间点之间的差异,以毫秒为单位?

我怎样才能(使用std :: chrono库)得到两个时间点之间的差异,以毫秒为单位?

我可以用这个来做到这一点:

std::chrono::time_point<std::chrono::system_clock> now = std::chrono::system_clock::now();

std::chrono::time_point<std::chrono::system_clock> foo = now + std::chrono::milliseconds(100);

std::chrono::duration<float> difference = foo - now;

const int milliseconds = difference.count() * 1000;
Run Code Online (Sandbox Code Playgroud)

我怎样才能在毫秒内得到这个时间,所以我可以将持续时间用作unsigned int,而不是float,然后乘以1000?

c++ time c++11 c++-chrono

15
推荐指数
3
解决办法
3万
查看次数

如何在构造函数的初始化列表中初始化共享指针?

如何在构造函数的初始化列表中初始化共享指针?

我有这个:

Foo::Foo (const callback &cb)
{
    Bar bar;
    bar.m_callback = cb;
    m_ptr = std::make_shared<Bar>(bar);

    //...
}
Run Code Online (Sandbox Code Playgroud)

我想把它放到构造函数的初始化列表中.就像是:

Foo::Foo (const callback &cb) :
   m_ptr(std::make_shared<Bar>(?????))
{
  // ...
}
Run Code Online (Sandbox Code Playgroud)

酒吧是struct:

struct Bar
{
  callback_type m_callback;
  // etc.
};
Run Code Online (Sandbox Code Playgroud)

c++ constructor shared-ptr c++11

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

如何将毫秒添加到自纪元以来的持续时间?

仅使用std::chrono库,我有一个 type 变量unsigned long,表示从 1970 年 1 月 1 日到现在的毫秒数,我想向它添加 100 毫秒。

unsigned long now = std::chrono::system_clock::now().time_since_epoch().count();
unsigned long t100ms = std::chrono::milliseconds(100).count();
unsigned long time = now + t100ms;
Run Code Online (Sandbox Code Playgroud)

打印时t100ms,我得到“ 1000”。

如果我打印std::chrono::system_clock::nowevery second的值,我会看到每次迭代时递增的数字不会增加 1000(因为 1 秒等于 1000 毫秒,应该是这种情况)。

难道std::chrono::system_clock::now().time_since_epoch()不返回自1970年1月1日以毫秒为单位来表示已经经过的时间量?

c++ time c++-chrono

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

C++11 Chrono - 如何将 'unsigned int' 转换为 time_point&lt;system_clock&gt;?

我有一个具有此签名的函数:

void checkTime (const std::chrono::time_point<std::chrono::system_clock> &time)
{
   //do stuff...
}
Run Code Online (Sandbox Code Playgroud)

我需要这样调用上面的函数:

void wait_some_time (unsigned int ms)
{
    //do stuff...
    checkTime(ms); //ERROR: How can I cast unsigned int to a time_point<system_clock> as now() + some milliseconds?
    //do more stuff...
}
Run Code Online (Sandbox Code Playgroud)

我想这样使用:

wait_some_time(200); //wait now + 200ms 
Run Code Online (Sandbox Code Playgroud)

问题:

如何将 'unsigned int' 转换为具有毫秒值的 const std::chrono::time_point ?

谢谢!

c++11 c++-chrono

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

EXPECT_CALL的对话是什么?

我有一些期望 EXPECT_CALL (...)

EXPECT_CALL(t1, foo()).Times(1);
Run Code Online (Sandbox Code Playgroud)

我想创造对面.我希望不会执行某个功能.

我应该使用什么方法?有点像EXPECT_NOT_CALL (...)

unit-testing assert mocking googletest gmock

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

初始化初始化列表中的对象

我有一个class Foo我需要初始化对另一个类的引用的地方,但首先我需要从另一个类获得一些引用接口.

这只是一个虚拟代码,可以更好地解释我的两个问题:

class Foo
{
public:
  Foo();
  ~Foo();
private:
  int m_number;
  OtherClass& m_foo;
};

Foo::Foo() :
  m_number(10)
{
  // I really need to do this get's
  Class1& c1 = Singleton::getC1();
  Class2& c2 = c1.getC2();
  Class3& c3 = c2.getC3();

  //How can I put the m_foo initialization in the initialization list?
  m_foo(c3);
}
Run Code Online (Sandbox Code Playgroud)

问题是:

1 -在初始化我的成员之前,我需要检索上面的所有引用m_foo.但我想初始化m_foo初始化列表.如果没有一条线,那么最好的方法是什么.有什么办法吗?

2 -通过上面的代码,我得到错误:

error: uninitialized reference member 'OtherClass::m_foo' [-fpermissive]
Run Code Online (Sandbox Code Playgroud)

因为我正在初始化括号,因为它将在初始化列表中完成.我怎样才能m_foo正确初始化?

c++

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

如何检查控制台输出中的特定字符串并在构建时引发错误?

我已经Hudson配置了构建项目。

构建后控制台输出如下:

Compiling ./main.py ...
Sorry: IndentationError: ('expected an indented block', ('./main.py', 8, 6, 'thread.start_new_thread( foo.FooThread, () )\n'))
Compiling ./udpReceiver.py ...
<<<<< build finished!
POST BUILD TASK : SUCCESS
END OF POST BUILD TASK : 0

Deleting project workspace... 
done

Finished: SUCCESS
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我有一个缩进错误......并Hudson表示构建作业已成功完成。

我想要的是这样的:

检查字符串“ IndentationError ”是否出现在控制台输出文本上...如果是这样,则构建应该是: 完成:失败!!!!!!!!

我怎样才能做到这一点?

hudson compiler-errors build-server jenkins

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

C++ Poco - 如何迭代 JSON 数组?

我看过一些如何迭代思想嵌套对象的示例JSON,例如:

 "{ \"test\" : { \"property\" : \"value\" } }"
Run Code Online (Sandbox Code Playgroud)

但现在我需要迭代一个JSON数组(下面的子数组 array):

"{ \"name\" : \"Franky\", \"children\" : [ \"Jonas\", \"Ellen\" ] }"
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现这个目标?

我在任何地方都看不到示例,甚至在POCO文档中都看不到。

我有下面的示例,但无法获取Children数组。

Poco::Dynamic::Var test = object->get("children");

Poco::JSON::Array::Ptr subObject = test.extract<Poco::JSON::Array::Ptr>();

for (it = subObject->begin(); it != subObject->end(); it++) // how to iterate here?
{
    std::cout << "my children:" << it->first << "\n";
}
Run Code Online (Sandbox Code Playgroud)

c++ arrays poco-libraries

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

C++ POCO - 如何美化 JSON?

JSON使用这样的POCO库生成一个文件:

void writeToFile()
{
    Poco::JSON::Object::Ptr json = new Poco::JSON::Object;
    json->set("name", "foo");
    json->set("address", "bar");

    std::ostringstream oss;
    Poco::JSON::Stringifier::stringify(json, oss);
    std::ofstream ofs("output.json");
    if (ofs.is_open() == true)
    {
        ofs << oss.str();
        ofs.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

其中output.json包含:

{"name":"foo","address":"bar"}
Run Code Online (Sandbox Code Playgroud)

有什么办法POCO可以美化一个JSON

所以输出会是这样的:

{
    "name" : "foo",
    "address" : "bar"
}
Run Code Online (Sandbox Code Playgroud)

c++ json poco-libraries

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

OpenGL - 是否有更简单的方法用纹理填充窗口,而不是使用VBO等?

我的OpenGL窗口是这样绘制的:

glClearColor(0.3f, 0.4f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
Run Code Online (Sandbox Code Playgroud)

我想用一个纹理来填充窗口.

有没有更简单的方法,而不是创建另一个VBO,EBO除了我已经用于我的三角形的那个?

因为有glClearColor填充背景..

opengl

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