template struct integral_constant { static constexpr _Tp value = __v; typedef _Tp value_type; typedef integral_constant<_Tp, __v> type; }; template constexpr _Tp integral_constant<_Tp, __v>::value; typedef integral_constant false_type; template struct Alien { }; template bool operator==(const Alien<_T1>& __x, const Alien<_T1>& __y); template struct duration; template struct __duration_cast_impl { }; template long Frob (const duration<_Rep>& __d) { typedef __duration_cast_impl __dc; return 0; } template struct duration { public: constexpr duration() = default; duration (const duration& __d) { Frob (__d); } }; template struct __atomic_semaphore { template bool _M_try_acquire_for (const duration<_Rep>& __rtime) noexcept; void _M_release() noexcept; }; template class counting_semaphore { __atomic_semaphore _M_sem; public: explicit counting_semaphore() noexcept; void release() noexcept (noexcept (_M_sem._M_release ())); }; class stop_token { public: counting_semaphore<1> _M_done; }; bool operator==(const stop_token& __a, const stop_token& __b);