草庐IT

c++ - 形成自定义 std::chrono::durations 和 std::ratio 的最佳方法是什么?

我正在阅读thisexcellentanswer使用滑稽的持续时间单位microfortnights以令人难忘的方式说明一个要点。typedefstd::ratiomicrofortnights;std::chrono::durationtwo_weeks(1000000);我想到了这个问题:IfIreallywantedtodothis(morelikelysomeothernon-trivialdurationsuchasthetimeavailableduringaframe,orduringNcyclesofaprocessor),whatisthebestwaytodothi

c++ - 符合标准的 C++ 实现如何表明它不知道当前日期和时间?

某些C++实现(例如,电池供电的嵌入式设备)可能没有用或无法跟踪当前日期和时间。C标准专门允许这样的实现。引用ISO/IEC9899:19997.23.2.4(重点是我的):Thetimefunctionreturnstheimplementation’sbestapproximationtothecurrentcalendartime.Thevalue(time_t)(-1)isreturnedifthecalendartimeisnotavailable.C++11引入了chrono库和std::chrono::system_clock::now()函数,用于从系统获取挂钟时间-宽

c++ - 符合标准的 C++ 实现如何表明它不知道当前日期和时间?

某些C++实现(例如,电池供电的嵌入式设备)可能没有用或无法跟踪当前日期和时间。C标准专门允许这样的实现。引用ISO/IEC9899:19997.23.2.4(重点是我的):Thetimefunctionreturnstheimplementation’sbestapproximationtothecurrentcalendartime.Thevalue(time_t)(-1)isreturnedifthecalendartimeisnotavailable.C++11引入了chrono库和std::chrono::system_clock::now()函数,用于从系统获取挂钟时间-宽

c++ - Boost.Chrono 与 Boost.Date_Time

在Boost1.47版中,引入了Chrono库。Boost.Chrono是否意味着替代Boost.Date_Time?如果不是,它们之间有什么区别,我应该什么时候使用?我应该何时考虑在现有项目中将Boost.Date_Time替换为Boost.Chrono? 最佳答案 来自Boost.Chrono的documentation:Boost.ChronoaimstoimplementthenewtimefacilitiesinC++0x,asproposedinN2661-AFoundationtoSleepOn.Thatdocumen

c++ - Boost.Chrono 与 Boost.Date_Time

在Boost1.47版中,引入了Chrono库。Boost.Chrono是否意味着替代Boost.Date_Time?如果不是,它们之间有什么区别,我应该什么时候使用?我应该何时考虑在现有项目中将Boost.Date_Time替换为Boost.Chrono? 最佳答案 来自Boost.Chrono的documentation:Boost.ChronoaimstoimplementthenewtimefacilitiesinC++0x,asproposedinN2661-AFoundationtoSleepOn.Thatdocumen

C++11 线程等待行为:std::this_thread::yield() 与 std::this_thread::sleep_for( std::chrono::milliseconds(1) )

我在编写Microsoft特定的C++代码时被告知要编写Sleep(1)在自旋锁定方面比Sleep(0)好得多,因为Sleep(0)将使用更多的CPU时间,而且,它只有在有另一个同等优先级线程等待运行。但是,对于C++11线程库,没有太多关于std::this_thread::yield()效果的文档(至少我能够找到)vs.std::this_thread::sleep_for(std::chrono::milliseconds(1));第二个肯定更冗长,但它们对于自旋锁是否同样有效,或者它是否受到影响Sleep(0)与Sleep(1)?一个示例循环,其中std::this_threa

C++11 线程等待行为:std::this_thread::yield() 与 std::this_thread::sleep_for( std::chrono::milliseconds(1) )

我在编写Microsoft特定的C++代码时被告知要编写Sleep(1)在自旋锁定方面比Sleep(0)好得多,因为Sleep(0)将使用更多的CPU时间,而且,它只有在有另一个同等优先级线程等待运行。但是,对于C++11线程库,没有太多关于std::this_thread::yield()效果的文档(至少我能够找到)vs.std::this_thread::sleep_for(std::chrono::milliseconds(1));第二个肯定更冗长,但它们对于自旋锁是否同样有效,或者它是否受到影响Sleep(0)与Sleep(1)?一个示例循环,其中std::this_threa

c++ - 64 位平台上的效率 : pointer vs 32-bit array indexing

在他的一个主题演讲中,AndreiAlexandrescu建议,在64位平台上,使用32位数组索引比使用原始指针更快:第16页:http://www.slideshare.net/andreialexandrescu1/three-optimization-tips-for-c-15708507在他的Facebook帐户上,他更准确地说:“更喜欢数组索引而不是指针(这个似乎每十年反转一次)。”。我已经尝试了很多方法来寻找差异,但我还没有设法构建任何显示这种差异的程序。了解Andrei,我不会对差异不超过几个百分点感到惊讶,但如果有人找到这样的例子,我会很高兴。这是我做的一个测试。我选择

c++ - 64 位平台上的效率 : pointer vs 32-bit array indexing

在他的一个主题演讲中,AndreiAlexandrescu建议,在64位平台上,使用32位数组索引比使用原始指针更快:第16页:http://www.slideshare.net/andreialexandrescu1/three-optimization-tips-for-c-15708507在他的Facebook帐户上,他更准确地说:“更喜欢数组索引而不是指针(这个似乎每十年反转一次)。”。我已经尝试了很多方法来寻找差异,但我还没有设法构建任何显示这种差异的程序。了解Andrei,我不会对差异不超过几个百分点感到惊讶,但如果有人找到这样的例子,我会很高兴。这是我做的一个测试。我选择

c++ - 如何将日期字符串解析为 c++11 std::chrono time_point 或类似的?

考虑格式的历史日期字符串:ThuJan912:35:342014我想将这样的字符串解析为某种C++日期表示,然后计算从那时起耗时量。从生成的持续时间中,我需要访问秒数、分钟数、小时数和天数。这可以用新的C++11std::chrono命名空间来完成吗?如果没有,我今天应该怎么做?我使用的是g++-4.8.1,但大概答案应该只针对C++11规范。 最佳答案 std::tmtm={};std::stringstreamss("Jan9201412:35:34");ss>>std::get_time(&tm,"%b%d%Y%H:%M:%S