| 1818 | namespace detail { |
| 1819 | template <typename E> |
| 1820 | [[noreturn]] TL_EXPECTED_11_CONSTEXPR void throw_exception(E &&e) { |
| 1821 | #ifdef TL_EXPECTED_EXCEPTIONS_ENABLED |
| 1822 | throw std::forward<E>(e); |
| 1823 | #else |
| 1824 | (void)e; |
| 1825 | #ifdef _MSC_VER |
| 1826 | __assume(0); |
| 1827 | #else |
| 1828 | __builtin_unreachable(); |
| 1829 | #endif |
| 1830 | #endif |
| 1831 | } |
| 1832 | |
| 1833 | #ifndef TL_TRAITS_MUTEX |
| 1834 | #define TL_TRAITS_MUTEX |