Why does std::numeric_limits::max() return 0?

后端 未结 2 1336
走了就别回头了
走了就别回头了 2021-02-07 04:49

I found an interesting gotcha with std::numeric_limits::max() returning 0. The answer is to use seconds::max() or std::numeric_lim

2条回答
  •  一个人的身影
    2021-02-07 05:22

    std::chrono::seconds itself is not a standard arithmetic type, thus std::numeric_limits is not specialized for it. So you just see some rather useless defaults.

    To query the range of the underlying type used to count the ticks (which, under gcc, is the 64 bit long int), use

    std::numeric_limits::max();
    

    instead.

提交回复
热议问题