मानकों कागज P0092R1, हावर्ड Hinnant में लिखा है:यह कोड कैसे समेकित हो सकता है? (Std :: chrono)
template <class To, class Rep, class Period,
class = enable_if_t<detail::is_duration<To>{}>>
constexpr
To floor(const duration<Rep, Period>& d)
{
To t = duration_cast<To>(d);
if (t > d)
--t;
return t;
}
कैसे इस कोड को काम कर सकते हैं? समस्या यह है कि operator--
std::chrono::duration
पर एक कॉन्स्टेक्स ऑपरेशन नहीं है। यह रूप में परिभाषित किया गया है:
duration& operator--();
और फिर भी इस कोड को संकलित करता है, और संकलन समय पर सही जवाब देता है:
static_assert(floor<hours>(minutes{3}).count() == 0, "”);
कि के साथ क्या है?
हावर्ड के पेपर का मूल संस्करण (पी 0) एफडब्ल्यूआईडब्ल्यू यहां उपलब्ध है: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0092r0.html –