使用Howard Hinnant的date.h标头时,为什么Visual Studio 2017会显示错误的“ day_point”:未声明的标识符?

时间:2019-09-06 06:29:02

标签: c++

问题是我每次尝试使用day_point时都会引起的错误,该错误是所示与Howard Hinnant的date.h头文件一起使用的命令之一。头文件保存在正确的位置,并且到目前为止已与所有其他命令一起使用。该代码基本上是从演示文稿中复制的,因此问题可能不在于代码本身。

我试图将date.h文件重新复制到与c ++源文件相同的文件夹中。而且我尝试打开一个新项目并在其中运行代码。两者都不起作用。未声明的标识符是唯一的错误,除了无法识别dp变量

#include"date.h"
#include<iostream>
#include<chrono>

int main(){
day_point dp = floor<days>(system_clock::now());
cout << "dp = " << dp << endl;
}

2 个答案:

答案 0 :(得分:3)

我想您正在使用一个旧示例。天由类型date::sys_days表示。请参阅https://howardhinnant.github.io/date/date.html上的当前文档。

如果您使用auto,则甚至不需要命名类型。

文档的相关部分是

  

示例:今天

     

要获取今天的sys_days,请使用system_clock :: now()和floor将time_point转换为sys_days:

auto today = floor<days>(system_clock::now());

答案 1 :(得分:2)

header似乎没有声明这种类型。我在Alan的帖子中引用了文档。