- 主题:Re: 相同的代码在不同的vs版本下运行结果不同
【 在 miui 的大作中提到: 】
: 比如下面的代码,删除nDays之前的老日志,在vs2019和2022运行都没问题,但是在vs2015下,即使是nDays以内的文件,fileTime < nDaysAgo也成立,运行结果就是所有的日志都清除了
: #if defined(_MSC_VER)
: #if _MSC_VER == 1900
: ...................
为啥用试验库?
看看VS2015有没有SP补丁包, 就别说试验库了, 就是正常库出bug也不稀奇。
微软也不是神。
--
FROM 124.126.0.*
1 看一下时间
ftime = std::filesystem::last_write_time(p);
std::cout << std::format("File write time is {}\n", ftime);
2 新代码为什么要用vs2015编译?微软承诺 vs2015后二进制兼容,以前的库不要动,可以直接链接。新代码新工具,旧代码旧工具。叙叙升级。
【 在 miui 的大作中提到: 】
: 比如下面的代码,删除nDays之前的老日志,在vs2019和2022运行都没问题,但是在vs2015下,即使是nDays以内的文件,fileTime < nDaysAgo也成立,运行结果就是所有的日志都清除了
: #if defined(_MSC_VER)
: #if _MSC_VER == 1900
: ...................
--
FROM 36.40.140.*
【 在 miui 的大作中提到: 】
: 想在不同的编译环境用统一的代码
那把可相关的最新库代码单摘出来, 放自己工程里面就行了。
加个namespace, 就可以避免和系统库冲突。
一般独立性比较好的,也就几个文件。
--
FROM 124.126.0.*
码农对自己好点,不要用vs2015那么老的东西了吧
vs2019/vs2022估计是MS投入最大的dev工具了,定期发布新版本,勤快得很。
--
修改:z16166 FROM 114.241.228.*
FROM 114.241.228.*
可以用boost fs,然后换个namespace也就和std差不多
【 在 miui 的大作中提到: 】
: 想在不同的编译环境用统一的代码
: 【 在 poggy 的大作中提到: 】
: :
: ...................
--
FROM 123.119.25.*
估计是运行时库 有些微区别
c++最烦编译器实现不同了
【 在 miui 的大作中提到: 】
: 比如下面的代码,删除nDays之前的老日志,在vs2019和2022运行都没问题,但是在vs2015下,即使是nDays以内的文件,fileTime < nDaysAgo也成立,运行结果就是所有的日志都清除了
: #if defined(_MSC_VER)
: #if _MSC_VER == 1900
: ...................
--
FROM 223.104.41.*
希望楼主补一下debug过程,duration乘以标量应该是很早支持的操作,如果是不支持转成了标量,再乘标量就奇怪了。
【 在 miui 的大作中提到: 】
:
: 把
: fs::file_time_type nDaysAgo = currentTime - std::chrono::hours(24) * nDays;
: 改成
: fs::file_time_type nDaysAgo = currentTime - std::chrono::hours(24 * nDays);
#发自zSMTH-v-@OnePlus IN2010
--
FROM 223.104.41.*