首页 > 解决方案 > 来自 lambda 的结构中的 C++ 变量

问题描述

如何编译:

struct Features
{
   std::time_t endTime;
   std::time_t startTime =
   {
      std::time_t tmStart  = *gmtime(&startTime);
      tmStart.tm_hour      = 0;
      tmStart.tm_min       = 0;
      tmStart.tm_sec       = 0;
      startTime            = mktime(&tmStart) - _timezone;
   };
};

我喜欢做什么,我得到当前时间,重置“定时”值,只得到日期。

后来我喜欢从开始日期算到 + 7 天广告“结束”。

标签: c++time

解决方案


最终代码如下:#include

#define SEC_IN_DAY 86400

struct Features
{
   Features()
   {
      std::tm tmStart  = *std::gmtime(&startTime);
      tmStart.tm_hour      = 0;
      tmStart.tm_min       = 0;
      tmStart.tm_sec       = 0;
      int _timezone        = 1;
      startTime   = std::mktime(&tmStart) - _timezone;
      endTime     = startTime + SEC_IN_DAY; // Add +1 days after today day
   }

   std::time_t endTime;
   std::time_t startTime;
};

int main()
{
    Features f;
}

就像@marcinj 指出的那样,没有必要滥用语言,只需使用简单的构造函数来初始化值。

再次感谢您的帮助:)


推荐阅读