很多C ++程序都是用time()
函数编写的,但是你可能知道,这在2038年之后不会起作用,因为它会返回一个负整数。它会导致很多程序完全无法使用,所以我只是想知道,解决方案是什么,有人担心这个吗?现在有没有替代品呢?
另外,你认为这会成为一个主要问题还是不值得担心?
答案 0 :(得分:2)
一个问题是可以回答的:
现在有没有其他选择?
是的,自从C ++ 11以来,std::chrono
库提供了大约500年来被指定的时间类型。由于它们被很好地封装,所以扩展它们的范围应该不会太难,如果有什么可识别的,那么C ++仍然在使用。
在大多数现代平台上,time_t
有64位,因此即使使用该问题,如果您始终将结果分配给time_t
变量,而不是int
,也可以避免此问题或者其他什么。
其他问题纯粹是推测性的。我怀疑问题与Y2K类似 - 大多数程序已经做了正确的事情;其他人很容易改变;开发人员退休后很久就会出现一些古老的系统,编译器停止运行,源代码丢失了。
答案 1 :(得分:1)