我怎样才能(使用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?
如何在构造函数的初始化列表中初始化共享指针?
我有这个:
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) 仅使用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日以毫秒为单位来表示已经经过的时间量?
我有一个具有此签名的函数:
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 ?
谢谢!
我有一些期望 EXPECT_CALL (...)
EXPECT_CALL(t1, foo()).Times(1);
Run Code Online (Sandbox Code Playgroud)
我想创造对面.我希望不会执行某个功能.
我应该使用什么方法?有点像EXPECT_NOT_CALL (...)?
我有一个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正确初始化?
我已经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 ”是否出现在控制台输出文本上...如果是这样,则构建应该是: 完成:失败!!!!!!!!
我怎样才能做到这一点?
我看过一些如何迭代思想嵌套对象的示例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) 我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) 我的OpenGL窗口是这样绘制的:
glClearColor(0.3f, 0.4f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
Run Code Online (Sandbox Code Playgroud)
我想用一个纹理来填充窗口.
有没有更简单的方法,而不是创建另一个VBO,EBO除了我已经用于我的三角形的那个?
因为有glClearColor填充背景..
c++ ×6
c++-chrono ×3
c++11 ×3
time ×2
arrays ×1
assert ×1
build-server ×1
constructor ×1
gmock ×1
googletest ×1
hudson ×1
jenkins ×1
json ×1
mocking ×1
opengl ×1
shared-ptr ×1
unit-testing ×1