哪个库 - std::chrono::system_clock [关闭]
Posted
技术标签:
【中文标题】哪个库 - std::chrono::system_clock [关闭]【英文标题】:Which library - std::chrono::system_clock [closed] 【发布时间】:2019-08-16 12:59:26 【问题描述】:哪个 .dll 文件包含“std::chrono::system_clock”方法?
我在文档中找不到任何有用的信息。
编辑: 我想创建自己的函数版本,所以我想重建文件并在我自己的应用程序的导入表中替换它
【问题讨论】:
你是指哪个标题?您使用的是哪个文档?在您可以找到的标题中未提及的内容不应自称为“文档” 我认为它在msvcpNNN.dll
中(其中“NNN”是 VC++ 可再发行组件的版本号)。你到底为什么想知道呢?
@NikosC。我想创建自己的函数版本,所以我想重建文件并在我自己的应用程序的导入表中替换它
我认为您必须编辑 chrono 标头并重建您的 dll。对我来说,标题位于:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.21.27702\include
但是我可能落后了一些版本,因为我最近没有在家用笔记本电脑上使用过 VS。
这不会很好地工作。为什么要选择性地替换部分工具链的标准库实现?
【参考方案1】:
您只需发送电子邮件至#include <chrono>
。无需进一步部署。
【讨论】:
【参考方案2】:好吧,如果不知道您的实际目标(您说“了解规则”),就不可能告诉您实现目标的正确方法。我只能告诉你,不是这个。
如果可能的话,我只想这样做
对于一些可能的价值,也许吧。
这种类型的代码可能是在标头中定义的,而不是内置在运行时中。因此,您只需“需要”修改标题。但是,对于期望类型以某种方式显示的其余运行时呢?您刚刚在第一关就违反了单一定义规则。
不言而喻:
不要这样做。
当您修改标准库时,您的程序具有未定义的行为,即使您可以设法获得对实现内部的足够控制以使其在不崩溃和/或着火的情况下工作。
要“正确”执行此操作,您必须分叉并重建整个标准库实现,以使其内容保持一致。祝你好运。
相反,如果您想使用看起来像 std::chrono::system_clock
的类型(它不是“方法”或成员函数——它是一个类)但行为不同,然后在自己的命名空间中自己定义这样的类型。
多年来,人们在模拟实现功能时一直在这样做。您的单元测试框架应该附带一些文档,教您如何成功可靠地模拟功能。
【讨论】:
以上是关于哪个库 - std::chrono::system_clock [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
std::chrono::system_clock::now() 考虑操作系统配置的时区
如何找到纪元时间戳和 std::chrono::system_clock::now 之间的时间差(以毫秒为单位)
std::chrono::system_clock.now().time_since_epoch().count() 的值是不是单调增加?