c++ - 全局声明 Boost ptime

标签 c++ boost posix

我正在尝试在全局范围内宣布 boost ptime。但是我遇到了以下问题:

在main函数之前声明:

static boost::posix_time::ptime start_time;

然后在主函数中我初始化:

boost::posix_time::ptime start_time(boost::posix_time::microsec_clock::universal_time());

然后在主函数之外的函数中,我尝试转换为字符串并打印,但得到“not-a-date-time”;

要么是全局变量没有被初始化,要么是作用域有问题? 感谢您的帮助。

最佳答案

您在 main 函数中定义了一个 local 变量,它隐藏了全局变量但与全局变量无关。

你不应该在 main 函数中定义变量,只分配给它:

start_time = boost::posix_time::microsec_clock::universal_time();

关于c++ - 全局声明 Boost ptime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39470851/

相关文章:

c++ - 先到先得 - 堆栈展开或返回值的复制

c++ - 具有使用可变参数模板的成员的类

c++ - 我可以从静态 const char* 数组定义以下宏 "unstringifying"吗?

python - 在共享的多平台 POSIX 环境中使用 C

c++ - 皮质 m3,stm32L1XX 位带

c++ - C++ 中自定义排序运算符的段错误

c++ - 使用 boost::geometry::within 编译错误

c++ - boost 进程间 Win32,x64

c++ - POSIX 条件变量和互斥量 "competition"

c - 如何在 POSIX 中以编程方式写入文件修改日期?