fre*_*ish 2 c++ timestamp constexpr c++14
我正在考虑使用当前时间戳作为一个版本.我想在编译时检索该信息.理想情况下,我想这样做:
constexpr long long currentTimestamp = getCurrentTimestamp();
Run Code Online (Sandbox Code Playgroud)
这可能与C++ 14有关吗?
使用__DATE__和__TIME__或__TIMESTAMP__:
#include <stdio.h>
int main()
{
printf("date: '%s'\n", __DATE__);
printf("time: '%s'\n", __TIME__);
printf("timestamp: '%s'\n", __TIMESTAMP__);
}
Run Code Online (Sandbox Code Playgroud)
输出:
date: 'May 5 2017'
time: '00:29:26'
timestamp: 'Fri May 5 00:29:26 2017'
Run Code Online (Sandbox Code Playgroud)
但是,您需要确保重新编译文件,原因很明显.
来自gcc在线文档:
__DATE__此宏扩展为一个字符串常量,该常量描述预处理器运行的日期.字符串常量包含11个字符,看起来像"1996年2月12日".如果当月的日期小于10,则在左侧填充空格.
__TIME__此宏扩展为一个字符串常量,该常量描述预处理器的运行时间.字符串常量包含八个字符,看起来像"23:59:01".
__TIMESTAMP__此宏扩展为一个字符串常量,该常量描述上次修改当前源文件的日期和时间.字符串常量包含星期,月,月中的缩写日,以hh:mm:ss形式,年份的时间,看起来像"Sun Sep 16 01:03:52 1973".如果当月的日期小于10,则在左侧填充空格.
注意,这__TIMESTAMP__不是标准的,有些编译器可能不支持它.
| 归档时间: |
|
| 查看次数: |
2275 次 |
| 最近记录: |