首页 > 解决方案 > 为什么错误:“locate_zone”不是“std::chrono”的成员

问题描述

代码:

//test.cpp
#include<chrono>
#include<string>
using namespace std;
int main(){
  string str("Europe/Oslo");
  std::chrono::locate_zone(str);
}

编译:

/tools/gcc/6.3.0/bin/g++ --std=c++11 test.cpp

输出:

test.cpp: In function ‘int main()’:

test.cpp:6:3: 错误:'locate_zone' 不是'std::chrono' std::chrono::locate_zone(str) 的成员;^~~

标签: c++c++11

解决方案


您现在可以通过使用Howard Hinnant 的免费、开源、时区库来试验这个 C++20 功能。

您需要将命名空间从更改std::chronodate

#include "date/tz.h"
#include<chrono>
#include<string>
using namespace std;
int main(){
  string str("Europe/Oslo");
  date::locate_zone(str);
}

需要一些安装。

有帮助。


推荐阅读