Created
July 11, 2021 14:15
-
-
Save kripken/a557a324095a96f3bc87f19bd3ed648f to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 1 "tests/core/test_atomic_cxx.cpp" | |
# 1 "<built-in>" 1 | |
# 1 "<built-in>" 3 | |
# 355 "<built-in>" 3 | |
# 1 "<command line>" 1 | |
# 1 "<built-in>" 2 | |
# 1 "tests/core/test_atomic_cxx.cpp" 2 | |
# 13 "tests/core/test_atomic_cxx.cpp" | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/atomic" 1 3 | |
# 577 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/atomic" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 24 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 3 | |
# 784 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 3 | |
namespace std { inline namespace __2 { } } | |
# 578 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/atomic" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__availability" 1 3 | |
# 13 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__availability" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 14 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__availability" 2 3 | |
# 17 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__availability" 3 | |
# 579 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/atomic" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__threading_support" 1 3 | |
# 13 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__threading_support" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 14 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__threading_support" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/chrono" 1 3 | |
# 826 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/chrono" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 827 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/chrono" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/ctime" 1 3 | |
# 48 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/ctime" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 49 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/ctime" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/compat/time.h" 1 3 | |
extern "C" { | |
int dysize(int year); | |
} | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/time.h" 1 3 | |
extern "C" { | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/features.h" 1 3 | |
# 9 "/home/azakai/Dev/emscripten/cache/sysroot/include/time.h" 2 3 | |
# 31 "/home/azakai/Dev/emscripten/cache/sysroot/include/time.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 1 3 | |
# 75 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef long time_t; | |
# 128 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef unsigned long int size_t; | |
# 276 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef void * timer_t; | |
typedef int clockid_t; | |
typedef long clock_t; | |
# 301 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
struct timespec { time_t tv_sec; long tv_nsec; }; | |
typedef int pid_t; | |
# 399 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef struct __locale_struct * locale_t; | |
# 32 "/home/azakai/Dev/emscripten/cache/sysroot/include/time.h" 2 3 | |
struct tm { | |
int tm_sec; | |
int tm_min; | |
int tm_hour; | |
int tm_mday; | |
int tm_mon; | |
int tm_year; | |
int tm_wday; | |
int tm_yday; | |
int tm_isdst; | |
long tm_gmtoff; | |
const char *tm_zone; | |
}; | |
clock_t clock (void); | |
time_t time (time_t *); | |
double difftime (time_t, time_t); | |
time_t mktime (struct tm *); | |
size_t strftime (char *__restrict, size_t, const char *__restrict, const struct tm *__restrict); | |
struct tm *gmtime (const time_t *); | |
struct tm *localtime (const time_t *); | |
char *asctime (const struct tm *); | |
char *ctime (const time_t *); | |
int timespec_get(struct timespec *, int); | |
# 71 "/home/azakai/Dev/emscripten/cache/sysroot/include/time.h" 3 | |
size_t strftime_l (char * __restrict, size_t, const char * __restrict, const struct tm * __restrict, locale_t); | |
struct tm *gmtime_r (const time_t *__restrict, struct tm *__restrict); | |
struct tm *localtime_r (const time_t *__restrict, struct tm *__restrict); | |
char *asctime_r (const struct tm *__restrict, char *__restrict); | |
char *ctime_r (const time_t *, char *); | |
void tzset (void); | |
struct itimerspec { | |
struct timespec it_interval; | |
struct timespec it_value; | |
}; | |
# 100 "/home/azakai/Dev/emscripten/cache/sysroot/include/time.h" 3 | |
int nanosleep (const struct timespec *, struct timespec *); | |
int clock_getres (clockid_t, struct timespec *); | |
int clock_gettime (clockid_t, struct timespec *); | |
int clock_settime (clockid_t, const struct timespec *); | |
int clock_nanosleep (clockid_t, int, const struct timespec *, struct timespec *); | |
int clock_getcpuclockid (pid_t, clockid_t *); | |
struct sigevent; | |
int timer_create (clockid_t, struct sigevent *__restrict, timer_t *__restrict); | |
int timer_delete (timer_t); | |
int timer_settime (timer_t, int, const struct itimerspec *__restrict, struct itimerspec *__restrict); | |
int timer_gettime (timer_t, struct itimerspec *); | |
int timer_getoverrun (timer_t); | |
char *strptime (const char *__restrict, const char *__restrict, struct tm *__restrict); | |
extern int daylight; | |
extern long timezone; | |
extern char *tzname[2]; | |
extern int getdate_err; | |
struct tm *getdate (const char *); | |
int stime(const time_t *); | |
time_t timegm(struct tm *); | |
} | |
# 17 "/home/azakai/Dev/emscripten/cache/sysroot/include/compat/time.h" 2 3 | |
# 50 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/ctime" 2 3 | |
# 53 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/ctime" 3 | |
# 69 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/ctime" 3 | |
namespace std { inline namespace __2 { | |
using ::clock_t; | |
using ::size_t; | |
using ::time_t; | |
using ::tm; | |
using ::clock; | |
using ::difftime; | |
using ::mktime; | |
using ::time; | |
using ::asctime; | |
using ::ctime; | |
using ::gmtime; | |
using ::localtime; | |
using ::strftime; | |
} } | |
# 829 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/chrono" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 1 3 | |
# 419 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 420 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstddef" 1 3 | |
# 36 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstddef" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 37 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstddef" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/version" 1 3 | |
# 166 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/version" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 167 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/version" 2 3 | |
# 170 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/version" 3 | |
# 38 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstddef" 2 3 | |
# 41 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstddef" 3 | |
# 1 "/home/azakai/Dev/llvm-project/build/lib/clang/13.0.0/include/stddef.h" 1 3 | |
# 35 "/home/azakai/Dev/llvm-project/build/lib/clang/13.0.0/include/stddef.h" 3 | |
typedef long int ptrdiff_t; | |
# 46 "/home/azakai/Dev/llvm-project/build/lib/clang/13.0.0/include/stddef.h" 3 | |
typedef long unsigned int size_t; | |
# 102 "/home/azakai/Dev/llvm-project/build/lib/clang/13.0.0/include/stddef.h" 3 | |
# 1 "/home/azakai/Dev/llvm-project/build/lib/clang/13.0.0/include/__stddef_max_align_t.h" 1 3 | |
# 19 "/home/azakai/Dev/llvm-project/build/lib/clang/13.0.0/include/__stddef_max_align_t.h" 3 | |
typedef struct { | |
long long __clang_max_align_nonce1 | |
__attribute__((__aligned__(__alignof__(long long)))); | |
long double __clang_max_align_nonce2 | |
__attribute__((__aligned__(__alignof__(long double)))); | |
} max_align_t; | |
# 103 "/home/azakai/Dev/llvm-project/build/lib/clang/13.0.0/include/stddef.h" 2 3 | |
# 45 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstddef" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__nullptr" 1 3 | |
# 13 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__nullptr" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 14 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__nullptr" 2 3 | |
# 17 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__nullptr" 3 | |
# 54 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__nullptr" 3 | |
namespace std | |
{ | |
typedef decltype(nullptr) nullptr_t; | |
} | |
# 46 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstddef" 2 3 | |
namespace std { inline namespace __2 { | |
using ::ptrdiff_t; | |
using ::size_t; | |
using ::max_align_t; | |
template <class _Tp> struct __libcpp_is_integral { enum { value = 0 }; }; | |
template <> struct __libcpp_is_integral<bool> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<char> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<signed char> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<unsigned char> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<wchar_t> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<char16_t> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<char32_t> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<short> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<unsigned short> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<int> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<unsigned int> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<long> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<unsigned long> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<long long> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<unsigned long long> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<__int128_t> { enum { value = 1 }; }; | |
template <> struct __libcpp_is_integral<__uint128_t> { enum { value = 1 }; }; | |
} } | |
# 421 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 2 3 | |
# 425 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
namespace std { inline namespace __2 { | |
template <class _T1, class _T2> struct __attribute__ ((__type_visibility__("default"))) pair; | |
template <class _Tp> class __attribute__ ((__type_visibility__("default"))) reference_wrapper; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) hash; | |
template <class _Tp, _Tp __v> | |
struct __attribute__ ((__type_visibility__("default"))) integral_constant | |
{ | |
static constexpr const _Tp value = __v; | |
typedef _Tp value_type; | |
typedef integral_constant type; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr operator value_type() const noexcept {return value;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr value_type operator ()() const noexcept {return value;} | |
}; | |
template <class _Tp, _Tp __v> | |
constexpr const _Tp integral_constant<_Tp, __v>::value; | |
# 458 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
typedef integral_constant<bool,(true)> true_type; | |
typedef integral_constant<bool,(false)> false_type; | |
template <bool _Val> | |
using _BoolConstant __attribute__((nodebug)) = integral_constant<bool, _Val>; | |
template <bool> struct _MetaBase; | |
template <> | |
struct _MetaBase<true> { | |
template <class _Tp, class _Up> | |
using _SelectImpl __attribute__((nodebug)) = _Tp; | |
template <template <class...> class _FirstFn, template <class...> class, class ..._Args> | |
using _SelectApplyImpl __attribute__((nodebug)) = _FirstFn<_Args...>; | |
template <class _First, class...> | |
using _FirstImpl __attribute__((nodebug)) = _First; | |
template <class, class _Second, class...> | |
using _SecondImpl __attribute__((nodebug)) = _Second; | |
template <class _Tp = void> | |
using _EnableIfImpl __attribute__((nodebug)) = _Tp; | |
template <class _Result, class _First, class ..._Rest> | |
using _OrImpl __attribute__((nodebug)) = typename _MetaBase<_First::value != true && sizeof...(_Rest) != 0>::template _OrImpl<_First, _Rest...>; | |
template <class _Result, class _First, class ..._Rest> | |
using _AndImpl __attribute__((nodebug)) = typename _MetaBase<_First::value == true && sizeof...(_Rest) != 0>::template _AndImpl<_First, _Rest...>; | |
}; | |
template <> | |
struct _MetaBase<false> { | |
template <class _Tp, class _Up> | |
using _SelectImpl __attribute__((nodebug)) = _Up; | |
template <template <class...> class, template <class...> class _SecondFn, class ..._Args> | |
using _SelectApplyImpl __attribute__((nodebug)) = _SecondFn<_Args...>; | |
template <class _Result, class ...> | |
using _OrImpl __attribute__((nodebug)) = _Result; | |
template <class _Result, class ...> | |
using _AndImpl __attribute__((nodebug)) = _Result; | |
}; | |
template <bool _Cond, class _Ret = void> | |
using _EnableIf __attribute__((nodebug)) = typename _MetaBase<_Cond>::template _EnableIfImpl<_Ret>; | |
template <bool _Cond, class _IfRes, class _ElseRes> | |
using _If __attribute__((nodebug)) = typename _MetaBase<_Cond>::template _SelectImpl<_IfRes, _ElseRes>; | |
template <class ..._Rest> | |
using _Or __attribute__((nodebug)) = typename _MetaBase< sizeof...(_Rest) != 0 >::template _OrImpl<false_type, _Rest...>; | |
template <class ..._Rest> | |
using _And __attribute__((nodebug)) = typename _MetaBase< sizeof...(_Rest) != 0 >::template _AndImpl<true_type, _Rest...>; | |
template <class _Pred> | |
struct _Not : _BoolConstant<!_Pred::value> {}; | |
template <class ..._Args> | |
using _FirstType __attribute__((nodebug)) = typename _MetaBase<(sizeof...(_Args) >= 1)>::template _FirstImpl<_Args...>; | |
template <class ..._Args> | |
using _SecondType __attribute__((nodebug)) = typename _MetaBase<(sizeof...(_Args) >= 2)>::template _SecondImpl<_Args...>; | |
template <template <class...> class _Func, class ..._Args> | |
struct _Lazy : _Func<_Args...> {}; | |
template <template <class...> class _Templ, class ..._Args, class = _Templ<_Args...> > | |
true_type __sfinae_test_impl(int); | |
template <template <class...> class, class ...> | |
false_type __sfinae_test_impl(...); | |
template <template <class ...> class _Templ, class ..._Args> | |
using _IsValidExpansion __attribute__((nodebug)) = decltype(__sfinae_test_impl<_Templ, _Args...>(0)); | |
template <class> | |
struct __void_t { typedef void type; }; | |
template <class _Tp> | |
struct __identity { typedef _Tp type; }; | |
template <class _Tp, bool> | |
struct __attribute__ ((__type_visibility__("default"))) __dependent_type : public _Tp {}; | |
template <bool _Bp, class _If, class _Then> | |
struct __attribute__ ((__type_visibility__("default"))) conditional {typedef _If type;}; | |
template <class _If, class _Then> | |
struct __attribute__ ((__type_visibility__("default"))) conditional<false, _If, _Then> {typedef _Then type;}; | |
template <bool _Bp, class _If, class _Then> using conditional_t = typename conditional<_Bp, _If, _Then>::type; | |
template <bool, class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) enable_if {}; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) enable_if<true, _Tp> {typedef _Tp type;}; | |
template <bool _Bp, class _Tp = void> using enable_if_t = typename enable_if<_Bp, _Tp>::type; | |
template <class _Tp, class _Up> | |
struct __attribute__ ((__type_visibility__("default"))) is_same : _BoolConstant<__is_same(_Tp, _Up)> { }; | |
# 573 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp, class _Up> | |
using _IsSame = _BoolConstant< | |
__is_same(_Tp, _Up) | |
>; | |
template <class _Tp, class _Up> | |
using _IsNotSame = _BoolConstant< | |
!__is_same(_Tp, _Up) | |
>; | |
template <class _Tp> | |
using __test_for_primary_template = _EnableIf< | |
_IsSame<_Tp, typename _Tp::__primary_template>::value | |
>; | |
template <class _Tp> | |
using __is_primary_template = _IsValidExpansion< | |
__test_for_primary_template, _Tp | |
>; | |
struct __two {char __lx[2];}; | |
template <class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_const : _BoolConstant<__is_const(_Tp)> { }; | |
# 634 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_volatile : _BoolConstant<__is_volatile(_Tp)> { }; | |
# 668 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_const {typedef _Tp type;}; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_const<const _Tp> {typedef _Tp type;}; | |
template <class _Tp> using remove_const_t = typename remove_const<_Tp>::type; | |
# 689 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_volatile {typedef _Tp type;}; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_volatile<volatile _Tp> {typedef _Tp type;}; | |
template <class _Tp> using remove_volatile_t = typename remove_volatile<_Tp>::type; | |
# 710 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_cv | |
{typedef typename remove_volatile<typename remove_const<_Tp>::type>::type type;}; | |
template <class _Tp> using remove_cv_t = typename remove_cv<_Tp>::type; | |
# 722 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_void : _BoolConstant<__is_void(_Tp)> { }; | |
# 745 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __is_nullptr_t_impl : public false_type {}; | |
template <> struct __is_nullptr_t_impl<nullptr_t> : public true_type {}; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) __is_nullptr_t | |
: public __is_nullptr_t_impl<typename remove_cv<_Tp>::type> {}; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_null_pointer | |
: public __is_nullptr_t_impl<typename remove_cv<_Tp>::type> {}; | |
# 766 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_integral : _BoolConstant<__is_integral(_Tp)> { }; | |
# 789 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __libcpp_is_floating_point : public false_type {}; | |
template <> struct __libcpp_is_floating_point<float> : public true_type {}; | |
template <> struct __libcpp_is_floating_point<double> : public true_type {}; | |
template <> struct __libcpp_is_floating_point<long double> : public true_type {}; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_floating_point | |
: public __libcpp_is_floating_point<typename remove_cv<_Tp>::type> {}; | |
# 807 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_array : _BoolConstant<__is_array(_Tp)> { }; | |
# 837 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template<class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_pointer : _BoolConstant<__is_pointer(_Tp)> { }; | |
# 875 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template<class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_lvalue_reference : _BoolConstant<__is_lvalue_reference(_Tp)> { }; | |
template<class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_rvalue_reference : _BoolConstant<__is_rvalue_reference(_Tp)> { }; | |
template<class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_reference : _BoolConstant<__is_reference(_Tp)> { }; | |
# 927 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_union | |
: public integral_constant<bool, __is_union(_Tp)> {}; | |
# 948 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_class | |
: public integral_constant<bool, __is_class(_Tp)> {}; | |
# 972 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_function | |
: public _BoolConstant< | |
__is_function(_Tp) | |
> {}; | |
# 988 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __libcpp_is_member_pointer { | |
enum { | |
__is_member = false, | |
__is_func = false, | |
__is_obj = false | |
}; | |
}; | |
template <class _Tp, class _Up> struct __libcpp_is_member_pointer<_Tp _Up::*> { | |
enum { | |
__is_member = true, | |
__is_func = is_function<_Tp>::value, | |
__is_obj = !__is_func, | |
}; | |
}; | |
template<class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_member_function_pointer | |
: _BoolConstant<__is_member_function_pointer(_Tp)> { }; | |
# 1032 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template<class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_member_pointer : _BoolConstant<__is_member_pointer(_Tp)> { }; | |
# 1057 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template<class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_member_object_pointer | |
: _BoolConstant<__is_member_object_pointer(_Tp)> { }; | |
# 1084 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_enum | |
: public integral_constant<bool, __is_enum(_Tp)> {}; | |
# 1117 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_arithmetic | |
: public integral_constant<bool, is_integral<_Tp>::value || | |
is_floating_point<_Tp>::value> {}; | |
# 1133 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template<class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_fundamental : _BoolConstant<__is_fundamental(_Tp)> { }; | |
# 1161 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template<class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_scalar : _BoolConstant<__is_scalar(_Tp)> { }; | |
# 1198 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template<class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_object : _BoolConstant<__is_object(_Tp)> { }; | |
# 1227 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template<class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_compound : _BoolConstant<__is_compound(_Tp)> { }; | |
# 1250 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
struct __is_referenceable_impl { | |
template <class _Tp> static _Tp& __test(int); | |
template <class _Tp> static __two __test(...); | |
}; | |
template <class _Tp> | |
struct __is_referenceable : integral_constant<bool, | |
_IsNotSame<decltype(__is_referenceable_impl::__test<_Tp>(0)), __two>::value> {}; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) add_const { | |
typedef __attribute__((nodebug)) const _Tp type; | |
}; | |
template <class _Tp> using add_const_t = typename add_const<_Tp>::type; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) add_volatile { | |
typedef __attribute__((nodebug)) volatile _Tp type; | |
}; | |
template <class _Tp> using add_volatile_t = typename add_volatile<_Tp>::type; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) add_cv { | |
typedef __attribute__((nodebug)) const volatile _Tp type; | |
}; | |
template <class _Tp> using add_cv_t = typename add_cv<_Tp>::type; | |
# 1298 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_reference {typedef __attribute__((nodebug)) _Tp type;}; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_reference<_Tp&> {typedef __attribute__((nodebug)) _Tp type;}; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_reference<_Tp&&> {typedef __attribute__((nodebug)) _Tp type;}; | |
template <class _Tp> using remove_reference_t = typename remove_reference<_Tp>::type; | |
template <class _Tp, bool = __is_referenceable<_Tp>::value> struct __add_lvalue_reference_impl { typedef __attribute__((nodebug)) _Tp type; }; | |
template <class _Tp > struct __add_lvalue_reference_impl<_Tp, true> { typedef __attribute__((nodebug)) _Tp& type; }; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) add_lvalue_reference | |
{typedef __attribute__((nodebug)) typename __add_lvalue_reference_impl<_Tp>::type type;}; | |
template <class _Tp> using add_lvalue_reference_t = typename add_lvalue_reference<_Tp>::type; | |
template <class _Tp, bool = __is_referenceable<_Tp>::value> struct __add_rvalue_reference_impl { typedef __attribute__((nodebug)) _Tp type; }; | |
template <class _Tp > struct __add_rvalue_reference_impl<_Tp, true> { typedef __attribute__((nodebug)) _Tp&& type; }; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) add_rvalue_reference | |
{typedef __attribute__((nodebug)) typename __add_rvalue_reference_impl<_Tp>::type type;}; | |
template <class _Tp> using add_rvalue_reference_t = typename add_rvalue_reference<_Tp>::type; | |
#pragma GCC diagnostic push | |
# 1332 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
#pragma GCC diagnostic ignored "-Wdeprecated" | |
template <class _Tp> _Tp&& __declval(int); | |
template <class _Tp> _Tp __declval(long); | |
#pragma GCC diagnostic pop | |
template <class _Tp> | |
decltype(std::__2::__declval<_Tp>(0)) | |
declval() noexcept; | |
template <class _Tp> | |
struct __uncvref { | |
typedef __attribute__((nodebug)) typename remove_cv<typename remove_reference<_Tp>::type>::type type; | |
}; | |
template <class _Tp> | |
struct __unconstref { | |
typedef __attribute__((nodebug)) typename remove_const<typename remove_reference<_Tp>::type>::type type; | |
}; | |
template <class _Tp> | |
using __uncvref_t __attribute__((nodebug)) = typename __uncvref<_Tp>::type; | |
template <class _Tp, class _Up> | |
struct __is_same_uncvref : _IsSame<typename __uncvref<_Tp>::type, | |
typename __uncvref<_Up>::type> {}; | |
# 1373 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
struct __any | |
{ | |
__any(...); | |
}; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_pointer {typedef __attribute__((nodebug)) _Tp type;}; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_pointer<_Tp*> {typedef __attribute__((nodebug)) _Tp type;}; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_pointer<_Tp* const> {typedef __attribute__((nodebug)) _Tp type;}; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_pointer<_Tp* volatile> {typedef __attribute__((nodebug)) _Tp type;}; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_pointer<_Tp* const volatile> {typedef __attribute__((nodebug)) _Tp type;}; | |
template <class _Tp> using remove_pointer_t = typename remove_pointer<_Tp>::type; | |
template <class _Tp, | |
bool = __is_referenceable<_Tp>::value || | |
_IsSame<typename remove_cv<_Tp>::type, void>::value> | |
struct __add_pointer_impl | |
{typedef __attribute__((nodebug)) typename remove_reference<_Tp>::type* type;}; | |
template <class _Tp> struct __add_pointer_impl<_Tp, false> | |
{typedef __attribute__((nodebug)) _Tp type;}; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) add_pointer | |
{typedef __attribute__((nodebug)) typename __add_pointer_impl<_Tp>::type type;}; | |
template <class _Tp> using add_pointer_t = typename add_pointer<_Tp>::type; | |
# 1418 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template<class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_signed : _BoolConstant<__is_signed(_Tp)> { }; | |
# 1453 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template<class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_unsigned : _BoolConstant<__is_unsigned(_Tp)> { }; | |
# 1486 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) rank | |
: public integral_constant<size_t, 0> {}; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) rank<_Tp[]> | |
: public integral_constant<size_t, rank<_Tp>::value + 1> {}; | |
template <class _Tp, size_t _Np> struct __attribute__ ((__type_visibility__("default"))) rank<_Tp[_Np]> | |
: public integral_constant<size_t, rank<_Tp>::value + 1> {}; | |
# 1503 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template<class _Tp, size_t _Dim = 0> | |
struct __attribute__ ((__type_visibility__("default"))) extent | |
: integral_constant<size_t, __array_extent(_Tp, _Dim)> { }; | |
# 1535 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_extent | |
{typedef _Tp type;}; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_extent<_Tp[]> | |
{typedef _Tp type;}; | |
template <class _Tp, size_t _Np> struct __attribute__ ((__type_visibility__("default"))) remove_extent<_Tp[_Np]> | |
{typedef _Tp type;}; | |
template <class _Tp> using remove_extent_t = typename remove_extent<_Tp>::type; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_all_extents | |
{typedef _Tp type;}; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_all_extents<_Tp[]> | |
{typedef typename remove_all_extents<_Tp>::type type;}; | |
template <class _Tp, size_t _Np> struct __attribute__ ((__type_visibility__("default"))) remove_all_extents<_Tp[_Np]> | |
{typedef typename remove_all_extents<_Tp>::type type;}; | |
template <class _Tp> using remove_all_extents_t = typename remove_all_extents<_Tp>::type; | |
# 1581 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Up, bool> | |
struct __decay { | |
typedef __attribute__((nodebug)) typename remove_cv<_Up>::type type; | |
}; | |
template <class _Up> | |
struct __decay<_Up, true> { | |
public: | |
typedef __attribute__((nodebug)) typename conditional | |
< | |
is_array<_Up>::value, | |
typename remove_extent<_Up>::type*, | |
typename conditional | |
< | |
is_function<_Up>::value, | |
typename add_pointer<_Up>::type, | |
typename remove_cv<_Up>::type | |
>::type | |
>::type type; | |
}; | |
template <class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) decay | |
{ | |
private: | |
typedef __attribute__((nodebug)) typename remove_reference<_Tp>::type _Up; | |
public: | |
typedef __attribute__((nodebug)) typename __decay<_Up, __is_referenceable<_Up>::value>::type type; | |
}; | |
template <class _Tp> using decay_t = typename decay<_Tp>::type; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_abstract | |
: public integral_constant<bool, __is_abstract(_Tp)> {}; | |
# 1628 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) | |
__libcpp_is_final : public integral_constant<bool, __is_final(_Tp)> {}; | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) | |
is_final : public integral_constant<bool, __is_final(_Tp)> {}; | |
# 1658 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Bp, class _Dp> | |
struct __attribute__ ((__type_visibility__("default"))) is_base_of | |
: public integral_constant<bool, __is_base_of(_Bp, _Dp)> {}; | |
# 1675 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp, class _Up, class = void> | |
struct __is_core_convertible : public false_type {}; | |
template <class _Tp, class _Up> | |
struct __is_core_convertible<_Tp, _Up, decltype( | |
static_cast<void(*)(_Up)>(0) ( static_cast<_Tp(*)()>(0)() ) | |
)> : public true_type {}; | |
template <class _T1, class _T2> struct __attribute__ ((__type_visibility__("default"))) is_convertible | |
: public integral_constant<bool, __is_convertible_to(_T1, _T2)> {}; | |
# 1795 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_empty | |
: public integral_constant<bool, __is_empty(_Tp)> {}; | |
# 1832 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_polymorphic | |
: public integral_constant<bool, __is_polymorphic(_Tp)> {}; | |
# 1858 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) has_virtual_destructor | |
: public integral_constant<bool, __has_virtual_destructor(_Tp)> {}; | |
# 1892 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) alignment_of | |
: public integral_constant<size_t, alignof(_Tp)> {}; | |
# 1903 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Hp, class _Tp> | |
struct __type_list | |
{ | |
typedef _Hp _Head; | |
typedef _Tp _Tail; | |
}; | |
struct __nat | |
{ | |
__nat() = delete; | |
__nat(const __nat&) = delete; | |
__nat& operator=(const __nat&) = delete; | |
~__nat() = delete; | |
}; | |
template <class _Tp> | |
struct __align_type | |
{ | |
static const size_t value = __alignof(_Tp); | |
typedef _Tp type; | |
}; | |
struct __struct_double {long double __lx;}; | |
struct __struct_double4 {double __lx[4];}; | |
typedef | |
__type_list<__align_type<unsigned char>, | |
__type_list<__align_type<unsigned short>, | |
__type_list<__align_type<unsigned int>, | |
__type_list<__align_type<unsigned long>, | |
__type_list<__align_type<unsigned long long>, | |
__type_list<__align_type<double>, | |
__type_list<__align_type<long double>, | |
__type_list<__align_type<__struct_double>, | |
__type_list<__align_type<__struct_double4>, | |
__type_list<__align_type<int*>, | |
__nat | |
> > > > > > > > > > __all_types; | |
template <size_t _Align> | |
struct alignas(_Align) __fallback_overaligned {}; | |
template <class _TL, size_t _Align> struct __find_pod; | |
template <class _Hp, size_t _Align> | |
struct __find_pod<__type_list<_Hp, __nat>, _Align> | |
{ | |
typedef typename conditional< | |
_Align == _Hp::value, | |
typename _Hp::type, | |
__fallback_overaligned<_Align> | |
>::type type; | |
}; | |
template <class _Hp, class _Tp, size_t _Align> | |
struct __find_pod<__type_list<_Hp, _Tp>, _Align> | |
{ | |
typedef typename conditional< | |
_Align == _Hp::value, | |
typename _Hp::type, | |
typename __find_pod<_Tp, _Align>::type | |
>::type type; | |
}; | |
template <class _TL, size_t _Len> struct __find_max_align; | |
template <class _Hp, size_t _Len> | |
struct __find_max_align<__type_list<_Hp, __nat>, _Len> : public integral_constant<size_t, _Hp::value> {}; | |
template <size_t _Len, size_t _A1, size_t _A2> | |
struct __select_align | |
{ | |
private: | |
static const size_t __min = _A2 < _A1 ? _A2 : _A1; | |
static const size_t __max = _A1 < _A2 ? _A2 : _A1; | |
public: | |
static const size_t value = _Len < __max ? __min : __max; | |
}; | |
template <class _Hp, class _Tp, size_t _Len> | |
struct __find_max_align<__type_list<_Hp, _Tp>, _Len> | |
: public integral_constant<size_t, __select_align<_Len, _Hp::value, __find_max_align<_Tp, _Len>::value>::value> {}; | |
template <size_t _Len, size_t _Align = __find_max_align<__all_types, _Len>::value> | |
struct __attribute__ ((__type_visibility__("default"))) aligned_storage | |
{ | |
typedef typename __find_pod<__all_types, _Align>::type _Aligner; | |
union type | |
{ | |
_Aligner __align; | |
unsigned char __data[(_Len + _Align - 1)/_Align * _Align]; | |
}; | |
}; | |
template <size_t _Len, size_t _Align = __find_max_align<__all_types, _Len>::value> | |
using aligned_storage_t = typename aligned_storage<_Len, _Align>::type; | |
# 2014 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x1>{ struct alignas(0x1) type { unsigned char __lx[(_Len + 0x1 - 1)/0x1 * 0x1]; };}; | |
template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x2>{ struct alignas(0x2) type { unsigned char __lx[(_Len + 0x2 - 1)/0x2 * 0x2]; };}; | |
template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x4>{ struct alignas(0x4) type { unsigned char __lx[(_Len + 0x4 - 1)/0x4 * 0x4]; };}; | |
template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x8>{ struct alignas(0x8) type { unsigned char __lx[(_Len + 0x8 - 1)/0x8 * 0x8]; };}; | |
template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x10>{ struct alignas(0x10) type { unsigned char __lx[(_Len + 0x10 - 1)/0x10 * 0x10]; };}; | |
template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x20>{ struct alignas(0x20) type { unsigned char __lx[(_Len + 0x20 - 1)/0x20 * 0x20]; };}; | |
template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x40>{ struct alignas(0x40) type { unsigned char __lx[(_Len + 0x40 - 1)/0x40 * 0x40]; };}; | |
template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x80>{ struct alignas(0x80) type { unsigned char __lx[(_Len + 0x80 - 1)/0x80 * 0x80]; };}; | |
template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x100>{ struct alignas(0x100) type { unsigned char __lx[(_Len + 0x100 - 1)/0x100 * 0x100]; };}; | |
template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x200>{ struct alignas(0x200) type { unsigned char __lx[(_Len + 0x200 - 1)/0x200 * 0x200]; };}; | |
template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x400>{ struct alignas(0x400) type { unsigned char __lx[(_Len + 0x400 - 1)/0x400 * 0x400]; };}; | |
template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x800>{ struct alignas(0x800) type { unsigned char __lx[(_Len + 0x800 - 1)/0x800 * 0x800]; };}; | |
template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x1000>{ struct alignas(0x1000) type { unsigned char __lx[(_Len + 0x1000 - 1)/0x1000 * 0x1000]; };}; | |
template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x2000>{ struct alignas(0x2000) type { unsigned char __lx[(_Len + 0x2000 - 1)/0x2000 * 0x2000]; };}; | |
template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x4000>{ struct alignas(0x4000) type { unsigned char __lx[(_Len + 0x4000 - 1)/0x4000 * 0x4000]; };}; | |
template <size_t _I0, size_t ..._In> | |
struct __static_max; | |
template <size_t _I0> | |
struct __static_max<_I0> | |
{ | |
static const size_t value = _I0; | |
}; | |
template <size_t _I0, size_t _I1, size_t ..._In> | |
struct __static_max<_I0, _I1, _In...> | |
{ | |
static const size_t value = _I0 >= _I1 ? __static_max<_I0, _In...>::value : | |
__static_max<_I1, _In...>::value; | |
}; | |
template <size_t _Len, class _Type0, class ..._Types> | |
struct aligned_union | |
{ | |
static const size_t alignment_value = __static_max<__alignof(_Type0), | |
__alignof(_Types)...>::value; | |
static const size_t __len = __static_max<_Len, sizeof(_Type0), | |
sizeof(_Types)...>::value; | |
typedef typename aligned_storage<__len, alignment_value>::type type; | |
}; | |
template <size_t _Len, class ..._Types> using aligned_union_t = typename aligned_union<_Len, _Types...>::type; | |
template <class _Tp> | |
struct __numeric_type | |
{ | |
static void __test(...); | |
static float __test(float); | |
static double __test(char); | |
static double __test(int); | |
static double __test(unsigned); | |
static double __test(long); | |
static double __test(unsigned long); | |
static double __test(long long); | |
static double __test(unsigned long long); | |
static double __test(double); | |
static long double __test(long double); | |
typedef decltype(__test(declval<_Tp>())) type; | |
static const bool value = _IsNotSame<type, void>::value; | |
}; | |
template <> | |
struct __numeric_type<void> | |
{ | |
static const bool value = true; | |
}; | |
template <class _A1, class _A2 = void, class _A3 = void, | |
bool = __numeric_type<_A1>::value && | |
__numeric_type<_A2>::value && | |
__numeric_type<_A3>::value> | |
class __promote_imp | |
{ | |
public: | |
static const bool value = false; | |
}; | |
template <class _A1, class _A2, class _A3> | |
class __promote_imp<_A1, _A2, _A3, true> | |
{ | |
private: | |
typedef typename __promote_imp<_A1>::type __type1; | |
typedef typename __promote_imp<_A2>::type __type2; | |
typedef typename __promote_imp<_A3>::type __type3; | |
public: | |
typedef decltype(__type1() + __type2() + __type3()) type; | |
static const bool value = true; | |
}; | |
template <class _A1, class _A2> | |
class __promote_imp<_A1, _A2, void, true> | |
{ | |
private: | |
typedef typename __promote_imp<_A1>::type __type1; | |
typedef typename __promote_imp<_A2>::type __type2; | |
public: | |
typedef decltype(__type1() + __type2()) type; | |
static const bool value = true; | |
}; | |
template <class _A1> | |
class __promote_imp<_A1, void, void, true> | |
{ | |
public: | |
typedef typename __numeric_type<_A1>::type type; | |
static const bool value = true; | |
}; | |
template <class _A1, class _A2 = void, class _A3 = void> | |
class __promote : public __promote_imp<_A1, _A2, _A3> {}; | |
typedef | |
__type_list<signed char, | |
__type_list<signed short, | |
__type_list<signed int, | |
__type_list<signed long, | |
__type_list<signed long long, | |
__type_list<__int128_t, | |
__nat | |
> | |
> > > > > __signed_types; | |
typedef | |
__type_list<unsigned char, | |
__type_list<unsigned short, | |
__type_list<unsigned int, | |
__type_list<unsigned long, | |
__type_list<unsigned long long, | |
__type_list<__uint128_t, | |
__nat | |
> | |
> > > > > __unsigned_types; | |
template <class _TypeList, size_t _Size, bool = _Size <= sizeof(typename _TypeList::_Head)> struct __find_first; | |
template <class _Hp, class _Tp, size_t _Size> | |
struct __find_first<__type_list<_Hp, _Tp>, _Size, true> | |
{ | |
typedef __attribute__((nodebug)) _Hp type; | |
}; | |
template <class _Hp, class _Tp, size_t _Size> | |
struct __find_first<__type_list<_Hp, _Tp>, _Size, false> | |
{ | |
typedef __attribute__((nodebug)) typename __find_first<_Tp, _Size>::type type; | |
}; | |
template <class _Tp, class _Up, bool = is_const<typename remove_reference<_Tp>::type>::value, | |
bool = is_volatile<typename remove_reference<_Tp>::type>::value> | |
struct __apply_cv | |
{ | |
typedef __attribute__((nodebug)) _Up type; | |
}; | |
template <class _Tp, class _Up> | |
struct __apply_cv<_Tp, _Up, true, false> | |
{ | |
typedef __attribute__((nodebug)) const _Up type; | |
}; | |
template <class _Tp, class _Up> | |
struct __apply_cv<_Tp, _Up, false, true> | |
{ | |
typedef volatile _Up type; | |
}; | |
template <class _Tp, class _Up> | |
struct __apply_cv<_Tp, _Up, true, true> | |
{ | |
typedef const volatile _Up type; | |
}; | |
template <class _Tp, class _Up> | |
struct __apply_cv<_Tp&, _Up, false, false> | |
{ | |
typedef _Up& type; | |
}; | |
template <class _Tp, class _Up> | |
struct __apply_cv<_Tp&, _Up, true, false> | |
{ | |
typedef const _Up& type; | |
}; | |
template <class _Tp, class _Up> | |
struct __apply_cv<_Tp&, _Up, false, true> | |
{ | |
typedef volatile _Up& type; | |
}; | |
template <class _Tp, class _Up> | |
struct __apply_cv<_Tp&, _Up, true, true> | |
{ | |
typedef const volatile _Up& type; | |
}; | |
template <class _Tp, bool = is_integral<_Tp>::value || is_enum<_Tp>::value> | |
struct __make_signed {}; | |
template <class _Tp> | |
struct __make_signed<_Tp, true> | |
{ | |
typedef typename __find_first<__signed_types, sizeof(_Tp)>::type type; | |
}; | |
template <> struct __make_signed<bool, true> {}; | |
template <> struct __make_signed< signed short, true> {typedef short type;}; | |
template <> struct __make_signed<unsigned short, true> {typedef short type;}; | |
template <> struct __make_signed< signed int, true> {typedef int type;}; | |
template <> struct __make_signed<unsigned int, true> {typedef int type;}; | |
template <> struct __make_signed< signed long, true> {typedef long type;}; | |
template <> struct __make_signed<unsigned long, true> {typedef long type;}; | |
template <> struct __make_signed< signed long long, true> {typedef long long type;}; | |
template <> struct __make_signed<unsigned long long, true> {typedef long long type;}; | |
template <> struct __make_signed<__int128_t, true> {typedef __int128_t type;}; | |
template <> struct __make_signed<__uint128_t, true> {typedef __int128_t type;}; | |
template <class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) make_signed | |
{ | |
typedef typename __apply_cv<_Tp, typename __make_signed<typename remove_cv<_Tp>::type>::type>::type type; | |
}; | |
template <class _Tp> using make_signed_t = typename make_signed<_Tp>::type; | |
template <class _Tp, bool = is_integral<_Tp>::value || is_enum<_Tp>::value> | |
struct __make_unsigned {}; | |
template <class _Tp> | |
struct __make_unsigned<_Tp, true> | |
{ | |
typedef typename __find_first<__unsigned_types, sizeof(_Tp)>::type type; | |
}; | |
template <> struct __make_unsigned<bool, true> {}; | |
template <> struct __make_unsigned< signed short, true> {typedef unsigned short type;}; | |
template <> struct __make_unsigned<unsigned short, true> {typedef unsigned short type;}; | |
template <> struct __make_unsigned< signed int, true> {typedef unsigned int type;}; | |
template <> struct __make_unsigned<unsigned int, true> {typedef unsigned int type;}; | |
template <> struct __make_unsigned< signed long, true> {typedef unsigned long type;}; | |
template <> struct __make_unsigned<unsigned long, true> {typedef unsigned long type;}; | |
template <> struct __make_unsigned< signed long long, true> {typedef unsigned long long type;}; | |
template <> struct __make_unsigned<unsigned long long, true> {typedef unsigned long long type;}; | |
template <> struct __make_unsigned<__int128_t, true> {typedef __uint128_t type;}; | |
template <> struct __make_unsigned<__uint128_t, true> {typedef __uint128_t type;}; | |
template <class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) make_unsigned | |
{ | |
typedef typename __apply_cv<_Tp, typename __make_unsigned<typename remove_cv<_Tp>::type>::type>::type type; | |
}; | |
template <class _Tp> using make_unsigned_t = typename make_unsigned<_Tp>::type; | |
# 2322 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp, class _Up, class = void> | |
struct __common_type2_imp {}; | |
template <class _Tp, class _Up> | |
struct __common_type2_imp<_Tp, _Up, | |
typename __void_t<decltype( | |
true ? std::__2::declval<_Tp>() : std::__2::declval<_Up>() | |
)>::type> | |
{ | |
typedef __attribute__((nodebug)) typename decay<decltype( | |
true ? std::__2::declval<_Tp>() : std::__2::declval<_Up>() | |
)>::type type; | |
}; | |
template <class, class = void> | |
struct __common_type_impl {}; | |
template <class... Tp> | |
struct __common_types; | |
template <class... _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) common_type; | |
# 2361 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp, class _Up> | |
struct __common_type_impl< | |
__common_types<_Tp, _Up>, | |
typename __void_t<typename common_type<_Tp, _Up>::type>::type> | |
{ | |
typedef typename common_type<_Tp, _Up>::type type; | |
}; | |
template <class _Tp, class _Up, class _Vp , class... _Rest> | |
struct __common_type_impl< | |
__common_types<_Tp, _Up, _Vp , _Rest...>, | |
typename __void_t<typename common_type<_Tp, _Up>::type>::type> | |
: __common_type_impl<__common_types<typename common_type<_Tp, _Up>::type, | |
_Vp , _Rest...> > { | |
}; | |
template <> | |
struct __attribute__ ((__type_visibility__("default"))) common_type<> {}; | |
template <class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) common_type<_Tp> | |
: public common_type<_Tp, _Tp> {}; | |
template <class _Tp, class _Up> | |
struct __attribute__ ((__type_visibility__("default"))) common_type<_Tp, _Up> | |
: conditional< | |
_IsSame<_Tp, typename decay<_Tp>::type>::value && _IsSame<_Up, typename decay<_Up>::type>::value, | |
__common_type2_imp<_Tp, _Up>, | |
common_type<typename decay<_Tp>::type, typename decay<_Up>::type> | |
>::type | |
{}; | |
template <class _Tp, class _Up, class _Vp , class... _Rest> | |
struct __attribute__ ((__type_visibility__("default"))) | |
common_type<_Tp, _Up, _Vp , _Rest...> | |
: __common_type_impl< | |
__common_types<_Tp, _Up, _Vp , _Rest...> > {}; | |
template <class ..._Tp> using common_type_t = typename common_type<_Tp...>::type; | |
template<typename, typename _Tp> struct __select_2nd { typedef __attribute__((nodebug)) _Tp type; }; | |
template<class _Tp, class _Up> | |
struct __attribute__ ((__type_visibility__("default"))) is_assignable : _BoolConstant<__is_assignable(_Tp, _Up)> { }; | |
# 2462 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_copy_assignable | |
: public is_assignable<typename add_lvalue_reference<_Tp>::type, | |
typename add_lvalue_reference<typename add_const<_Tp>::type>::type> {}; | |
# 2474 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_move_assignable | |
: public is_assignable<typename add_lvalue_reference<_Tp>::type, | |
typename add_rvalue_reference<_Tp>::type> {}; | |
# 2505 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class> | |
struct __is_destructible_apply { typedef int type; }; | |
template <typename _Tp> | |
struct __is_destructor_wellformed { | |
template <typename _Tp1> | |
static char __test ( | |
typename __is_destructible_apply<decltype(std::__2::declval<_Tp1&>().~_Tp1())>::type | |
); | |
template <typename _Tp1> | |
static __two __test (...); | |
static const bool value = sizeof(__test<_Tp>(12)) == sizeof(char); | |
}; | |
template <class _Tp, bool> | |
struct __destructible_imp; | |
template <class _Tp> | |
struct __destructible_imp<_Tp, false> | |
: public std::__2::integral_constant<bool, | |
__is_destructor_wellformed<typename std::__2::remove_all_extents<_Tp>::type>::value> {}; | |
template <class _Tp> | |
struct __destructible_imp<_Tp, true> | |
: public std::__2::true_type {}; | |
template <class _Tp, bool> | |
struct __destructible_false; | |
template <class _Tp> | |
struct __destructible_false<_Tp, false> : public __destructible_imp<_Tp, std::__2::is_reference<_Tp>::value> {}; | |
template <class _Tp> | |
struct __destructible_false<_Tp, true> : public std::__2::false_type {}; | |
template <class _Tp> | |
struct is_destructible | |
: public __destructible_false<_Tp, std::__2::is_function<_Tp>::value> {}; | |
template <class _Tp> | |
struct is_destructible<_Tp[]> | |
: public std::__2::false_type {}; | |
template <> | |
struct is_destructible<void> | |
: public std::__2::false_type {}; | |
# 2564 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
typename remove_reference<_Tp>::type&& | |
move(_Tp&& __t) noexcept | |
{ | |
typedef __attribute__((nodebug)) typename remove_reference<_Tp>::type _Up; | |
return static_cast<_Up&&>(__t); | |
} | |
template <class _Tp> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
_Tp&& | |
forward(typename remove_reference<_Tp>::type& __t) noexcept | |
{ | |
return static_cast<_Tp&&>(__t); | |
} | |
template <class _Tp> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
_Tp&& | |
forward(typename remove_reference<_Tp>::type&& __t) noexcept | |
{ | |
static_assert(!is_lvalue_reference<_Tp>::value, | |
"can not forward an rvalue as an lvalue"); | |
return static_cast<_Tp&&>(__t); | |
} | |
template <class _Tp> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename decay<_Tp>::type | |
__decay_copy(_Tp&& __t) | |
{ | |
return std::__2::forward<_Tp>(__t); | |
} | |
template <class _MP, bool _IsMemberFunctionPtr, bool _IsMemberObjectPtr> | |
struct __member_pointer_traits_imp | |
{ | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...), true, false> | |
{ | |
typedef _Class _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...), true, false> | |
{ | |
typedef _Class _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const, true, false> | |
{ | |
typedef _Class const _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const, true, false> | |
{ | |
typedef _Class const _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile, true, false> | |
{ | |
typedef _Class volatile _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) volatile, true, false> | |
{ | |
typedef _Class volatile _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile, true, false> | |
{ | |
typedef _Class const volatile _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const volatile, true, false> | |
{ | |
typedef _Class const volatile _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) &, true, false> | |
{ | |
typedef _Class& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) &, true, false> | |
{ | |
typedef _Class& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const&, true, false> | |
{ | |
typedef _Class const& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const&, true, false> | |
{ | |
typedef _Class const& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile&, true, false> | |
{ | |
typedef _Class volatile& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) volatile&, true, false> | |
{ | |
typedef _Class volatile& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile&, true, false> | |
{ | |
typedef _Class const volatile& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const volatile&, true, false> | |
{ | |
typedef _Class const volatile& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) &&, true, false> | |
{ | |
typedef _Class&& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) &&, true, false> | |
{ | |
typedef _Class&& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const&&, true, false> | |
{ | |
typedef _Class const&& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const&&, true, false> | |
{ | |
typedef _Class const&& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile&&, true, false> | |
{ | |
typedef _Class volatile&& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) volatile&&, true, false> | |
{ | |
typedef _Class volatile&& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile&&, true, false> | |
{ | |
typedef _Class const volatile&& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param...); | |
}; | |
template <class _Rp, class _Class, class ..._Param> | |
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const volatile&&, true, false> | |
{ | |
typedef _Class const volatile&& _ClassType; | |
typedef _Rp _ReturnType; | |
typedef _Rp (_FnType) (_Param..., ...); | |
}; | |
template <class _Rp, class _Class> | |
struct __member_pointer_traits_imp<_Rp _Class::*, false, true> | |
{ | |
typedef _Class _ClassType; | |
typedef _Rp _ReturnType; | |
}; | |
template <class _MP> | |
struct __member_pointer_traits | |
: public __member_pointer_traits_imp<typename remove_cv<_MP>::type, | |
is_member_function_pointer<_MP>::value, | |
is_member_object_pointer<_MP>::value> | |
{ | |
}; | |
template <class _DecayedFp> | |
struct __member_pointer_class_type {}; | |
template <class _Ret, class _ClassType> | |
struct __member_pointer_class_type<_Ret _ClassType::*> { | |
typedef _ClassType type; | |
}; | |
# 2950 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp, class ..._Args> | |
struct __attribute__ ((__type_visibility__("default"))) is_constructible | |
: public integral_constant<bool, __is_constructible(_Tp, _Args...)> | |
{}; | |
# 2968 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_default_constructible | |
: public is_constructible<_Tp> | |
{}; | |
# 2984 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> | |
void __test_implicit_default_constructible(_Tp); | |
template <class _Tp, class = void, bool = is_default_constructible<_Tp>::value> | |
struct __is_implicitly_default_constructible | |
: false_type | |
{ }; | |
template <class _Tp> | |
struct __is_implicitly_default_constructible<_Tp, decltype(__test_implicit_default_constructible<_Tp const&>({})), true> | |
: true_type | |
{ }; | |
template <class _Tp> | |
struct __is_implicitly_default_constructible<_Tp, decltype(__test_implicit_default_constructible<_Tp const&>({})), false> | |
: false_type | |
{ }; | |
template <class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_copy_constructible | |
: public is_constructible<_Tp, | |
typename add_lvalue_reference<typename add_const<_Tp>::type>::type> {}; | |
# 3018 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_move_constructible | |
: public is_constructible<_Tp, typename add_rvalue_reference<_Tp>::type> | |
{}; | |
# 3033 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp, class... _Args> | |
struct __attribute__ ((__type_visibility__("default"))) is_trivially_constructible | |
: integral_constant<bool, __is_trivially_constructible(_Tp, _Args...)> | |
{ | |
}; | |
# 3086 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_trivially_default_constructible | |
: public is_trivially_constructible<_Tp> | |
{}; | |
# 3098 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_trivially_copy_constructible | |
: public is_trivially_constructible<_Tp, typename add_lvalue_reference<const _Tp>::type> | |
{}; | |
# 3110 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_trivially_move_constructible | |
: public is_trivially_constructible<_Tp, typename add_rvalue_reference<_Tp>::type> | |
{}; | |
# 3124 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp, class _Arg> | |
struct is_trivially_assignable | |
: integral_constant<bool, __is_trivially_assignable(_Tp, _Arg)> | |
{ | |
}; | |
# 3162 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_trivially_copy_assignable | |
: public is_trivially_assignable<typename add_lvalue_reference<_Tp>::type, | |
typename add_lvalue_reference<typename add_const<_Tp>::type>::type> {}; | |
# 3174 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_trivially_move_assignable | |
: public is_trivially_assignable<typename add_lvalue_reference<_Tp>::type, | |
typename add_rvalue_reference<_Tp>::type> | |
{}; | |
# 3189 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_trivially_destructible | |
: public integral_constant<bool, __is_trivially_destructible(_Tp)> {}; | |
# 3221 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp, class... _Args> | |
struct __attribute__ ((__type_visibility__("default"))) is_nothrow_constructible | |
: public integral_constant<bool, __is_nothrow_constructible(_Tp, _Args...)> {}; | |
# 3273 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_default_constructible | |
: public is_nothrow_constructible<_Tp> | |
{}; | |
# 3285 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_copy_constructible | |
: public is_nothrow_constructible<_Tp, | |
typename add_lvalue_reference<typename add_const<_Tp>::type>::type> {}; | |
# 3297 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_move_constructible | |
: public is_nothrow_constructible<_Tp, typename add_rvalue_reference<_Tp>::type> | |
{}; | |
# 3311 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp, class _Arg> | |
struct __attribute__ ((__type_visibility__("default"))) is_nothrow_assignable | |
: public integral_constant<bool, __is_nothrow_assignable(_Tp, _Arg)> {}; | |
# 3347 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_copy_assignable | |
: public is_nothrow_assignable<typename add_lvalue_reference<_Tp>::type, | |
typename add_lvalue_reference<typename add_const<_Tp>::type>::type> {}; | |
# 3359 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_move_assignable | |
: public is_nothrow_assignable<typename add_lvalue_reference<_Tp>::type, | |
typename add_rvalue_reference<_Tp>::type> | |
{}; | |
# 3374 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <bool, class _Tp> struct __libcpp_is_nothrow_destructible; | |
template <class _Tp> | |
struct __libcpp_is_nothrow_destructible<false, _Tp> | |
: public false_type | |
{ | |
}; | |
template <class _Tp> | |
struct __libcpp_is_nothrow_destructible<true, _Tp> | |
: public integral_constant<bool, noexcept(std::__2::declval<_Tp>().~_Tp()) > | |
{ | |
}; | |
template <class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_nothrow_destructible | |
: public __libcpp_is_nothrow_destructible<is_destructible<_Tp>::value, _Tp> | |
{ | |
}; | |
template <class _Tp, size_t _Ns> | |
struct __attribute__ ((__type_visibility__("default"))) is_nothrow_destructible<_Tp[_Ns]> | |
: public is_nothrow_destructible<_Tp> | |
{ | |
}; | |
template <class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_nothrow_destructible<_Tp&> | |
: public true_type | |
{ | |
}; | |
template <class _Tp> | |
struct __attribute__ ((__type_visibility__("default"))) is_nothrow_destructible<_Tp&&> | |
: public true_type | |
{ | |
}; | |
# 3437 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_pod | |
: public integral_constant<bool, __is_pod(_Tp)> {}; | |
# 3458 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_literal_type | |
: public integral_constant<bool, __is_literal_type(_Tp)> | |
{}; | |
# 3470 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_standard_layout | |
: public integral_constant<bool, __is_standard_layout(_Tp)> | |
{}; | |
# 3486 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_trivially_copyable | |
: public integral_constant<bool, __is_trivially_copyable(_Tp)> | |
{}; | |
# 3504 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_trivial | |
: public integral_constant<bool, __is_trivial(_Tp)> | |
{}; | |
template <class _Tp> struct __is_reference_wrapper_impl : public false_type {}; | |
template <class _Tp> struct __is_reference_wrapper_impl<reference_wrapper<_Tp> > : public true_type {}; | |
template <class _Tp> struct __is_reference_wrapper | |
: public __is_reference_wrapper_impl<typename remove_cv<_Tp>::type> {}; | |
template <class _Fp, class _A0, | |
class _DecayFp = typename decay<_Fp>::type, | |
class _DecayA0 = typename decay<_A0>::type, | |
class _ClassT = typename __member_pointer_class_type<_DecayFp>::type> | |
using __enable_if_bullet1 = typename enable_if | |
< | |
is_member_function_pointer<_DecayFp>::value | |
&& is_base_of<_ClassT, _DecayA0>::value | |
>::type; | |
template <class _Fp, class _A0, | |
class _DecayFp = typename decay<_Fp>::type, | |
class _DecayA0 = typename decay<_A0>::type> | |
using __enable_if_bullet2 = typename enable_if | |
< | |
is_member_function_pointer<_DecayFp>::value | |
&& __is_reference_wrapper<_DecayA0>::value | |
>::type; | |
template <class _Fp, class _A0, | |
class _DecayFp = typename decay<_Fp>::type, | |
class _DecayA0 = typename decay<_A0>::type, | |
class _ClassT = typename __member_pointer_class_type<_DecayFp>::type> | |
using __enable_if_bullet3 = typename enable_if | |
< | |
is_member_function_pointer<_DecayFp>::value | |
&& !is_base_of<_ClassT, _DecayA0>::value | |
&& !__is_reference_wrapper<_DecayA0>::value | |
>::type; | |
template <class _Fp, class _A0, | |
class _DecayFp = typename decay<_Fp>::type, | |
class _DecayA0 = typename decay<_A0>::type, | |
class _ClassT = typename __member_pointer_class_type<_DecayFp>::type> | |
using __enable_if_bullet4 = typename enable_if | |
< | |
is_member_object_pointer<_DecayFp>::value | |
&& is_base_of<_ClassT, _DecayA0>::value | |
>::type; | |
template <class _Fp, class _A0, | |
class _DecayFp = typename decay<_Fp>::type, | |
class _DecayA0 = typename decay<_A0>::type> | |
using __enable_if_bullet5 = typename enable_if | |
< | |
is_member_object_pointer<_DecayFp>::value | |
&& __is_reference_wrapper<_DecayA0>::value | |
>::type; | |
template <class _Fp, class _A0, | |
class _DecayFp = typename decay<_Fp>::type, | |
class _DecayA0 = typename decay<_A0>::type, | |
class _ClassT = typename __member_pointer_class_type<_DecayFp>::type> | |
using __enable_if_bullet6 = typename enable_if | |
< | |
is_member_object_pointer<_DecayFp>::value | |
&& !is_base_of<_ClassT, _DecayA0>::value | |
&& !__is_reference_wrapper<_DecayA0>::value | |
>::type; | |
# 3594 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class ..._Args> | |
auto __invoke(__any, _Args&& ...__args) -> __nat; | |
template <class ..._Args> | |
auto __invoke_constexpr(__any, _Args&& ...__args) -> __nat; | |
template <class _Fp, class _A0, class ..._Args, | |
class = __enable_if_bullet1<_Fp, _A0>> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
auto | |
__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args) | |
noexcept(noexcept((std::__2::forward<_A0>(__a0).*__f)(std::__2::forward<_Args>(__args)...))) -> decltype((std::__2::forward<_A0>(__a0).*__f)(std::__2::forward<_Args>(__args)...)) { return (std::__2::forward<_A0>(__a0).*__f)(std::__2::forward<_Args>(__args)...); } | |
template <class _Fp, class _A0, class ..._Args, | |
class = __enable_if_bullet1<_Fp, _A0>> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr auto | |
__invoke_constexpr(_Fp&& __f, _A0&& __a0, _Args&& ...__args) | |
noexcept(noexcept((std::__2::forward<_A0>(__a0).*__f)(std::__2::forward<_Args>(__args)...))) -> decltype((std::__2::forward<_A0>(__a0).*__f)(std::__2::forward<_Args>(__args)...)) { return (std::__2::forward<_A0>(__a0).*__f)(std::__2::forward<_Args>(__args)...); } | |
template <class _Fp, class _A0, class ..._Args, | |
class = __enable_if_bullet2<_Fp, _A0>> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
auto | |
__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args) | |
noexcept(noexcept((__a0.get().*__f)(std::__2::forward<_Args>(__args)...))) -> decltype((__a0.get().*__f)(std::__2::forward<_Args>(__args)...)) { return (__a0.get().*__f)(std::__2::forward<_Args>(__args)...); } | |
template <class _Fp, class _A0, class ..._Args, | |
class = __enable_if_bullet2<_Fp, _A0>> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr auto | |
__invoke_constexpr(_Fp&& __f, _A0&& __a0, _Args&& ...__args) | |
noexcept(noexcept((__a0.get().*__f)(std::__2::forward<_Args>(__args)...))) -> decltype((__a0.get().*__f)(std::__2::forward<_Args>(__args)...)) { return (__a0.get().*__f)(std::__2::forward<_Args>(__args)...); } | |
template <class _Fp, class _A0, class ..._Args, | |
class = __enable_if_bullet3<_Fp, _A0>> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
auto | |
__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args) | |
noexcept(noexcept(((*std::__2::forward<_A0>(__a0)).*__f)(std::__2::forward<_Args>(__args)...))) -> decltype(((*std::__2::forward<_A0>(__a0)).*__f)(std::__2::forward<_Args>(__args)...)) { return ((*std::__2::forward<_A0>(__a0)).*__f)(std::__2::forward<_Args>(__args)...); } | |
template <class _Fp, class _A0, class ..._Args, | |
class = __enable_if_bullet3<_Fp, _A0>> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr auto | |
__invoke_constexpr(_Fp&& __f, _A0&& __a0, _Args&& ...__args) | |
noexcept(noexcept(((*std::__2::forward<_A0>(__a0)).*__f)(std::__2::forward<_Args>(__args)...))) -> decltype(((*std::__2::forward<_A0>(__a0)).*__f)(std::__2::forward<_Args>(__args)...)) { return ((*std::__2::forward<_A0>(__a0)).*__f)(std::__2::forward<_Args>(__args)...); } | |
template <class _Fp, class _A0, | |
class = __enable_if_bullet4<_Fp, _A0>> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
auto | |
__invoke(_Fp&& __f, _A0&& __a0) | |
noexcept(noexcept(std::__2::forward<_A0>(__a0).*__f)) -> decltype(std::__2::forward<_A0>(__a0).*__f) { return std::__2::forward<_A0>(__a0).*__f; } | |
template <class _Fp, class _A0, | |
class = __enable_if_bullet4<_Fp, _A0>> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr auto | |
__invoke_constexpr(_Fp&& __f, _A0&& __a0) | |
noexcept(noexcept(std::__2::forward<_A0>(__a0).*__f)) -> decltype(std::__2::forward<_A0>(__a0).*__f) { return std::__2::forward<_A0>(__a0).*__f; } | |
template <class _Fp, class _A0, | |
class = __enable_if_bullet5<_Fp, _A0>> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
auto | |
__invoke(_Fp&& __f, _A0&& __a0) | |
noexcept(noexcept(__a0.get().*__f)) -> decltype(__a0.get().*__f) { return __a0.get().*__f; } | |
template <class _Fp, class _A0, | |
class = __enable_if_bullet5<_Fp, _A0>> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr auto | |
__invoke_constexpr(_Fp&& __f, _A0&& __a0) | |
noexcept(noexcept(__a0.get().*__f)) -> decltype(__a0.get().*__f) { return __a0.get().*__f; } | |
template <class _Fp, class _A0, | |
class = __enable_if_bullet6<_Fp, _A0>> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
auto | |
__invoke(_Fp&& __f, _A0&& __a0) | |
noexcept(noexcept((*std::__2::forward<_A0>(__a0)).*__f)) -> decltype((*std::__2::forward<_A0>(__a0)).*__f) { return (*std::__2::forward<_A0>(__a0)).*__f; } | |
template <class _Fp, class _A0, | |
class = __enable_if_bullet6<_Fp, _A0>> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr auto | |
__invoke_constexpr(_Fp&& __f, _A0&& __a0) | |
noexcept(noexcept((*std::__2::forward<_A0>(__a0)).*__f)) -> decltype((*std::__2::forward<_A0>(__a0)).*__f) { return (*std::__2::forward<_A0>(__a0)).*__f; } | |
template <class _Fp, class ..._Args> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
auto | |
__invoke(_Fp&& __f, _Args&& ...__args) | |
noexcept(noexcept(std::__2::forward<_Fp>(__f)(std::__2::forward<_Args>(__args)...))) -> decltype(std::__2::forward<_Fp>(__f)(std::__2::forward<_Args>(__args)...)) { return std::__2::forward<_Fp>(__f)(std::__2::forward<_Args>(__args)...); } | |
template <class _Fp, class ..._Args> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr auto | |
__invoke_constexpr(_Fp&& __f, _Args&& ...__args) | |
noexcept(noexcept(std::__2::forward<_Fp>(__f)(std::__2::forward<_Args>(__args)...))) -> decltype(std::__2::forward<_Fp>(__f)(std::__2::forward<_Args>(__args)...)) { return std::__2::forward<_Fp>(__f)(std::__2::forward<_Args>(__args)...); } | |
template <class _Ret, class _Fp, class ..._Args> | |
struct __invokable_r | |
{ | |
template <class _XFp, class ..._XArgs> | |
static auto __try_call(int) -> decltype( | |
std::__2::__invoke(std::__2::declval<_XFp>(), std::__2::declval<_XArgs>()...)); | |
template <class _XFp, class ..._XArgs> | |
static __nat __try_call(...); | |
using _Result = decltype(__try_call<_Fp, _Args...>(0)); | |
using type = | |
typename conditional< | |
_IsNotSame<_Result, __nat>::value, | |
typename conditional< | |
is_void<_Ret>::value, | |
true_type, | |
is_convertible<_Result, _Ret> | |
>::type, | |
false_type | |
>::type; | |
static const bool value = type::value; | |
}; | |
template <class _Fp, class ..._Args> | |
using __invokable = __invokable_r<void, _Fp, _Args...>; | |
template <bool _IsInvokable, bool _IsCVVoid, class _Ret, class _Fp, class ..._Args> | |
struct __nothrow_invokable_r_imp { | |
static const bool value = false; | |
}; | |
template <class _Ret, class _Fp, class ..._Args> | |
struct __nothrow_invokable_r_imp<true, false, _Ret, _Fp, _Args...> | |
{ | |
typedef __nothrow_invokable_r_imp _ThisT; | |
template <class _Tp> | |
static void __test_noexcept(_Tp) noexcept; | |
static const bool value = noexcept(_ThisT::__test_noexcept<_Ret>( | |
std::__2::__invoke(std::__2::declval<_Fp>(), std::__2::declval<_Args>()...))); | |
}; | |
template <class _Ret, class _Fp, class ..._Args> | |
struct __nothrow_invokable_r_imp<true, true, _Ret, _Fp, _Args...> | |
{ | |
static const bool value = noexcept( | |
std::__2::__invoke(std::__2::declval<_Fp>(), std::__2::declval<_Args>()...)); | |
}; | |
template <class _Ret, class _Fp, class ..._Args> | |
using __nothrow_invokable_r = | |
__nothrow_invokable_r_imp< | |
__invokable_r<_Ret, _Fp, _Args...>::value, | |
is_void<_Ret>::value, | |
_Ret, _Fp, _Args... | |
>; | |
template <class _Fp, class ..._Args> | |
using __nothrow_invokable = | |
__nothrow_invokable_r_imp< | |
__invokable<_Fp, _Args...>::value, | |
true, void, _Fp, _Args... | |
>; | |
template <class _Fp, class ..._Args> | |
struct __invoke_of | |
: public enable_if< | |
__invokable<_Fp, _Args...>::value, | |
typename __invokable_r<void, _Fp, _Args...>::_Result> | |
{ | |
}; | |
template <class _Callable> class result_of; | |
template <class _Fp, class ..._Args> | |
class __attribute__ ((__type_visibility__("default"))) result_of<_Fp(_Args...)> | |
: public __invoke_of<_Fp, _Args...> | |
{ | |
}; | |
# 3872 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> using result_of_t = typename result_of<_Tp>::type; | |
# 3926 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp> struct __is_swappable; | |
template <class _Tp> struct __is_nothrow_swappable; | |
template <class _ForwardIterator1, class _ForwardIterator2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_ForwardIterator2 | |
swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2); | |
template <class _Tp> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_move_constructible<_Tp>::value && | |
is_move_assignable<_Tp>::value | |
>::type | |
swap(_Tp& __x, _Tp& __y) noexcept(is_nothrow_move_constructible<_Tp>::value && is_nothrow_move_assignable<_Tp>::value) | |
{ | |
_Tp __t(std::__2::move(__x)); | |
__x = std::__2::move(__y); | |
__y = std::__2::move(__t); | |
} | |
template<class _Tp, size_t _Np> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if< | |
__is_swappable<_Tp>::value | |
>::type | |
swap(_Tp (&__a)[_Np], _Tp (&__b)[_Np]) noexcept(__is_nothrow_swappable<_Tp>::value) | |
{ | |
std::__2::swap_ranges(__a, __a + _Np, __b); | |
} | |
template <class _ForwardIterator1, class _ForwardIterator2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_ForwardIterator2 | |
swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2) | |
{ | |
for(; __first1 != __last1; ++__first1, (void) ++__first2) | |
swap(*__first1, *__first2); | |
return __first2; | |
} | |
template <class _ForwardIterator1, class _ForwardIterator2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) | |
noexcept(noexcept(swap(*std::__2::declval<_ForwardIterator1>(), *std::__2::declval<_ForwardIterator2>()))) | |
{ | |
swap(*__a, *__b); | |
} | |
namespace __detail | |
{ | |
template <class _Tp, class _Up = _Tp, | |
bool _NotVoid = !is_void<_Tp>::value && !is_void<_Up>::value> | |
struct __swappable_with | |
{ | |
template <class _LHS, class _RHS> | |
static decltype(swap(std::__2::declval<_LHS>(), std::__2::declval<_RHS>())) | |
__test_swap(int); | |
template <class, class> | |
static __nat __test_swap(long); | |
typedef decltype((__test_swap<_Tp, _Up>(0))) __swap1; | |
typedef decltype((__test_swap<_Up, _Tp>(0))) __swap2; | |
static const bool value = _IsNotSame<__swap1, __nat>::value | |
&& _IsNotSame<__swap2, __nat>::value; | |
}; | |
template <class _Tp, class _Up> | |
struct __swappable_with<_Tp, _Up, false> : false_type {}; | |
template <class _Tp, class _Up = _Tp, bool _Swappable = __swappable_with<_Tp, _Up>::value> | |
struct __nothrow_swappable_with { | |
static const bool value = | |
noexcept(swap(std::__2::declval<_Tp>(), std::__2::declval<_Up>())) | |
&& noexcept(swap(std::__2::declval<_Up>(), std::__2::declval<_Tp>())); | |
}; | |
template <class _Tp, class _Up> | |
struct __nothrow_swappable_with<_Tp, _Up, false> : false_type {}; | |
} | |
template <class _Tp> | |
struct __is_swappable | |
: public integral_constant<bool, __detail::__swappable_with<_Tp&>::value> | |
{ | |
}; | |
template <class _Tp> | |
struct __is_nothrow_swappable | |
: public integral_constant<bool, __detail::__nothrow_swappable_with<_Tp&>::value> | |
{ | |
}; | |
# 4100 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
template <class _Tp, bool = is_enum<_Tp>::value> struct __underlying_type_impl; | |
template <class _Tp> | |
struct __underlying_type_impl<_Tp, false> {}; | |
template <class _Tp> | |
struct __underlying_type_impl<_Tp, true> | |
{ | |
typedef __underlying_type(_Tp) type; | |
}; | |
template <class _Tp> | |
struct underlying_type : __underlying_type_impl<_Tp, is_enum<_Tp>::value> {}; | |
template <class _Tp> using underlying_type_t = typename underlying_type<_Tp>::type; | |
template <class _Tp, bool = is_enum<_Tp>::value> | |
struct __sfinae_underlying_type | |
{ | |
typedef typename underlying_type<_Tp>::type type; | |
typedef decltype(((type)1) + 0) __promoted_type; | |
}; | |
template <class _Tp> | |
struct __sfinae_underlying_type<_Tp, false> {}; | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
int __convert_to_integral(int __val) { return __val; } | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
unsigned __convert_to_integral(unsigned __val) { return __val; } | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
long __convert_to_integral(long __val) { return __val; } | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
unsigned long __convert_to_integral(unsigned long __val) { return __val; } | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
long long __convert_to_integral(long long __val) { return __val; } | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
unsigned long long __convert_to_integral(unsigned long long __val) {return __val; } | |
template<typename _Fp> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
typename enable_if<is_floating_point<_Fp>::value, long long>::type | |
__convert_to_integral(_Fp __val) { return __val; } | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
__int128_t __convert_to_integral(__int128_t __val) { return __val; } | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
__uint128_t __convert_to_integral(__uint128_t __val) { return __val; } | |
template <class _Tp> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
typename __sfinae_underlying_type<_Tp>::__promoted_type | |
__convert_to_integral(_Tp __val) { return __val; } | |
template <class _Tp> | |
struct __has_operator_addressof_member_imp | |
{ | |
template <class _Up> | |
static auto __test(int) | |
-> typename __select_2nd<decltype(std::__2::declval<_Up>().operator&()), true_type>::type; | |
template <class> | |
static auto __test(long) -> false_type; | |
static const bool value = decltype(__test<_Tp>(0))::value; | |
}; | |
template <class _Tp> | |
struct __has_operator_addressof_free_imp | |
{ | |
template <class _Up> | |
static auto __test(int) | |
-> typename __select_2nd<decltype(operator&(std::__2::declval<_Up>())), true_type>::type; | |
template <class> | |
static auto __test(long) -> false_type; | |
static const bool value = decltype(__test<_Tp>(0))::value; | |
}; | |
template <class _Tp> | |
struct __has_operator_addressof | |
: public integral_constant<bool, __has_operator_addressof_member_imp<_Tp>::value | |
|| __has_operator_addressof_free_imp<_Tp>::value> | |
{}; | |
# 4239 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
struct __extract_key_fail_tag {}; | |
struct __extract_key_self_tag {}; | |
struct __extract_key_first_tag {}; | |
template <class _ValTy, class _Key, | |
class _RawValTy = typename __unconstref<_ValTy>::type> | |
struct __can_extract_key | |
: conditional<_IsSame<_RawValTy, _Key>::value, __extract_key_self_tag, | |
__extract_key_fail_tag>::type {}; | |
template <class _Pair, class _Key, class _First, class _Second> | |
struct __can_extract_key<_Pair, _Key, pair<_First, _Second> > | |
: conditional<_IsSame<typename remove_const<_First>::type, _Key>::value, | |
__extract_key_first_tag, __extract_key_fail_tag>::type {}; | |
template <class _ValTy, class _Key, class _ContainerValueTy, | |
class _RawValTy = typename __unconstref<_ValTy>::type> | |
struct __can_extract_map_key | |
: integral_constant<bool, _IsSame<_RawValTy, _Key>::value> {}; | |
template <class _ValTy, class _Key, class _RawValTy> | |
struct __can_extract_map_key<_ValTy, _Key, _Key, _RawValTy> | |
: false_type {}; | |
# 4276 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 | |
inline constexpr | |
bool __libcpp_is_constant_evaluated() noexcept { return __builtin_is_constant_evaluated(); } | |
template <class _CharT> | |
using _IsCharLikeType = _And<is_standard_layout<_CharT>, is_trivial<_CharT> >; | |
} } | |
# 830 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/chrono" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/ratio" 1 3 | |
# 80 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/ratio" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 81 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/ratio" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstdint" 1 3 | |
# 143 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstdint" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 144 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstdint" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/stdint.h" 1 3 | |
# 106 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/stdint.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 107 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/stdint.h" 2 3 | |
# 110 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/stdint.h" 3 | |
# 123 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/stdint.h" 3 | |
# 1 "/home/azakai/Dev/llvm-project/build/lib/clang/13.0.0/include/stdint.h" 1 3 | |
# 52 "/home/azakai/Dev/llvm-project/build/lib/clang/13.0.0/include/stdint.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/stdint.h" 1 3 | |
# 20 "/home/azakai/Dev/emscripten/cache/sysroot/include/stdint.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 1 3 | |
# 133 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef unsigned long int uintptr_t; | |
# 148 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef long int intptr_t; | |
# 164 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef signed char int8_t; | |
typedef short int16_t; | |
typedef int int32_t; | |
typedef long long int int64_t; | |
typedef long long int intmax_t; | |
typedef unsigned char uint8_t; | |
typedef unsigned short uint16_t; | |
typedef unsigned int uint32_t; | |
typedef unsigned long long int uint64_t; | |
# 214 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef unsigned long long int uintmax_t; | |
# 21 "/home/azakai/Dev/emscripten/cache/sysroot/include/stdint.h" 2 3 | |
typedef int8_t int_fast8_t; | |
typedef int64_t int_fast64_t; | |
typedef int8_t int_least8_t; | |
typedef int16_t int_least16_t; | |
typedef int32_t int_least32_t; | |
typedef int64_t int_least64_t; | |
typedef uint8_t uint_fast8_t; | |
typedef uint64_t uint_fast64_t; | |
typedef uint8_t uint_least8_t; | |
typedef uint16_t uint_least16_t; | |
typedef uint32_t uint_least32_t; | |
typedef uint64_t uint_least64_t; | |
# 95 "/home/azakai/Dev/emscripten/cache/sysroot/include/stdint.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/stdint.h" 1 3 | |
typedef int32_t int_fast16_t; | |
typedef int32_t int_fast32_t; | |
typedef uint32_t uint_fast16_t; | |
typedef uint32_t uint_fast32_t; | |
# 96 "/home/azakai/Dev/emscripten/cache/sysroot/include/stdint.h" 2 3 | |
# 53 "/home/azakai/Dev/llvm-project/build/lib/clang/13.0.0/include/stdint.h" 2 3 | |
# 124 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/stdint.h" 2 3 | |
# 145 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstdint" 2 3 | |
# 148 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstdint" 3 | |
namespace std { inline namespace __2 { | |
using::int8_t; | |
using::int16_t; | |
using::int32_t; | |
using::int64_t; | |
using::uint8_t; | |
using::uint16_t; | |
using::uint32_t; | |
using::uint64_t; | |
using::int_least8_t; | |
using::int_least16_t; | |
using::int_least32_t; | |
using::int_least64_t; | |
using::uint_least8_t; | |
using::uint_least16_t; | |
using::uint_least32_t; | |
using::uint_least64_t; | |
using::int_fast8_t; | |
using::int_fast16_t; | |
using::int_fast32_t; | |
using::int_fast64_t; | |
using::uint_fast8_t; | |
using::uint_fast16_t; | |
using::uint_fast32_t; | |
using::uint_fast64_t; | |
using::intptr_t; | |
using::uintptr_t; | |
using::intmax_t; | |
using::uintmax_t; | |
} } | |
# 82 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/ratio" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/climits" 1 3 | |
# 40 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/climits" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 41 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/climits" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/limits.h" 1 3 | |
# 40 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/limits.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 41 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/limits.h" 2 3 | |
# 44 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/limits.h" 3 | |
# 57 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/limits.h" 3 | |
# 1 "/home/azakai/Dev/llvm-project/build/lib/clang/13.0.0/include/limits.h" 1 3 | |
# 21 "/home/azakai/Dev/llvm-project/build/lib/clang/13.0.0/include/limits.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/limits.h" 1 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/limits.h" 1 3 | |
# 9 "/home/azakai/Dev/emscripten/cache/sysroot/include/limits.h" 2 3 | |
# 22 "/home/azakai/Dev/llvm-project/build/lib/clang/13.0.0/include/limits.h" 2 3 | |
# 58 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/limits.h" 2 3 | |
# 42 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/climits" 2 3 | |
# 45 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/climits" 3 | |
# 83 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/ratio" 2 3 | |
# 87 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/ratio" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__undef_macros" 1 3 | |
# 91 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/ratio" 2 3 | |
namespace std { inline namespace __2 { | |
template <intmax_t _Xp, intmax_t _Yp> | |
struct __static_gcd | |
{ | |
static const intmax_t value = __static_gcd<_Yp, _Xp % _Yp>::value; | |
}; | |
template <intmax_t _Xp> | |
struct __static_gcd<_Xp, 0> | |
{ | |
static const intmax_t value = _Xp; | |
}; | |
template <> | |
struct __static_gcd<0, 0> | |
{ | |
static const intmax_t value = 1; | |
}; | |
template <intmax_t _Xp, intmax_t _Yp> | |
struct __static_lcm | |
{ | |
static const intmax_t value = _Xp / __static_gcd<_Xp, _Yp>::value * _Yp; | |
}; | |
template <intmax_t _Xp> | |
struct __static_abs | |
{ | |
static const intmax_t value = _Xp < 0 ? -_Xp : _Xp; | |
}; | |
template <intmax_t _Xp> | |
struct __static_sign | |
{ | |
static const intmax_t value = _Xp == 0 ? 0 : (_Xp < 0 ? -1 : 1); | |
}; | |
template <intmax_t _Xp, intmax_t _Yp, intmax_t = __static_sign<_Yp>::value> | |
class __ll_add; | |
template <intmax_t _Xp, intmax_t _Yp> | |
class __ll_add<_Xp, _Yp, 1> | |
{ | |
static const intmax_t min = (1LL << (sizeof(intmax_t) * 8 - 1)) + 1; | |
static const intmax_t max = -min; | |
static_assert(_Xp <= max - _Yp, "overflow in __ll_add"); | |
public: | |
static const intmax_t value = _Xp + _Yp; | |
}; | |
template <intmax_t _Xp, intmax_t _Yp> | |
class __ll_add<_Xp, _Yp, 0> | |
{ | |
public: | |
static const intmax_t value = _Xp; | |
}; | |
template <intmax_t _Xp, intmax_t _Yp> | |
class __ll_add<_Xp, _Yp, -1> | |
{ | |
static const intmax_t min = (1LL << (sizeof(intmax_t) * 8 - 1)) + 1; | |
static const intmax_t max = -min; | |
static_assert(min - _Yp <= _Xp, "overflow in __ll_add"); | |
public: | |
static const intmax_t value = _Xp + _Yp; | |
}; | |
template <intmax_t _Xp, intmax_t _Yp, intmax_t = __static_sign<_Yp>::value> | |
class __ll_sub; | |
template <intmax_t _Xp, intmax_t _Yp> | |
class __ll_sub<_Xp, _Yp, 1> | |
{ | |
static const intmax_t min = (1LL << (sizeof(intmax_t) * 8 - 1)) + 1; | |
static const intmax_t max = -min; | |
static_assert(min + _Yp <= _Xp, "overflow in __ll_sub"); | |
public: | |
static const intmax_t value = _Xp - _Yp; | |
}; | |
template <intmax_t _Xp, intmax_t _Yp> | |
class __ll_sub<_Xp, _Yp, 0> | |
{ | |
public: | |
static const intmax_t value = _Xp; | |
}; | |
template <intmax_t _Xp, intmax_t _Yp> | |
class __ll_sub<_Xp, _Yp, -1> | |
{ | |
static const intmax_t min = (1LL << (sizeof(intmax_t) * 8 - 1)) + 1; | |
static const intmax_t max = -min; | |
static_assert(_Xp <= max + _Yp, "overflow in __ll_sub"); | |
public: | |
static const intmax_t value = _Xp - _Yp; | |
}; | |
template <intmax_t _Xp, intmax_t _Yp> | |
class __ll_mul | |
{ | |
static const intmax_t nan = (1LL << (sizeof(intmax_t) * 8 - 1)); | |
static const intmax_t min = nan + 1; | |
static const intmax_t max = -min; | |
static const intmax_t __a_x = __static_abs<_Xp>::value; | |
static const intmax_t __a_y = __static_abs<_Yp>::value; | |
static_assert(_Xp != nan && _Yp != nan && __a_x <= max / __a_y, "overflow in __ll_mul"); | |
public: | |
static const intmax_t value = _Xp * _Yp; | |
}; | |
template <intmax_t _Yp> | |
class __ll_mul<0, _Yp> | |
{ | |
public: | |
static const intmax_t value = 0; | |
}; | |
template <intmax_t _Xp> | |
class __ll_mul<_Xp, 0> | |
{ | |
public: | |
static const intmax_t value = 0; | |
}; | |
template <> | |
class __ll_mul<0, 0> | |
{ | |
public: | |
static const intmax_t value = 0; | |
}; | |
template <intmax_t _Xp, intmax_t _Yp> | |
class __ll_div | |
{ | |
static const intmax_t nan = (1LL << (sizeof(intmax_t) * 8 - 1)); | |
static const intmax_t min = nan + 1; | |
static const intmax_t max = -min; | |
static_assert(_Xp != nan && _Yp != nan && _Yp != 0, "overflow in __ll_div"); | |
public: | |
static const intmax_t value = _Xp / _Yp; | |
}; | |
template <intmax_t _Num, intmax_t _Den = 1> | |
class __attribute__ ((__type_visibility__("default"))) ratio | |
{ | |
static_assert(__static_abs<_Num>::value >= 0, "ratio numerator is out of range"); | |
static_assert(_Den != 0, "ratio divide by 0"); | |
static_assert(__static_abs<_Den>::value > 0, "ratio denominator is out of range"); | |
static constexpr const intmax_t __na = __static_abs<_Num>::value; | |
static constexpr const intmax_t __da = __static_abs<_Den>::value; | |
static constexpr const intmax_t __s = __static_sign<_Num>::value * __static_sign<_Den>::value; | |
static constexpr const intmax_t __gcd = __static_gcd<__na, __da>::value; | |
public: | |
static constexpr const intmax_t num = __s * __na / __gcd; | |
static constexpr const intmax_t den = __da / __gcd; | |
typedef ratio<num, den> type; | |
}; | |
template <intmax_t _Num, intmax_t _Den> | |
constexpr const intmax_t ratio<_Num, _Den>::num; | |
template <intmax_t _Num, intmax_t _Den> | |
constexpr const intmax_t ratio<_Num, _Den>::den; | |
template <class _Tp> struct __is_ratio : false_type {}; | |
template <intmax_t _Num, intmax_t _Den> struct __is_ratio<ratio<_Num, _Den> > : true_type {}; | |
typedef ratio<1LL, 1000000000000000000LL> atto; | |
typedef ratio<1LL, 1000000000000000LL> femto; | |
typedef ratio<1LL, 1000000000000LL> pico; | |
typedef ratio<1LL, 1000000000LL> nano; | |
typedef ratio<1LL, 1000000LL> micro; | |
typedef ratio<1LL, 1000LL> milli; | |
typedef ratio<1LL, 100LL> centi; | |
typedef ratio<1LL, 10LL> deci; | |
typedef ratio< 10LL, 1LL> deca; | |
typedef ratio< 100LL, 1LL> hecto; | |
typedef ratio< 1000LL, 1LL> kilo; | |
typedef ratio< 1000000LL, 1LL> mega; | |
typedef ratio< 1000000000LL, 1LL> giga; | |
typedef ratio< 1000000000000LL, 1LL> tera; | |
typedef ratio< 1000000000000000LL, 1LL> peta; | |
typedef ratio<1000000000000000000LL, 1LL> exa; | |
template <class _R1, class _R2> | |
struct __ratio_multiply | |
{ | |
private: | |
static const intmax_t __gcd_n1_d2 = __static_gcd<_R1::num, _R2::den>::value; | |
static const intmax_t __gcd_d1_n2 = __static_gcd<_R1::den, _R2::num>::value; | |
public: | |
typedef typename ratio | |
< | |
__ll_mul<_R1::num / __gcd_n1_d2, _R2::num / __gcd_d1_n2>::value, | |
__ll_mul<_R2::den / __gcd_n1_d2, _R1::den / __gcd_d1_n2>::value | |
>::type type; | |
}; | |
template <class _R1, class _R2> using ratio_multiply | |
= typename __ratio_multiply<_R1, _R2>::type; | |
# 317 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/ratio" 3 | |
template <class _R1, class _R2> | |
struct __ratio_divide | |
{ | |
private: | |
static const intmax_t __gcd_n1_n2 = __static_gcd<_R1::num, _R2::num>::value; | |
static const intmax_t __gcd_d1_d2 = __static_gcd<_R1::den, _R2::den>::value; | |
public: | |
typedef typename ratio | |
< | |
__ll_mul<_R1::num / __gcd_n1_n2, _R2::den / __gcd_d1_d2>::value, | |
__ll_mul<_R2::num / __gcd_n1_n2, _R1::den / __gcd_d1_d2>::value | |
>::type type; | |
}; | |
template <class _R1, class _R2> using ratio_divide | |
= typename __ratio_divide<_R1, _R2>::type; | |
# 344 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/ratio" 3 | |
template <class _R1, class _R2> | |
struct __ratio_add | |
{ | |
private: | |
static const intmax_t __gcd_n1_n2 = __static_gcd<_R1::num, _R2::num>::value; | |
static const intmax_t __gcd_d1_d2 = __static_gcd<_R1::den, _R2::den>::value; | |
public: | |
typedef typename ratio_multiply | |
< | |
ratio<__gcd_n1_n2, _R1::den / __gcd_d1_d2>, | |
ratio | |
< | |
__ll_add | |
< | |
__ll_mul<_R1::num / __gcd_n1_n2, _R2::den / __gcd_d1_d2>::value, | |
__ll_mul<_R2::num / __gcd_n1_n2, _R1::den / __gcd_d1_d2>::value | |
>::value, | |
_R2::den | |
> | |
>::type type; | |
}; | |
template <class _R1, class _R2> using ratio_add | |
= typename __ratio_add<_R1, _R2>::type; | |
# 379 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/ratio" 3 | |
template <class _R1, class _R2> | |
struct __ratio_subtract | |
{ | |
private: | |
static const intmax_t __gcd_n1_n2 = __static_gcd<_R1::num, _R2::num>::value; | |
static const intmax_t __gcd_d1_d2 = __static_gcd<_R1::den, _R2::den>::value; | |
public: | |
typedef typename ratio_multiply | |
< | |
ratio<__gcd_n1_n2, _R1::den / __gcd_d1_d2>, | |
ratio | |
< | |
__ll_sub | |
< | |
__ll_mul<_R1::num / __gcd_n1_n2, _R2::den / __gcd_d1_d2>::value, | |
__ll_mul<_R2::num / __gcd_n1_n2, _R1::den / __gcd_d1_d2>::value | |
>::value, | |
_R2::den | |
> | |
>::type type; | |
}; | |
template <class _R1, class _R2> using ratio_subtract | |
= typename __ratio_subtract<_R1, _R2>::type; | |
# 416 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/ratio" 3 | |
template <class _R1, class _R2> | |
struct __attribute__ ((__type_visibility__("default"))) ratio_equal | |
: public integral_constant<bool,((_R1::num == _R2::num && _R1::den == _R2::den))> {}; | |
template <class _R1, class _R2> | |
struct __attribute__ ((__type_visibility__("default"))) ratio_not_equal | |
: public integral_constant<bool,((!ratio_equal<_R1, _R2>::value))> {}; | |
template <class _R1, class _R2, bool _Odd = false, | |
intmax_t _Q1 = _R1::num / _R1::den, intmax_t _M1 = _R1::num % _R1::den, | |
intmax_t _Q2 = _R2::num / _R2::den, intmax_t _M2 = _R2::num % _R2::den> | |
struct __ratio_less1 | |
{ | |
static const bool value = _Odd ? _Q2 < _Q1 : _Q1 < _Q2; | |
}; | |
template <class _R1, class _R2, bool _Odd, intmax_t _Qp> | |
struct __ratio_less1<_R1, _R2, _Odd, _Qp, 0, _Qp, 0> | |
{ | |
static const bool value = false; | |
}; | |
template <class _R1, class _R2, bool _Odd, intmax_t _Qp, intmax_t _M2> | |
struct __ratio_less1<_R1, _R2, _Odd, _Qp, 0, _Qp, _M2> | |
{ | |
static const bool value = !_Odd; | |
}; | |
template <class _R1, class _R2, bool _Odd, intmax_t _Qp, intmax_t _M1> | |
struct __ratio_less1<_R1, _R2, _Odd, _Qp, _M1, _Qp, 0> | |
{ | |
static const bool value = _Odd; | |
}; | |
template <class _R1, class _R2, bool _Odd, intmax_t _Qp, intmax_t _M1, | |
intmax_t _M2> | |
struct __ratio_less1<_R1, _R2, _Odd, _Qp, _M1, _Qp, _M2> | |
{ | |
static const bool value = __ratio_less1<ratio<_R1::den, _M1>, | |
ratio<_R2::den, _M2>, !_Odd>::value; | |
}; | |
template <class _R1, class _R2, intmax_t _S1 = __static_sign<_R1::num>::value, | |
intmax_t _S2 = __static_sign<_R2::num>::value> | |
struct __ratio_less | |
{ | |
static const bool value = _S1 < _S2; | |
}; | |
template <class _R1, class _R2> | |
struct __ratio_less<_R1, _R2, 1LL, 1LL> | |
{ | |
static const bool value = __ratio_less1<_R1, _R2>::value; | |
}; | |
template <class _R1, class _R2> | |
struct __ratio_less<_R1, _R2, -1LL, -1LL> | |
{ | |
static const bool value = __ratio_less1<ratio<-_R2::num, _R2::den>, ratio<-_R1::num, _R1::den> >::value; | |
}; | |
template <class _R1, class _R2> | |
struct __attribute__ ((__type_visibility__("default"))) ratio_less | |
: public integral_constant<bool,((__ratio_less<_R1, _R2>::value))> {}; | |
template <class _R1, class _R2> | |
struct __attribute__ ((__type_visibility__("default"))) ratio_less_equal | |
: public integral_constant<bool,((!ratio_less<_R2, _R1>::value))> {}; | |
template <class _R1, class _R2> | |
struct __attribute__ ((__type_visibility__("default"))) ratio_greater | |
: public integral_constant<bool,((ratio_less<_R2, _R1>::value))> {}; | |
template <class _R1, class _R2> | |
struct __attribute__ ((__type_visibility__("default"))) ratio_greater_equal | |
: public integral_constant<bool,((!ratio_less<_R1, _R2>::value))> {}; | |
template <class _R1, class _R2> | |
struct __ratio_gcd | |
{ | |
typedef ratio<__static_gcd<_R1::num, _R2::num>::value, | |
__static_lcm<_R1::den, _R2::den>::value> type; | |
}; | |
# 528 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/ratio" 3 | |
} } | |
# 831 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/chrono" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/limits" 1 3 | |
# 104 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/limits" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 105 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/limits" 2 3 | |
# 117 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/limits" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__undef_macros" 1 3 | |
# 121 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/limits" 2 3 | |
namespace std { inline namespace __2 { | |
enum float_round_style | |
{ | |
round_indeterminate = -1, | |
round_toward_zero = 0, | |
round_to_nearest = 1, | |
round_toward_infinity = 2, | |
round_toward_neg_infinity = 3 | |
}; | |
enum float_denorm_style | |
{ | |
denorm_indeterminate = -1, | |
denorm_absent = 0, | |
denorm_present = 1 | |
}; | |
template <class _Tp, bool = is_arithmetic<_Tp>::value> | |
class __libcpp_numeric_limits | |
{ | |
protected: | |
typedef _Tp type; | |
static constexpr const bool is_specialized = false; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return type();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return type();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return type();} | |
static constexpr const int digits = 0; | |
static constexpr const int digits10 = 0; | |
static constexpr const int max_digits10 = 0; | |
static constexpr const bool is_signed = false; | |
static constexpr const bool is_integer = false; | |
static constexpr const bool is_exact = false; | |
static constexpr const int radix = 0; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return type();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return type();} | |
static constexpr const int min_exponent = 0; | |
static constexpr const int min_exponent10 = 0; | |
static constexpr const int max_exponent = 0; | |
static constexpr const int max_exponent10 = 0; | |
static constexpr const bool has_infinity = false; | |
static constexpr const bool has_quiet_NaN = false; | |
static constexpr const bool has_signaling_NaN = false; | |
static constexpr const float_denorm_style has_denorm = denorm_absent; | |
static constexpr const bool has_denorm_loss = false; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return type();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return type();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return type();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return type();} | |
static constexpr const bool is_iec559 = false; | |
static constexpr const bool is_bounded = false; | |
static constexpr const bool is_modulo = false; | |
static constexpr const bool traps = false; | |
static constexpr const bool tinyness_before = false; | |
static constexpr const float_round_style round_style = round_toward_zero; | |
}; | |
template <class _Tp, int __digits, bool _IsSigned> | |
struct __libcpp_compute_min | |
{ | |
static constexpr const _Tp value = _Tp(_Tp(1) << __digits); | |
}; | |
template <class _Tp, int __digits> | |
struct __libcpp_compute_min<_Tp, __digits, false> | |
{ | |
static constexpr const _Tp value = _Tp(0); | |
}; | |
template <class _Tp> | |
class __libcpp_numeric_limits<_Tp, true> | |
{ | |
protected: | |
typedef _Tp type; | |
static constexpr const bool is_specialized = true; | |
static constexpr const bool is_signed = type(-1) < type(0); | |
static constexpr const int digits = static_cast<int>(sizeof(type) * 8 - is_signed); | |
static constexpr const int digits10 = digits * 3 / 10; | |
static constexpr const int max_digits10 = 0; | |
static constexpr const type __min = __libcpp_compute_min<type, digits, is_signed>::value; | |
static constexpr const type __max = is_signed ? type(type(~0) ^ __min) : type(~0); | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return __min;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return __max;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return min();} | |
static constexpr const bool is_integer = true; | |
static constexpr const bool is_exact = true; | |
static constexpr const int radix = 2; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return type(0);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return type(0);} | |
static constexpr const int min_exponent = 0; | |
static constexpr const int min_exponent10 = 0; | |
static constexpr const int max_exponent = 0; | |
static constexpr const int max_exponent10 = 0; | |
static constexpr const bool has_infinity = false; | |
static constexpr const bool has_quiet_NaN = false; | |
static constexpr const bool has_signaling_NaN = false; | |
static constexpr const float_denorm_style has_denorm = denorm_absent; | |
static constexpr const bool has_denorm_loss = false; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return type(0);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return type(0);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return type(0);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return type(0);} | |
static constexpr const bool is_iec559 = false; | |
static constexpr const bool is_bounded = true; | |
static constexpr const bool is_modulo = !std::__2::is_signed<_Tp>::value; | |
static constexpr const bool traps = true; | |
static constexpr const bool tinyness_before = false; | |
static constexpr const float_round_style round_style = round_toward_zero; | |
}; | |
template <> | |
class __libcpp_numeric_limits<bool, true> | |
{ | |
protected: | |
typedef bool type; | |
static constexpr const bool is_specialized = true; | |
static constexpr const bool is_signed = false; | |
static constexpr const int digits = 1; | |
static constexpr const int digits10 = 0; | |
static constexpr const int max_digits10 = 0; | |
static constexpr const type __min = false; | |
static constexpr const type __max = true; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return __min;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return __max;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return min();} | |
static constexpr const bool is_integer = true; | |
static constexpr const bool is_exact = true; | |
static constexpr const int radix = 2; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return type(0);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return type(0);} | |
static constexpr const int min_exponent = 0; | |
static constexpr const int min_exponent10 = 0; | |
static constexpr const int max_exponent = 0; | |
static constexpr const int max_exponent10 = 0; | |
static constexpr const bool has_infinity = false; | |
static constexpr const bool has_quiet_NaN = false; | |
static constexpr const bool has_signaling_NaN = false; | |
static constexpr const float_denorm_style has_denorm = denorm_absent; | |
static constexpr const bool has_denorm_loss = false; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return type(0);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return type(0);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return type(0);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return type(0);} | |
static constexpr const bool is_iec559 = false; | |
static constexpr const bool is_bounded = true; | |
static constexpr const bool is_modulo = false; | |
static constexpr const bool traps = false; | |
static constexpr const bool tinyness_before = false; | |
static constexpr const float_round_style round_style = round_toward_zero; | |
}; | |
template <> | |
class __libcpp_numeric_limits<float, true> | |
{ | |
protected: | |
typedef float type; | |
static constexpr const bool is_specialized = true; | |
static constexpr const bool is_signed = true; | |
static constexpr const int digits = 24; | |
static constexpr const int digits10 = 6; | |
static constexpr const int max_digits10 = 2+(digits * 30103l)/100000l; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return 1.17549435e-38F;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return 3.40282347e+38F;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return -max();} | |
static constexpr const bool is_integer = false; | |
static constexpr const bool is_exact = false; | |
static constexpr const int radix = 2; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return 1.19209290e-7F;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return 0.5F;} | |
static constexpr const int min_exponent = (-125); | |
static constexpr const int min_exponent10 = (-37); | |
static constexpr const int max_exponent = 128; | |
static constexpr const int max_exponent10 = 38; | |
static constexpr const bool has_infinity = true; | |
static constexpr const bool has_quiet_NaN = true; | |
static constexpr const bool has_signaling_NaN = true; | |
static constexpr const float_denorm_style has_denorm = denorm_present; | |
static constexpr const bool has_denorm_loss = false; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return __builtin_huge_valf();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return __builtin_nanf("");} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return __builtin_nansf("");} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return 1.40129846e-45F;} | |
static constexpr const bool is_iec559 = true; | |
static constexpr const bool is_bounded = true; | |
static constexpr const bool is_modulo = false; | |
static constexpr const bool traps = false; | |
static constexpr const bool tinyness_before = false; | |
static constexpr const float_round_style round_style = round_to_nearest; | |
}; | |
template <> | |
class __libcpp_numeric_limits<double, true> | |
{ | |
protected: | |
typedef double type; | |
static constexpr const bool is_specialized = true; | |
static constexpr const bool is_signed = true; | |
static constexpr const int digits = 53; | |
static constexpr const int digits10 = 15; | |
static constexpr const int max_digits10 = 2+(digits * 30103l)/100000l; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return 2.2250738585072014e-308;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return 1.7976931348623157e+308;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return -max();} | |
static constexpr const bool is_integer = false; | |
static constexpr const bool is_exact = false; | |
static constexpr const int radix = 2; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return 2.2204460492503131e-16;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return 0.5;} | |
static constexpr const int min_exponent = (-1021); | |
static constexpr const int min_exponent10 = (-307); | |
static constexpr const int max_exponent = 1024; | |
static constexpr const int max_exponent10 = 308; | |
static constexpr const bool has_infinity = true; | |
static constexpr const bool has_quiet_NaN = true; | |
static constexpr const bool has_signaling_NaN = true; | |
static constexpr const float_denorm_style has_denorm = denorm_present; | |
static constexpr const bool has_denorm_loss = false; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return __builtin_huge_val();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return __builtin_nan("");} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return __builtin_nans("");} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return 4.9406564584124654e-324;} | |
static constexpr const bool is_iec559 = true; | |
static constexpr const bool is_bounded = true; | |
static constexpr const bool is_modulo = false; | |
static constexpr const bool traps = false; | |
static constexpr const bool tinyness_before = false; | |
static constexpr const float_round_style round_style = round_to_nearest; | |
}; | |
template <> | |
class __libcpp_numeric_limits<long double, true> | |
{ | |
protected: | |
typedef long double type; | |
static constexpr const bool is_specialized = true; | |
static constexpr const bool is_signed = true; | |
static constexpr const int digits = 113; | |
static constexpr const int digits10 = 33; | |
static constexpr const int max_digits10 = 2+(digits * 30103l)/100000l; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return 3.36210314311209350626267781732175260e-4932L;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return 1.18973149535723176508575932662800702e+4932L;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return -max();} | |
static constexpr const bool is_integer = false; | |
static constexpr const bool is_exact = false; | |
static constexpr const int radix = 2; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return 1.92592994438723585305597794258492732e-34L;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return 0.5L;} | |
static constexpr const int min_exponent = (-16381); | |
static constexpr const int min_exponent10 = (-4931); | |
static constexpr const int max_exponent = 16384; | |
static constexpr const int max_exponent10 = 4932; | |
static constexpr const bool has_infinity = true; | |
static constexpr const bool has_quiet_NaN = true; | |
static constexpr const bool has_signaling_NaN = true; | |
static constexpr const float_denorm_style has_denorm = denorm_present; | |
static constexpr const bool has_denorm_loss = false; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return __builtin_huge_vall();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return __builtin_nanl("");} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return __builtin_nansl("");} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return 6.47517511943802511092443895822764655e-4966L;} | |
static constexpr const bool is_iec559 = true; | |
static constexpr const bool is_bounded = true; | |
static constexpr const bool is_modulo = false; | |
static constexpr const bool traps = false; | |
static constexpr const bool tinyness_before = false; | |
static constexpr const float_round_style round_style = round_to_nearest; | |
}; | |
template <class _Tp> | |
class __attribute__ ((__type_visibility__("default"))) numeric_limits | |
: private __libcpp_numeric_limits<typename remove_cv<_Tp>::type> | |
{ | |
typedef __libcpp_numeric_limits<typename remove_cv<_Tp>::type> __base; | |
typedef typename __base::type type; | |
public: | |
static constexpr const bool is_specialized = __base::is_specialized; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return __base::min();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return __base::max();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return __base::lowest();} | |
static constexpr const int digits = __base::digits; | |
static constexpr const int digits10 = __base::digits10; | |
static constexpr const int max_digits10 = __base::max_digits10; | |
static constexpr const bool is_signed = __base::is_signed; | |
static constexpr const bool is_integer = __base::is_integer; | |
static constexpr const bool is_exact = __base::is_exact; | |
static constexpr const int radix = __base::radix; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return __base::epsilon();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return __base::round_error();} | |
static constexpr const int min_exponent = __base::min_exponent; | |
static constexpr const int min_exponent10 = __base::min_exponent10; | |
static constexpr const int max_exponent = __base::max_exponent; | |
static constexpr const int max_exponent10 = __base::max_exponent10; | |
static constexpr const bool has_infinity = __base::has_infinity; | |
static constexpr const bool has_quiet_NaN = __base::has_quiet_NaN; | |
static constexpr const bool has_signaling_NaN = __base::has_signaling_NaN; | |
static constexpr const float_denorm_style has_denorm = __base::has_denorm; | |
static constexpr const bool has_denorm_loss = __base::has_denorm_loss; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return __base::infinity();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return __base::quiet_NaN();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return __base::signaling_NaN();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return __base::denorm_min();} | |
static constexpr const bool is_iec559 = __base::is_iec559; | |
static constexpr const bool is_bounded = __base::is_bounded; | |
static constexpr const bool is_modulo = __base::is_modulo; | |
static constexpr const bool traps = __base::traps; | |
static constexpr const bool tinyness_before = __base::tinyness_before; | |
static constexpr const float_round_style round_style = __base::round_style; | |
}; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::is_specialized; | |
template <class _Tp> | |
constexpr const int numeric_limits<_Tp>::digits; | |
template <class _Tp> | |
constexpr const int numeric_limits<_Tp>::digits10; | |
template <class _Tp> | |
constexpr const int numeric_limits<_Tp>::max_digits10; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::is_signed; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::is_integer; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::is_exact; | |
template <class _Tp> | |
constexpr const int numeric_limits<_Tp>::radix; | |
template <class _Tp> | |
constexpr const int numeric_limits<_Tp>::min_exponent; | |
template <class _Tp> | |
constexpr const int numeric_limits<_Tp>::min_exponent10; | |
template <class _Tp> | |
constexpr const int numeric_limits<_Tp>::max_exponent; | |
template <class _Tp> | |
constexpr const int numeric_limits<_Tp>::max_exponent10; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::has_infinity; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::has_quiet_NaN; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::has_signaling_NaN; | |
template <class _Tp> | |
constexpr const float_denorm_style numeric_limits<_Tp>::has_denorm; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::has_denorm_loss; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::is_iec559; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::is_bounded; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::is_modulo; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::traps; | |
template <class _Tp> | |
constexpr const bool numeric_limits<_Tp>::tinyness_before; | |
template <class _Tp> | |
constexpr const float_round_style numeric_limits<_Tp>::round_style; | |
template <class _Tp> | |
class __attribute__ ((__type_visibility__("default"))) numeric_limits<const _Tp> | |
: private numeric_limits<_Tp> | |
{ | |
typedef numeric_limits<_Tp> __base; | |
typedef _Tp type; | |
public: | |
static constexpr const bool is_specialized = __base::is_specialized; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return __base::min();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return __base::max();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return __base::lowest();} | |
static constexpr const int digits = __base::digits; | |
static constexpr const int digits10 = __base::digits10; | |
static constexpr const int max_digits10 = __base::max_digits10; | |
static constexpr const bool is_signed = __base::is_signed; | |
static constexpr const bool is_integer = __base::is_integer; | |
static constexpr const bool is_exact = __base::is_exact; | |
static constexpr const int radix = __base::radix; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return __base::epsilon();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return __base::round_error();} | |
static constexpr const int min_exponent = __base::min_exponent; | |
static constexpr const int min_exponent10 = __base::min_exponent10; | |
static constexpr const int max_exponent = __base::max_exponent; | |
static constexpr const int max_exponent10 = __base::max_exponent10; | |
static constexpr const bool has_infinity = __base::has_infinity; | |
static constexpr const bool has_quiet_NaN = __base::has_quiet_NaN; | |
static constexpr const bool has_signaling_NaN = __base::has_signaling_NaN; | |
static constexpr const float_denorm_style has_denorm = __base::has_denorm; | |
static constexpr const bool has_denorm_loss = __base::has_denorm_loss; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return __base::infinity();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return __base::quiet_NaN();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return __base::signaling_NaN();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return __base::denorm_min();} | |
static constexpr const bool is_iec559 = __base::is_iec559; | |
static constexpr const bool is_bounded = __base::is_bounded; | |
static constexpr const bool is_modulo = __base::is_modulo; | |
static constexpr const bool traps = __base::traps; | |
static constexpr const bool tinyness_before = __base::tinyness_before; | |
static constexpr const float_round_style round_style = __base::round_style; | |
}; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::is_specialized; | |
template <class _Tp> | |
constexpr const int numeric_limits<const _Tp>::digits; | |
template <class _Tp> | |
constexpr const int numeric_limits<const _Tp>::digits10; | |
template <class _Tp> | |
constexpr const int numeric_limits<const _Tp>::max_digits10; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::is_signed; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::is_integer; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::is_exact; | |
template <class _Tp> | |
constexpr const int numeric_limits<const _Tp>::radix; | |
template <class _Tp> | |
constexpr const int numeric_limits<const _Tp>::min_exponent; | |
template <class _Tp> | |
constexpr const int numeric_limits<const _Tp>::min_exponent10; | |
template <class _Tp> | |
constexpr const int numeric_limits<const _Tp>::max_exponent; | |
template <class _Tp> | |
constexpr const int numeric_limits<const _Tp>::max_exponent10; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::has_infinity; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::has_quiet_NaN; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::has_signaling_NaN; | |
template <class _Tp> | |
constexpr const float_denorm_style numeric_limits<const _Tp>::has_denorm; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::has_denorm_loss; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::is_iec559; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::is_bounded; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::is_modulo; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::traps; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const _Tp>::tinyness_before; | |
template <class _Tp> | |
constexpr const float_round_style numeric_limits<const _Tp>::round_style; | |
template <class _Tp> | |
class __attribute__ ((__type_visibility__("default"))) numeric_limits<volatile _Tp> | |
: private numeric_limits<_Tp> | |
{ | |
typedef numeric_limits<_Tp> __base; | |
typedef _Tp type; | |
public: | |
static constexpr const bool is_specialized = __base::is_specialized; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return __base::min();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return __base::max();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return __base::lowest();} | |
static constexpr const int digits = __base::digits; | |
static constexpr const int digits10 = __base::digits10; | |
static constexpr const int max_digits10 = __base::max_digits10; | |
static constexpr const bool is_signed = __base::is_signed; | |
static constexpr const bool is_integer = __base::is_integer; | |
static constexpr const bool is_exact = __base::is_exact; | |
static constexpr const int radix = __base::radix; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return __base::epsilon();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return __base::round_error();} | |
static constexpr const int min_exponent = __base::min_exponent; | |
static constexpr const int min_exponent10 = __base::min_exponent10; | |
static constexpr const int max_exponent = __base::max_exponent; | |
static constexpr const int max_exponent10 = __base::max_exponent10; | |
static constexpr const bool has_infinity = __base::has_infinity; | |
static constexpr const bool has_quiet_NaN = __base::has_quiet_NaN; | |
static constexpr const bool has_signaling_NaN = __base::has_signaling_NaN; | |
static constexpr const float_denorm_style has_denorm = __base::has_denorm; | |
static constexpr const bool has_denorm_loss = __base::has_denorm_loss; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return __base::infinity();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return __base::quiet_NaN();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return __base::signaling_NaN();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return __base::denorm_min();} | |
static constexpr const bool is_iec559 = __base::is_iec559; | |
static constexpr const bool is_bounded = __base::is_bounded; | |
static constexpr const bool is_modulo = __base::is_modulo; | |
static constexpr const bool traps = __base::traps; | |
static constexpr const bool tinyness_before = __base::tinyness_before; | |
static constexpr const float_round_style round_style = __base::round_style; | |
}; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::is_specialized; | |
template <class _Tp> | |
constexpr const int numeric_limits<volatile _Tp>::digits; | |
template <class _Tp> | |
constexpr const int numeric_limits<volatile _Tp>::digits10; | |
template <class _Tp> | |
constexpr const int numeric_limits<volatile _Tp>::max_digits10; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::is_signed; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::is_integer; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::is_exact; | |
template <class _Tp> | |
constexpr const int numeric_limits<volatile _Tp>::radix; | |
template <class _Tp> | |
constexpr const int numeric_limits<volatile _Tp>::min_exponent; | |
template <class _Tp> | |
constexpr const int numeric_limits<volatile _Tp>::min_exponent10; | |
template <class _Tp> | |
constexpr const int numeric_limits<volatile _Tp>::max_exponent; | |
template <class _Tp> | |
constexpr const int numeric_limits<volatile _Tp>::max_exponent10; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::has_infinity; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::has_quiet_NaN; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::has_signaling_NaN; | |
template <class _Tp> | |
constexpr const float_denorm_style numeric_limits<volatile _Tp>::has_denorm; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::has_denorm_loss; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::is_iec559; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::is_bounded; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::is_modulo; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::traps; | |
template <class _Tp> | |
constexpr const bool numeric_limits<volatile _Tp>::tinyness_before; | |
template <class _Tp> | |
constexpr const float_round_style numeric_limits<volatile _Tp>::round_style; | |
template <class _Tp> | |
class __attribute__ ((__type_visibility__("default"))) numeric_limits<const volatile _Tp> | |
: private numeric_limits<_Tp> | |
{ | |
typedef numeric_limits<_Tp> __base; | |
typedef _Tp type; | |
public: | |
static constexpr const bool is_specialized = __base::is_specialized; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return __base::min();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return __base::max();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return __base::lowest();} | |
static constexpr const int digits = __base::digits; | |
static constexpr const int digits10 = __base::digits10; | |
static constexpr const int max_digits10 = __base::max_digits10; | |
static constexpr const bool is_signed = __base::is_signed; | |
static constexpr const bool is_integer = __base::is_integer; | |
static constexpr const bool is_exact = __base::is_exact; | |
static constexpr const int radix = __base::radix; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return __base::epsilon();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return __base::round_error();} | |
static constexpr const int min_exponent = __base::min_exponent; | |
static constexpr const int min_exponent10 = __base::min_exponent10; | |
static constexpr const int max_exponent = __base::max_exponent; | |
static constexpr const int max_exponent10 = __base::max_exponent10; | |
static constexpr const bool has_infinity = __base::has_infinity; | |
static constexpr const bool has_quiet_NaN = __base::has_quiet_NaN; | |
static constexpr const bool has_signaling_NaN = __base::has_signaling_NaN; | |
static constexpr const float_denorm_style has_denorm = __base::has_denorm; | |
static constexpr const bool has_denorm_loss = __base::has_denorm_loss; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return __base::infinity();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return __base::quiet_NaN();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return __base::signaling_NaN();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return __base::denorm_min();} | |
static constexpr const bool is_iec559 = __base::is_iec559; | |
static constexpr const bool is_bounded = __base::is_bounded; | |
static constexpr const bool is_modulo = __base::is_modulo; | |
static constexpr const bool traps = __base::traps; | |
static constexpr const bool tinyness_before = __base::tinyness_before; | |
static constexpr const float_round_style round_style = __base::round_style; | |
}; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::is_specialized; | |
template <class _Tp> | |
constexpr const int numeric_limits<const volatile _Tp>::digits; | |
template <class _Tp> | |
constexpr const int numeric_limits<const volatile _Tp>::digits10; | |
template <class _Tp> | |
constexpr const int numeric_limits<const volatile _Tp>::max_digits10; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::is_signed; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::is_integer; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::is_exact; | |
template <class _Tp> | |
constexpr const int numeric_limits<const volatile _Tp>::radix; | |
template <class _Tp> | |
constexpr const int numeric_limits<const volatile _Tp>::min_exponent; | |
template <class _Tp> | |
constexpr const int numeric_limits<const volatile _Tp>::min_exponent10; | |
template <class _Tp> | |
constexpr const int numeric_limits<const volatile _Tp>::max_exponent; | |
template <class _Tp> | |
constexpr const int numeric_limits<const volatile _Tp>::max_exponent10; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::has_infinity; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::has_quiet_NaN; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::has_signaling_NaN; | |
template <class _Tp> | |
constexpr const float_denorm_style numeric_limits<const volatile _Tp>::has_denorm; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::has_denorm_loss; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::is_iec559; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::is_bounded; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::is_modulo; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::traps; | |
template <class _Tp> | |
constexpr const bool numeric_limits<const volatile _Tp>::tinyness_before; | |
template <class _Tp> | |
constexpr const float_round_style numeric_limits<const volatile _Tp>::round_style; | |
} } | |
# 832 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/chrono" 2 3 | |
# 836 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/chrono" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__undef_macros" 1 3 | |
# 840 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/chrono" 2 3 | |
namespace std { inline namespace __2 { namespace __fs { namespace filesystem { | |
struct _FilesystemClock; | |
} } } } | |
namespace std { inline namespace __2 { | |
namespace chrono | |
{ | |
template <class _Rep, class _Period = ratio<1> > class __attribute__ ((__type_visibility__("default"))) duration; | |
template <class _Tp> | |
struct __is_duration : false_type {}; | |
template <class _Rep, class _Period> | |
struct __is_duration<duration<_Rep, _Period> > : true_type {}; | |
template <class _Rep, class _Period> | |
struct __is_duration<const duration<_Rep, _Period> > : true_type {}; | |
template <class _Rep, class _Period> | |
struct __is_duration<volatile duration<_Rep, _Period> > : true_type {}; | |
template <class _Rep, class _Period> | |
struct __is_duration<const volatile duration<_Rep, _Period> > : true_type {}; | |
} | |
template <class _Rep1, class _Period1, class _Rep2, class _Period2> | |
struct __attribute__ ((__type_visibility__("default"))) common_type<chrono::duration<_Rep1, _Period1>, | |
chrono::duration<_Rep2, _Period2> > | |
{ | |
typedef chrono::duration<typename common_type<_Rep1, _Rep2>::type, | |
typename __ratio_gcd<_Period1, _Period2>::type> type; | |
}; | |
namespace chrono { | |
template <class _FromDuration, class _ToDuration, | |
class _Period = typename ratio_divide<typename _FromDuration::period, typename _ToDuration::period>::type, | |
bool = _Period::num == 1, | |
bool = _Period::den == 1> | |
struct __duration_cast; | |
template <class _FromDuration, class _ToDuration, class _Period> | |
struct __duration_cast<_FromDuration, _ToDuration, _Period, true, true> | |
{ | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
_ToDuration operator()(const _FromDuration& __fd) const | |
{ | |
return _ToDuration(static_cast<typename _ToDuration::rep>(__fd.count())); | |
} | |
}; | |
template <class _FromDuration, class _ToDuration, class _Period> | |
struct __duration_cast<_FromDuration, _ToDuration, _Period, true, false> | |
{ | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
_ToDuration operator()(const _FromDuration& __fd) const | |
{ | |
typedef typename common_type<typename _ToDuration::rep, typename _FromDuration::rep, intmax_t>::type _Ct; | |
return _ToDuration(static_cast<typename _ToDuration::rep>( | |
static_cast<_Ct>(__fd.count()) / static_cast<_Ct>(_Period::den))); | |
} | |
}; | |
template <class _FromDuration, class _ToDuration, class _Period> | |
struct __duration_cast<_FromDuration, _ToDuration, _Period, false, true> | |
{ | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
_ToDuration operator()(const _FromDuration& __fd) const | |
{ | |
typedef typename common_type<typename _ToDuration::rep, typename _FromDuration::rep, intmax_t>::type _Ct; | |
return _ToDuration(static_cast<typename _ToDuration::rep>( | |
static_cast<_Ct>(__fd.count()) * static_cast<_Ct>(_Period::num))); | |
} | |
}; | |
template <class _FromDuration, class _ToDuration, class _Period> | |
struct __duration_cast<_FromDuration, _ToDuration, _Period, false, false> | |
{ | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
_ToDuration operator()(const _FromDuration& __fd) const | |
{ | |
typedef typename common_type<typename _ToDuration::rep, typename _FromDuration::rep, intmax_t>::type _Ct; | |
return _ToDuration(static_cast<typename _ToDuration::rep>( | |
static_cast<_Ct>(__fd.count()) * static_cast<_Ct>(_Period::num) | |
/ static_cast<_Ct>(_Period::den))); | |
} | |
}; | |
template <class _ToDuration, class _Rep, class _Period> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr | |
typename enable_if | |
< | |
__is_duration<_ToDuration>::value, | |
_ToDuration | |
>::type | |
duration_cast(const duration<_Rep, _Period>& __fd) | |
{ | |
return __duration_cast<duration<_Rep, _Period>, _ToDuration>()(__fd); | |
} | |
template <class _Rep> | |
struct __attribute__ ((__type_visibility__("default"))) treat_as_floating_point : is_floating_point<_Rep> {}; | |
template <class _Rep> | |
struct __attribute__ ((__type_visibility__("default"))) duration_values | |
{ | |
public: | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr _Rep zero() noexcept {return _Rep(0);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr _Rep max() noexcept {return numeric_limits<_Rep>::max();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr _Rep min() noexcept {return numeric_limits<_Rep>::lowest();} | |
}; | |
# 1021 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/chrono" 3 | |
template <class _Rep, class _Period> | |
class __attribute__ ((__type_visibility__("default"))) duration | |
{ | |
static_assert(!__is_duration<_Rep>::value, "A duration representation can not be a duration"); | |
static_assert(__is_ratio<_Period>::value, "Second template parameter of duration must be a std::ratio"); | |
static_assert(_Period::num > 0, "duration period must be positive"); | |
template <class _R1, class _R2> | |
struct __no_overflow | |
{ | |
private: | |
static const intmax_t __gcd_n1_n2 = __static_gcd<_R1::num, _R2::num>::value; | |
static const intmax_t __gcd_d1_d2 = __static_gcd<_R1::den, _R2::den>::value; | |
static const intmax_t __n1 = _R1::num / __gcd_n1_n2; | |
static const intmax_t __d1 = _R1::den / __gcd_d1_d2; | |
static const intmax_t __n2 = _R2::num / __gcd_n1_n2; | |
static const intmax_t __d2 = _R2::den / __gcd_d1_d2; | |
static const intmax_t max = -((intmax_t(1) << (sizeof(intmax_t) * 8 - 1)) + 1); | |
template <intmax_t _Xp, intmax_t _Yp, bool __overflow> | |
struct __mul | |
{ | |
static const intmax_t value = _Xp * _Yp; | |
}; | |
template <intmax_t _Xp, intmax_t _Yp> | |
struct __mul<_Xp, _Yp, true> | |
{ | |
static const intmax_t value = 1; | |
}; | |
public: | |
static const bool value = (__n1 <= max / __d2) && (__n2 <= max / __d1); | |
typedef ratio<__mul<__n1, __d2, !value>::value, | |
__mul<__n2, __d1, !value>::value> type; | |
}; | |
public: | |
typedef _Rep rep; | |
typedef typename _Period::type period; | |
private: | |
rep __rep_; | |
public: | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
duration() = default; | |
template <class _Rep2> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
explicit duration(const _Rep2& __r, | |
typename enable_if | |
< | |
is_convertible<_Rep2, rep>::value && | |
(treat_as_floating_point<rep>::value || | |
!treat_as_floating_point<_Rep2>::value) | |
>::type* = nullptr) | |
: __rep_(__r) {} | |
template <class _Rep2, class _Period2> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
duration(const duration<_Rep2, _Period2>& __d, | |
typename enable_if | |
< | |
__no_overflow<_Period2, period>::value && ( | |
treat_as_floating_point<rep>::value || | |
(__no_overflow<_Period2, period>::type::den == 1 && | |
!treat_as_floating_point<_Rep2>::value)) | |
>::type* = nullptr) | |
: __rep_(std::__2::chrono::duration_cast<duration>(__d).count()) {} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr rep count() const {return __rep_;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename common_type<duration>::type operator+() const {return typename common_type<duration>::type(*this);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename common_type<duration>::type operator-() const {return typename common_type<duration>::type(-__rep_);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) duration& operator++() {++__rep_; return *this;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) duration operator++(int) {return duration(__rep_++);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) duration& operator--() {--__rep_; return *this;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) duration operator--(int) {return duration(__rep_--);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) duration& operator+=(const duration& __d) {__rep_ += __d.count(); return *this;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) duration& operator-=(const duration& __d) {__rep_ -= __d.count(); return *this;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) duration& operator*=(const rep& rhs) {__rep_ *= rhs; return *this;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) duration& operator/=(const rep& rhs) {__rep_ /= rhs; return *this;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) duration& operator%=(const rep& rhs) {__rep_ %= rhs; return *this;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) duration& operator%=(const duration& rhs) {__rep_ %= rhs.count(); return *this;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr duration zero() noexcept {return duration(duration_values<rep>::zero());} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr duration min() noexcept {return duration(duration_values<rep>::min());} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr duration max() noexcept {return duration(duration_values<rep>::max());} | |
}; | |
typedef duration<long long, nano> nanoseconds; | |
typedef duration<long long, micro> microseconds; | |
typedef duration<long long, milli> milliseconds; | |
typedef duration<long long > seconds; | |
typedef duration< long, ratio< 60> > minutes; | |
typedef duration< long, ratio<3600> > hours; | |
# 1138 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/chrono" 3 | |
template <class _LhsDuration, class _RhsDuration> | |
struct __duration_eq | |
{ | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
bool operator()(const _LhsDuration& __lhs, const _RhsDuration& __rhs) const | |
{ | |
typedef typename common_type<_LhsDuration, _RhsDuration>::type _Ct; | |
return _Ct(__lhs).count() == _Ct(__rhs).count(); | |
} | |
}; | |
template <class _LhsDuration> | |
struct __duration_eq<_LhsDuration, _LhsDuration> | |
{ | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
bool operator()(const _LhsDuration& __lhs, const _LhsDuration& __rhs) const | |
{return __lhs.count() == __rhs.count();} | |
}; | |
template <class _Rep1, class _Period1, class _Rep2, class _Period2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr | |
bool | |
operator==(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) | |
{ | |
return __duration_eq<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >()(__lhs, __rhs); | |
} | |
template <class _Rep1, class _Period1, class _Rep2, class _Period2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr | |
bool | |
operator!=(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) | |
{ | |
return !(__lhs == __rhs); | |
} | |
template <class _LhsDuration, class _RhsDuration> | |
struct __duration_lt | |
{ | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
bool operator()(const _LhsDuration& __lhs, const _RhsDuration& __rhs) const | |
{ | |
typedef typename common_type<_LhsDuration, _RhsDuration>::type _Ct; | |
return _Ct(__lhs).count() < _Ct(__rhs).count(); | |
} | |
}; | |
template <class _LhsDuration> | |
struct __duration_lt<_LhsDuration, _LhsDuration> | |
{ | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
bool operator()(const _LhsDuration& __lhs, const _LhsDuration& __rhs) const | |
{return __lhs.count() < __rhs.count();} | |
}; | |
template <class _Rep1, class _Period1, class _Rep2, class _Period2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr | |
bool | |
operator< (const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) | |
{ | |
return __duration_lt<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >()(__lhs, __rhs); | |
} | |
template <class _Rep1, class _Period1, class _Rep2, class _Period2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr | |
bool | |
operator> (const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) | |
{ | |
return __rhs < __lhs; | |
} | |
template <class _Rep1, class _Period1, class _Rep2, class _Period2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr | |
bool | |
operator<=(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) | |
{ | |
return !(__rhs < __lhs); | |
} | |
template <class _Rep1, class _Period1, class _Rep2, class _Period2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr | |
bool | |
operator>=(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) | |
{ | |
return !(__lhs < __rhs); | |
} | |
template <class _Rep1, class _Period1, class _Rep2, class _Period2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr | |
typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type | |
operator+(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) | |
{ | |
typedef typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type _Cd; | |
return _Cd(_Cd(__lhs).count() + _Cd(__rhs).count()); | |
} | |
template <class _Rep1, class _Period1, class _Rep2, class _Period2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr | |
typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type | |
operator-(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) | |
{ | |
typedef typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type _Cd; | |
return _Cd(_Cd(__lhs).count() - _Cd(__rhs).count()); | |
} | |
template <class _Rep1, class _Period, class _Rep2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr | |
typename enable_if | |
< | |
is_convertible<_Rep2, typename common_type<_Rep1, _Rep2>::type>::value, | |
duration<typename common_type<_Rep1, _Rep2>::type, _Period> | |
>::type | |
operator*(const duration<_Rep1, _Period>& __d, const _Rep2& __s) | |
{ | |
typedef typename common_type<_Rep1, _Rep2>::type _Cr; | |
typedef duration<_Cr, _Period> _Cd; | |
return _Cd(_Cd(__d).count() * static_cast<_Cr>(__s)); | |
} | |
template <class _Rep1, class _Period, class _Rep2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr | |
typename enable_if | |
< | |
is_convertible<_Rep1, typename common_type<_Rep1, _Rep2>::type>::value, | |
duration<typename common_type<_Rep1, _Rep2>::type, _Period> | |
>::type | |
operator*(const _Rep1& __s, const duration<_Rep2, _Period>& __d) | |
{ | |
return __d * __s; | |
} | |
template <class _Rep1, class _Period, class _Rep2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr | |
typename enable_if | |
< | |
!__is_duration<_Rep2>::value && | |
is_convertible<_Rep2, typename common_type<_Rep1, _Rep2>::type>::value, | |
duration<typename common_type<_Rep1, _Rep2>::type, _Period> | |
>::type | |
operator/(const duration<_Rep1, _Period>& __d, const _Rep2& __s) | |
{ | |
typedef typename common_type<_Rep1, _Rep2>::type _Cr; | |
typedef duration<_Cr, _Period> _Cd; | |
return _Cd(_Cd(__d).count() / static_cast<_Cr>(__s)); | |
} | |
template <class _Rep1, class _Period1, class _Rep2, class _Period2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr | |
typename common_type<_Rep1, _Rep2>::type | |
operator/(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) | |
{ | |
typedef typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type _Ct; | |
return _Ct(__lhs).count() / _Ct(__rhs).count(); | |
} | |
template <class _Rep1, class _Period, class _Rep2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr | |
typename enable_if | |
< | |
!__is_duration<_Rep2>::value && | |
is_convertible<_Rep2, typename common_type<_Rep1, _Rep2>::type>::value, | |
duration<typename common_type<_Rep1, _Rep2>::type, _Period> | |
>::type | |
operator%(const duration<_Rep1, _Period>& __d, const _Rep2& __s) | |
{ | |
typedef typename common_type<_Rep1, _Rep2>::type _Cr; | |
typedef duration<_Cr, _Period> _Cd; | |
return _Cd(_Cd(__d).count() % static_cast<_Cr>(__s)); | |
} | |
template <class _Rep1, class _Period1, class _Rep2, class _Period2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr | |
typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type | |
operator%(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) | |
{ | |
typedef typename common_type<_Rep1, _Rep2>::type _Cr; | |
typedef typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type _Cd; | |
return _Cd(static_cast<_Cr>(_Cd(__lhs).count()) % static_cast<_Cr>(_Cd(__rhs).count())); | |
} | |
template <class _Clock, class _Duration = typename _Clock::duration> | |
class __attribute__ ((__type_visibility__("default"))) time_point | |
{ | |
static_assert(__is_duration<_Duration>::value, | |
"Second template parameter of time_point must be a std::chrono::duration"); | |
public: | |
typedef _Clock clock; | |
typedef _Duration duration; | |
typedef typename duration::rep rep; | |
typedef typename duration::period period; | |
private: | |
duration __d_; | |
public: | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr time_point() : __d_(duration::zero()) {} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit time_point(const duration& __d) : __d_(__d) {} | |
template <class _Duration2> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
time_point(const time_point<clock, _Duration2>& t, | |
typename enable_if | |
< | |
is_convertible<_Duration2, duration>::value | |
>::type* = nullptr) | |
: __d_(t.time_since_epoch()) {} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr duration time_since_epoch() const {return __d_;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) time_point& operator+=(const duration& __d) {__d_ += __d; return *this;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) time_point& operator-=(const duration& __d) {__d_ -= __d; return *this;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr time_point min() noexcept {return time_point(duration::min());} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr time_point max() noexcept {return time_point(duration::max());} | |
}; | |
} | |
template <class _Clock, class _Duration1, class _Duration2> | |
struct __attribute__ ((__type_visibility__("default"))) common_type<chrono::time_point<_Clock, _Duration1>, | |
chrono::time_point<_Clock, _Duration2> > | |
{ | |
typedef chrono::time_point<_Clock, typename common_type<_Duration1, _Duration2>::type> type; | |
}; | |
namespace chrono { | |
template <class _ToDuration, class _Clock, class _Duration> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
time_point<_Clock, _ToDuration> | |
time_point_cast(const time_point<_Clock, _Duration>& __t) | |
{ | |
return time_point<_Clock, _ToDuration>(std::__2::chrono::duration_cast<_ToDuration>(__t.time_since_epoch())); | |
} | |
# 1468 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/chrono" 3 | |
template <class _Clock, class _Duration1, class _Duration2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
bool | |
operator==(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) | |
{ | |
return __lhs.time_since_epoch() == __rhs.time_since_epoch(); | |
} | |
template <class _Clock, class _Duration1, class _Duration2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
bool | |
operator!=(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) | |
{ | |
return !(__lhs == __rhs); | |
} | |
template <class _Clock, class _Duration1, class _Duration2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
bool | |
operator<(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) | |
{ | |
return __lhs.time_since_epoch() < __rhs.time_since_epoch(); | |
} | |
template <class _Clock, class _Duration1, class _Duration2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
bool | |
operator>(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) | |
{ | |
return __rhs < __lhs; | |
} | |
template <class _Clock, class _Duration1, class _Duration2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
bool | |
operator<=(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) | |
{ | |
return !(__rhs < __lhs); | |
} | |
template <class _Clock, class _Duration1, class _Duration2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
bool | |
operator>=(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) | |
{ | |
return !(__lhs < __rhs); | |
} | |
template <class _Clock, class _Duration1, class _Rep2, class _Period2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
time_point<_Clock, typename common_type<_Duration1, duration<_Rep2, _Period2> >::type> | |
operator+(const time_point<_Clock, _Duration1>& __lhs, const duration<_Rep2, _Period2>& __rhs) | |
{ | |
typedef time_point<_Clock, typename common_type<_Duration1, duration<_Rep2, _Period2> >::type> _Tr; | |
return _Tr (__lhs.time_since_epoch() + __rhs); | |
} | |
template <class _Rep1, class _Period1, class _Clock, class _Duration2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
time_point<_Clock, typename common_type<duration<_Rep1, _Period1>, _Duration2>::type> | |
operator+(const duration<_Rep1, _Period1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) | |
{ | |
return __rhs + __lhs; | |
} | |
template <class _Clock, class _Duration1, class _Rep2, class _Period2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
time_point<_Clock, typename common_type<_Duration1, duration<_Rep2, _Period2> >::type> | |
operator-(const time_point<_Clock, _Duration1>& __lhs, const duration<_Rep2, _Period2>& __rhs) | |
{ | |
typedef time_point<_Clock, typename common_type<_Duration1, duration<_Rep2, _Period2> >::type> _Ret; | |
return _Ret(__lhs.time_since_epoch() -__rhs); | |
} | |
template <class _Clock, class _Duration1, class _Duration2> | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
typename common_type<_Duration1, _Duration2>::type | |
operator-(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) | |
{ | |
return __lhs.time_since_epoch() - __rhs.time_since_epoch(); | |
} | |
class __attribute__ ((__visibility__("default"))) system_clock | |
{ | |
public: | |
typedef microseconds duration; | |
typedef duration::rep rep; | |
typedef duration::period period; | |
typedef chrono::time_point<system_clock> time_point; | |
static constexpr const bool is_steady = false; | |
static time_point now() noexcept; | |
static time_t to_time_t (const time_point& __t) noexcept; | |
static time_point from_time_t(time_t __t) noexcept; | |
}; | |
class __attribute__ ((__visibility__("default"))) steady_clock | |
{ | |
public: | |
typedef nanoseconds duration; | |
typedef duration::rep rep; | |
typedef duration::period period; | |
typedef chrono::time_point<steady_clock, duration> time_point; | |
static constexpr const bool is_steady = true; | |
static time_point now() noexcept; | |
}; | |
typedef steady_clock high_resolution_clock; | |
# 2835 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/chrono" 3 | |
} | |
inline namespace literals | |
{ | |
inline namespace chrono_literals | |
{ | |
constexpr chrono::hours operator""h(unsigned long long __h) | |
{ | |
return chrono::hours(static_cast<chrono::hours::rep>(__h)); | |
} | |
constexpr chrono::duration<long double, ratio<3600,1>> operator""h(long double __h) | |
{ | |
return chrono::duration<long double, ratio<3600,1>>(__h); | |
} | |
constexpr chrono::minutes operator""min(unsigned long long __m) | |
{ | |
return chrono::minutes(static_cast<chrono::minutes::rep>(__m)); | |
} | |
constexpr chrono::duration<long double, ratio<60,1>> operator""min(long double __m) | |
{ | |
return chrono::duration<long double, ratio<60,1>> (__m); | |
} | |
constexpr chrono::seconds operator""s(unsigned long long __s) | |
{ | |
return chrono::seconds(static_cast<chrono::seconds::rep>(__s)); | |
} | |
constexpr chrono::duration<long double> operator""s(long double __s) | |
{ | |
return chrono::duration<long double> (__s); | |
} | |
constexpr chrono::milliseconds operator""ms(unsigned long long __ms) | |
{ | |
return chrono::milliseconds(static_cast<chrono::milliseconds::rep>(__ms)); | |
} | |
constexpr chrono::duration<long double, milli> operator""ms(long double __ms) | |
{ | |
return chrono::duration<long double, milli>(__ms); | |
} | |
constexpr chrono::microseconds operator""us(unsigned long long __us) | |
{ | |
return chrono::microseconds(static_cast<chrono::microseconds::rep>(__us)); | |
} | |
constexpr chrono::duration<long double, micro> operator""us(long double __us) | |
{ | |
return chrono::duration<long double, micro> (__us); | |
} | |
constexpr chrono::nanoseconds operator""ns(unsigned long long __ns) | |
{ | |
return chrono::nanoseconds(static_cast<chrono::nanoseconds::rep>(__ns)); | |
} | |
constexpr chrono::duration<long double, nano> operator""ns(long double __ns) | |
{ | |
return chrono::duration<long double, nano> (__ns); | |
} | |
# 2920 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/chrono" 3 | |
}} | |
namespace chrono { | |
using namespace literals::chrono_literals; | |
} | |
} } | |
namespace std { inline namespace __2 { namespace __fs { namespace filesystem { | |
struct _FilesystemClock { | |
typedef __int128_t rep; | |
typedef nano period; | |
typedef chrono::duration<rep, period> duration; | |
typedef chrono::time_point<_FilesystemClock> time_point; | |
__attribute__((__visibility__("default"))) | |
static constexpr const bool is_steady = false; | |
__attribute__ ((__visibility__("default"))) static time_point now() noexcept; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
static time_t to_time_t(const time_point& __t) noexcept { | |
typedef chrono::duration<rep> __secs; | |
return time_t( | |
chrono::duration_cast<__secs>(__t.time_since_epoch()).count()); | |
} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
static time_point from_time_t(time_t __t) noexcept { | |
typedef chrono::duration<rep> __secs; | |
return time_point(__secs(__t)); | |
} | |
}; | |
} } } } | |
# 16 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__threading_support" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/iosfwd" 1 3 | |
# 94 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/iosfwd" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 95 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/iosfwd" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/compat/wchar.h" 1 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/wchar.h" 1 3 | |
# 108 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/wchar.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 109 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/wchar.h" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/stddef.h" 1 3 | |
# 39 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/stddef.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 40 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/stddef.h" 2 3 | |
# 43 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/stddef.h" 3 | |
# 1 "/home/azakai/Dev/llvm-project/build/lib/clang/13.0.0/include/stddef.h" 1 3 | |
# 46 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/stddef.h" 2 3 | |
extern "C++" { | |
using std::nullptr_t; | |
} | |
# 110 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/wchar.h" 2 3 | |
# 113 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/wchar.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/wchar.h" 1 3 | |
extern "C" { | |
# 27 "/home/azakai/Dev/emscripten/cache/sysroot/include/wchar.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 1 3 | |
typedef __builtin_va_list va_list; | |
typedef __builtin_va_list __isoc_va_list; | |
# 45 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef unsigned wint_t; | |
# 270 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef unsigned long wctype_t; | |
# 387 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef struct _IO_FILE FILE; | |
typedef struct __mbstate_t { unsigned __opaque1, __opaque2; } mbstate_t; | |
# 28 "/home/azakai/Dev/emscripten/cache/sysroot/include/wchar.h" 2 3 | |
# 46 "/home/azakai/Dev/emscripten/cache/sysroot/include/wchar.h" 3 | |
wchar_t *wcscpy (wchar_t *__restrict, const wchar_t *__restrict); | |
wchar_t *wcsncpy (wchar_t *__restrict, const wchar_t *__restrict, size_t); | |
wchar_t *wcscat (wchar_t *__restrict, const wchar_t *__restrict); | |
wchar_t *wcsncat (wchar_t *__restrict, const wchar_t *__restrict, size_t); | |
int wcscmp (const wchar_t *, const wchar_t *); | |
int wcsncmp (const wchar_t *, const wchar_t *, size_t); | |
int wcscoll(const wchar_t *, const wchar_t *); | |
size_t wcsxfrm (wchar_t *__restrict, const wchar_t *__restrict, size_t n); | |
wchar_t *wcschr (const wchar_t *, wchar_t); | |
wchar_t *wcsrchr (const wchar_t *, wchar_t); | |
size_t wcscspn (const wchar_t *, const wchar_t *); | |
size_t wcsspn (const wchar_t *, const wchar_t *); | |
wchar_t *wcspbrk (const wchar_t *, const wchar_t *); | |
wchar_t *wcstok (wchar_t *__restrict, const wchar_t *__restrict, wchar_t **__restrict); | |
size_t wcslen (const wchar_t *); | |
wchar_t *wcsstr (const wchar_t *__restrict, const wchar_t *__restrict); | |
wchar_t *wcswcs (const wchar_t *, const wchar_t *); | |
wchar_t *wmemchr (const wchar_t *, wchar_t, size_t); | |
int wmemcmp (const wchar_t *, const wchar_t *, size_t); | |
wchar_t *wmemcpy (wchar_t *__restrict, const wchar_t *__restrict, size_t); | |
wchar_t *wmemmove (wchar_t *, const wchar_t *, size_t); | |
wchar_t *wmemset (wchar_t *, wchar_t, size_t); | |
wint_t btowc (int); | |
int wctob (wint_t); | |
int mbsinit (const mbstate_t *); | |
size_t mbrtowc (wchar_t *__restrict, const char *__restrict, size_t, mbstate_t *__restrict); | |
size_t wcrtomb (char *__restrict, wchar_t, mbstate_t *__restrict); | |
size_t mbrlen (const char *__restrict, size_t, mbstate_t *__restrict); | |
size_t mbsrtowcs (wchar_t *__restrict, const char **__restrict, size_t, mbstate_t *__restrict); | |
size_t wcsrtombs (char *__restrict, const wchar_t **__restrict, size_t, mbstate_t *__restrict); | |
float wcstof (const wchar_t *__restrict, wchar_t **__restrict); | |
double wcstod (const wchar_t *__restrict, wchar_t **__restrict); | |
long double wcstold (const wchar_t *__restrict, wchar_t **__restrict); | |
long wcstol (const wchar_t *__restrict, wchar_t **__restrict, int); | |
unsigned long wcstoul (const wchar_t *__restrict, wchar_t **__restrict, int); | |
long long wcstoll (const wchar_t *__restrict, wchar_t **__restrict, int); | |
unsigned long long wcstoull (const wchar_t *__restrict, wchar_t **__restrict, int); | |
int fwide (FILE *, int); | |
int wprintf (const wchar_t *__restrict, ...); | |
int fwprintf (FILE *__restrict, const wchar_t *__restrict, ...); | |
int swprintf (wchar_t *__restrict, size_t, const wchar_t *__restrict, ...); | |
int vwprintf (const wchar_t *__restrict, __isoc_va_list); | |
int vfwprintf (FILE *__restrict, const wchar_t *__restrict, __isoc_va_list); | |
int vswprintf (wchar_t *__restrict, size_t, const wchar_t *__restrict, __isoc_va_list); | |
int wscanf (const wchar_t *__restrict, ...); | |
int fwscanf (FILE *__restrict, const wchar_t *__restrict, ...); | |
int swscanf (const wchar_t *__restrict, const wchar_t *__restrict, ...); | |
int vwscanf (const wchar_t *__restrict, __isoc_va_list); | |
int vfwscanf (FILE *__restrict, const wchar_t *__restrict, __isoc_va_list); | |
int vswscanf (const wchar_t *__restrict, const wchar_t *__restrict, __isoc_va_list); | |
wint_t fgetwc (FILE *); | |
wint_t getwc (FILE *); | |
wint_t getwchar (void); | |
wint_t fputwc (wchar_t, FILE *); | |
wint_t putwc (wchar_t, FILE *); | |
wint_t putwchar (wchar_t); | |
wchar_t *fgetws (wchar_t *__restrict, int, FILE *__restrict); | |
int fputws (const wchar_t *__restrict, FILE *__restrict); | |
wint_t ungetwc (wint_t, FILE *); | |
struct tm; | |
size_t wcsftime (wchar_t *__restrict, size_t, const wchar_t *__restrict, const struct tm *__restrict); | |
FILE *open_wmemstream(wchar_t **, size_t *); | |
size_t mbsnrtowcs(wchar_t *__restrict, const char **__restrict, size_t, size_t, mbstate_t *__restrict); | |
size_t wcsnrtombs(char *__restrict, const wchar_t **__restrict, size_t, size_t, mbstate_t *__restrict); | |
wchar_t *wcsdup(const wchar_t *); | |
size_t wcsnlen (const wchar_t *, size_t); | |
wchar_t *wcpcpy (wchar_t *__restrict, const wchar_t *__restrict); | |
wchar_t *wcpncpy (wchar_t *__restrict, const wchar_t *__restrict, size_t); | |
int wcscasecmp(const wchar_t *, const wchar_t *); | |
int wcscasecmp_l(const wchar_t *, const wchar_t *, locale_t); | |
int wcsncasecmp(const wchar_t *, const wchar_t *, size_t); | |
int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t, locale_t); | |
int wcscoll_l(const wchar_t *, const wchar_t *, locale_t); | |
size_t wcsxfrm_l(wchar_t *__restrict, const wchar_t *__restrict, size_t n, locale_t); | |
int wcwidth (wchar_t); | |
int wcswidth (const wchar_t *, size_t); | |
int iswalnum(wint_t); | |
int iswalpha(wint_t); | |
int iswblank(wint_t); | |
int iswcntrl(wint_t); | |
int iswdigit(wint_t); | |
int iswgraph(wint_t); | |
int iswlower(wint_t); | |
int iswprint(wint_t); | |
int iswpunct(wint_t); | |
int iswspace(wint_t); | |
int iswupper(wint_t); | |
int iswxdigit(wint_t); | |
int iswctype(wint_t, wctype_t); | |
wint_t towlower(wint_t); | |
wint_t towupper(wint_t); | |
wctype_t wctype(const char *); | |
# 183 "/home/azakai/Dev/emscripten/cache/sysroot/include/wchar.h" 3 | |
} | |
# 120 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/wchar.h" 2 3 | |
# 135 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/wchar.h" 3 | |
extern "C++" { | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
wchar_t* __libcpp_wcschr(const wchar_t* __s, wchar_t __c) {return (wchar_t*)wcschr(__s, __c);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
const wchar_t* wcschr(const wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
wchar_t* wcschr( wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
wchar_t* __libcpp_wcspbrk(const wchar_t* __s1, const wchar_t* __s2) {return (wchar_t*)wcspbrk(__s1, __s2);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
const wchar_t* wcspbrk(const wchar_t* __s1, const wchar_t* __s2) {return __libcpp_wcspbrk(__s1, __s2);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
wchar_t* wcspbrk( wchar_t* __s1, const wchar_t* __s2) {return __libcpp_wcspbrk(__s1, __s2);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
wchar_t* __libcpp_wcsrchr(const wchar_t* __s, wchar_t __c) {return (wchar_t*)wcsrchr(__s, __c);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
const wchar_t* wcsrchr(const wchar_t* __s, wchar_t __c) {return __libcpp_wcsrchr(__s, __c);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
wchar_t* wcsrchr( wchar_t* __s, wchar_t __c) {return __libcpp_wcsrchr(__s, __c);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
wchar_t* __libcpp_wcsstr(const wchar_t* __s1, const wchar_t* __s2) {return (wchar_t*)wcsstr(__s1, __s2);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
const wchar_t* wcsstr(const wchar_t* __s1, const wchar_t* __s2) {return __libcpp_wcsstr(__s1, __s2);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
wchar_t* wcsstr( wchar_t* __s1, const wchar_t* __s2) {return __libcpp_wcsstr(__s1, __s2);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
wchar_t* __libcpp_wmemchr(const wchar_t* __s, wchar_t __c, size_t __n) {return (wchar_t*)wmemchr(__s, __c, __n);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
const wchar_t* wmemchr(const wchar_t* __s, wchar_t __c, size_t __n) {return __libcpp_wmemchr(__s, __c, __n);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
wchar_t* wmemchr( wchar_t* __s, wchar_t __c, size_t __n) {return __libcpp_wmemchr(__s, __c, __n);} | |
} | |
# 5 "/home/azakai/Dev/emscripten/cache/sysroot/include/compat/wchar.h" 2 3 | |
# 96 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/iosfwd" 2 3 | |
# 99 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/iosfwd" 3 | |
namespace std { inline namespace __2 { | |
class __attribute__ ((__visibility__("default"))) ios_base; | |
template<class _CharT> struct __attribute__ ((__type_visibility__("default"))) char_traits; | |
template<> struct char_traits<char>; | |
template<> struct char_traits<char16_t>; | |
template<> struct char_traits<char32_t>; | |
template<> struct char_traits<wchar_t>; | |
template<class _Tp> class __attribute__ ((__type_visibility__("default"))) allocator; | |
template <class _CharT, class _Traits = char_traits<_CharT> > | |
class __attribute__ ((__type_visibility__("default"))) basic_ios; | |
template <class _CharT, class _Traits = char_traits<_CharT> > | |
class __attribute__ ((__type_visibility__("default"))) basic_streambuf; | |
template <class _CharT, class _Traits = char_traits<_CharT> > | |
class __attribute__ ((__type_visibility__("default"))) basic_istream; | |
template <class _CharT, class _Traits = char_traits<_CharT> > | |
class __attribute__ ((__type_visibility__("default"))) basic_ostream; | |
template <class _CharT, class _Traits = char_traits<_CharT> > | |
class __attribute__ ((__type_visibility__("default"))) basic_iostream; | |
template <class _CharT, class _Traits = char_traits<_CharT>, | |
class _Allocator = allocator<_CharT> > | |
class __attribute__ ((__type_visibility__("default"))) basic_stringbuf; | |
template <class _CharT, class _Traits = char_traits<_CharT>, | |
class _Allocator = allocator<_CharT> > | |
class __attribute__ ((__type_visibility__("default"))) basic_istringstream; | |
template <class _CharT, class _Traits = char_traits<_CharT>, | |
class _Allocator = allocator<_CharT> > | |
class __attribute__ ((__type_visibility__("default"))) basic_ostringstream; | |
template <class _CharT, class _Traits = char_traits<_CharT>, | |
class _Allocator = allocator<_CharT> > | |
class __attribute__ ((__type_visibility__("default"))) basic_stringstream; | |
template <class _CharT, class _Traits = char_traits<_CharT> > | |
class __attribute__ ((__type_visibility__("default"))) basic_filebuf; | |
template <class _CharT, class _Traits = char_traits<_CharT> > | |
class __attribute__ ((__type_visibility__("default"))) basic_ifstream; | |
template <class _CharT, class _Traits = char_traits<_CharT> > | |
class __attribute__ ((__type_visibility__("default"))) basic_ofstream; | |
template <class _CharT, class _Traits = char_traits<_CharT> > | |
class __attribute__ ((__type_visibility__("default"))) basic_fstream; | |
template <class _CharT, class _Traits = char_traits<_CharT> > | |
class __attribute__ ((__type_visibility__("default"))) istreambuf_iterator; | |
template <class _CharT, class _Traits = char_traits<_CharT> > | |
class __attribute__ ((__type_visibility__("default"))) ostreambuf_iterator; | |
typedef basic_ios<char> ios; | |
typedef basic_ios<wchar_t> wios; | |
typedef basic_streambuf<char> streambuf; | |
typedef basic_istream<char> istream; | |
typedef basic_ostream<char> ostream; | |
typedef basic_iostream<char> iostream; | |
typedef basic_stringbuf<char> stringbuf; | |
typedef basic_istringstream<char> istringstream; | |
typedef basic_ostringstream<char> ostringstream; | |
typedef basic_stringstream<char> stringstream; | |
typedef basic_filebuf<char> filebuf; | |
typedef basic_ifstream<char> ifstream; | |
typedef basic_ofstream<char> ofstream; | |
typedef basic_fstream<char> fstream; | |
typedef basic_streambuf<wchar_t> wstreambuf; | |
typedef basic_istream<wchar_t> wistream; | |
typedef basic_ostream<wchar_t> wostream; | |
typedef basic_iostream<wchar_t> wiostream; | |
typedef basic_stringbuf<wchar_t> wstringbuf; | |
typedef basic_istringstream<wchar_t> wistringstream; | |
typedef basic_ostringstream<wchar_t> wostringstream; | |
typedef basic_stringstream<wchar_t> wstringstream; | |
typedef basic_filebuf<wchar_t> wfilebuf; | |
typedef basic_ifstream<wchar_t> wifstream; | |
typedef basic_ofstream<wchar_t> wofstream; | |
typedef basic_fstream<wchar_t> wfstream; | |
template <class _CharT, class _Traits> | |
class __attribute__((__preferred_name__(ios))) __attribute__((__preferred_name__(wios))) basic_ios; | |
template <class _CharT, class _Traits> | |
class __attribute__((__preferred_name__(streambuf))) __attribute__((__preferred_name__(wstreambuf))) basic_streambuf; | |
template <class _CharT, class _Traits> | |
class __attribute__((__preferred_name__(istream))) __attribute__((__preferred_name__(wistream))) basic_istream; | |
template <class _CharT, class _Traits> | |
class __attribute__((__preferred_name__(ostream))) __attribute__((__preferred_name__(wostream))) basic_ostream; | |
template <class _CharT, class _Traits> | |
class __attribute__((__preferred_name__(iostream))) __attribute__((__preferred_name__(wiostream))) basic_iostream; | |
template <class _CharT, class _Traits, class _Allocator> | |
class __attribute__((__preferred_name__(stringbuf))) __attribute__((__preferred_name__(wstringbuf))) basic_stringbuf; | |
template <class _CharT, class _Traits, class _Allocator> | |
class __attribute__((__preferred_name__(istringstream))) __attribute__((__preferred_name__(wistringstream))) basic_istringstream; | |
template <class _CharT, class _Traits, class _Allocator> | |
class __attribute__((__preferred_name__(ostringstream))) __attribute__((__preferred_name__(wostringstream))) basic_ostringstream; | |
template <class _CharT, class _Traits, class _Allocator> | |
class __attribute__((__preferred_name__(stringstream))) __attribute__((__preferred_name__(wstringstream))) basic_stringstream; | |
template <class _CharT, class _Traits> | |
class __attribute__((__preferred_name__(filebuf))) __attribute__((__preferred_name__(wfilebuf))) basic_filebuf; | |
template <class _CharT, class _Traits> | |
class __attribute__((__preferred_name__(ifstream))) __attribute__((__preferred_name__(wifstream))) basic_ifstream; | |
template <class _CharT, class _Traits> | |
class __attribute__((__preferred_name__(ofstream))) __attribute__((__preferred_name__(wofstream))) basic_ofstream; | |
template <class _CharT, class _Traits> | |
class __attribute__((__preferred_name__(fstream))) __attribute__((__preferred_name__(wfstream))) basic_fstream; | |
template <class _State> class __attribute__ ((__type_visibility__("default"))) fpos; | |
typedef fpos<mbstate_t> streampos; | |
typedef fpos<mbstate_t> wstreampos; | |
typedef fpos<mbstate_t> u16streampos; | |
typedef fpos<mbstate_t> u32streampos; | |
typedef long long streamoff; | |
template <class _CharT, | |
class _Traits = char_traits<_CharT>, | |
class _Allocator = allocator<_CharT> > | |
class __attribute__ ((__type_visibility__("default"))) basic_string; | |
typedef basic_string<char, char_traits<char>, allocator<char> > string; | |
typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstring; | |
template <class _CharT, class _Traits, class _Allocator> | |
class __attribute__((__preferred_name__(string))) __attribute__((__preferred_name__(wstring))) basic_string; | |
template <class _Tp, class _Alloc = allocator<_Tp> > | |
class __attribute__ ((__type_visibility__("default"))) vector; | |
template <class _CharT, class _Traits> | |
class __save_flags | |
{ | |
typedef basic_ios<_CharT, _Traits> __stream_type; | |
typedef typename __stream_type::fmtflags fmtflags; | |
__stream_type& __stream_; | |
fmtflags __fmtflags_; | |
_CharT __fill_; | |
__save_flags(const __save_flags&); | |
__save_flags& operator=(const __save_flags&); | |
public: | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
explicit __save_flags(__stream_type& __stream) | |
: __stream_(__stream), | |
__fmtflags_(__stream.flags()), | |
__fill_(__stream.fill()) | |
{} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
~__save_flags() | |
{ | |
__stream_.flags(__fmtflags_); | |
__stream_.fill(__fill_); | |
} | |
}; | |
} } | |
# 17 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__threading_support" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/errno.h" 1 3 | |
# 25 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/errno.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 26 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/errno.h" 2 3 | |
# 29 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/errno.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/errno.h" 1 3 | |
extern "C" { | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/errno.h" 1 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 1 3 | |
# 29 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/stddef.h" 1 3 | |
# 30 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 2 3 | |
; | |
; | |
; | |
; | |
; | |
; | |
; | |
; | |
; | |
extern "C" { | |
typedef long unsigned int __wasi_size_t; | |
; | |
; | |
typedef uint64_t __wasi_filesize_t; | |
; | |
; | |
typedef uint64_t __wasi_timestamp_t; | |
; | |
; | |
typedef uint32_t __wasi_clockid_t; | |
# 102 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
; | |
; | |
typedef uint16_t __wasi_errno_t; | |
# 498 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
; | |
; | |
typedef uint64_t __wasi_rights_t; | |
# 663 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
; | |
; | |
typedef uint32_t __wasi_fd_t; | |
; | |
; | |
typedef struct __wasi_iovec_t { | |
uint8_t * buf; | |
__wasi_size_t buf_len; | |
} __wasi_iovec_t; | |
; | |
; | |
; | |
; | |
typedef struct __wasi_ciovec_t { | |
const uint8_t * buf; | |
__wasi_size_t buf_len; | |
} __wasi_ciovec_t; | |
; | |
; | |
; | |
; | |
typedef int64_t __wasi_filedelta_t; | |
; | |
; | |
typedef uint8_t __wasi_whence_t; | |
# 744 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
; | |
; | |
typedef uint64_t __wasi_dircookie_t; | |
; | |
; | |
typedef uint32_t __wasi_dirnamlen_t; | |
; | |
; | |
typedef uint64_t __wasi_inode_t; | |
; | |
; | |
typedef uint8_t __wasi_filetype_t; | |
# 818 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
; | |
; | |
typedef struct __wasi_dirent_t { | |
__wasi_dircookie_t d_next; | |
__wasi_inode_t d_ino; | |
__wasi_dirnamlen_t d_namlen; | |
__wasi_filetype_t d_type; | |
} __wasi_dirent_t; | |
; | |
; | |
; | |
; | |
; | |
; | |
typedef uint8_t __wasi_advice_t; | |
# 889 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
; | |
; | |
typedef uint16_t __wasi_fdflags_t; | |
# 924 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
; | |
; | |
typedef struct __wasi_fdstat_t { | |
__wasi_filetype_t fs_filetype; | |
__wasi_fdflags_t fs_flags; | |
__wasi_rights_t fs_rights_base; | |
__wasi_rights_t fs_rights_inheriting; | |
} __wasi_fdstat_t; | |
; | |
; | |
; | |
; | |
; | |
; | |
typedef uint64_t __wasi_device_t; | |
; | |
; | |
typedef uint16_t __wasi_fstflags_t; | |
# 995 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
; | |
; | |
typedef uint32_t __wasi_lookupflags_t; | |
; | |
; | |
typedef uint16_t __wasi_oflags_t; | |
# 1036 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
; | |
; | |
typedef uint64_t __wasi_linkcount_t; | |
; | |
; | |
typedef struct __wasi_filestat_t { | |
__wasi_device_t dev; | |
__wasi_inode_t ino; | |
__wasi_filetype_t filetype; | |
__wasi_linkcount_t nlink; | |
__wasi_filesize_t size; | |
__wasi_timestamp_t atim; | |
__wasi_timestamp_t mtim; | |
__wasi_timestamp_t ctim; | |
} __wasi_filestat_t; | |
; | |
; | |
; | |
; | |
; | |
; | |
; | |
; | |
; | |
; | |
typedef uint64_t __wasi_userdata_t; | |
; | |
; | |
typedef uint8_t __wasi_eventtype_t; | |
# 1136 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
; | |
; | |
typedef uint16_t __wasi_eventrwflags_t; | |
; | |
; | |
typedef struct __wasi_event_fd_readwrite_t { | |
__wasi_filesize_t nbytes; | |
__wasi_eventrwflags_t flags; | |
} __wasi_event_fd_readwrite_t; | |
; | |
; | |
; | |
; | |
typedef union __wasi_event_u_t { | |
__wasi_event_fd_readwrite_t fd_readwrite; | |
} __wasi_event_u_t; | |
; | |
; | |
typedef struct __wasi_event_t { | |
__wasi_userdata_t userdata; | |
__wasi_errno_t error; | |
__wasi_eventtype_t type; | |
__wasi_event_u_t u; | |
} __wasi_event_t; | |
; | |
; | |
; | |
; | |
; | |
; | |
typedef uint16_t __wasi_subclockflags_t; | |
# 1237 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
; | |
; | |
typedef struct __wasi_subscription_clock_t { | |
__wasi_clockid_t id; | |
__wasi_timestamp_t timeout; | |
__wasi_timestamp_t precision; | |
__wasi_subclockflags_t flags; | |
} __wasi_subscription_clock_t; | |
; | |
; | |
; | |
; | |
; | |
; | |
typedef struct __wasi_subscription_fd_readwrite_t { | |
__wasi_fd_t file_descriptor; | |
} __wasi_subscription_fd_readwrite_t; | |
; | |
; | |
; | |
typedef union __wasi_subscription_u_t { | |
__wasi_subscription_clock_t clock; | |
__wasi_subscription_fd_readwrite_t fd_readwrite; | |
} __wasi_subscription_u_t; | |
; | |
; | |
typedef struct __wasi_subscription_t { | |
__wasi_userdata_t userdata; | |
__wasi_eventtype_t type; | |
__wasi_subscription_u_t u; | |
} __wasi_subscription_t; | |
; | |
; | |
; | |
; | |
; | |
typedef uint32_t __wasi_exitcode_t; | |
; | |
; | |
typedef uint8_t __wasi_signal_t; | |
# 1536 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
; | |
; | |
typedef uint16_t __wasi_riflags_t; | |
# 1554 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
; | |
; | |
typedef uint16_t __wasi_roflags_t; | |
; | |
; | |
typedef uint16_t __wasi_siflags_t; | |
; | |
; | |
typedef uint8_t __wasi_sdflags_t; | |
# 1594 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
; | |
; | |
typedef uint8_t __wasi_preopentype_t; | |
; | |
; | |
typedef struct __wasi_prestat_dir_t { | |
__wasi_size_t pr_name_len; | |
} __wasi_prestat_dir_t; | |
; | |
; | |
; | |
typedef union __wasi_prestat_u_t { | |
__wasi_prestat_dir_t dir; | |
} __wasi_prestat_u_t; | |
; | |
; | |
typedef struct __wasi_prestat_t { | |
__wasi_preopentype_t pr_type; | |
__wasi_prestat_u_t u; | |
} __wasi_prestat_t; | |
; | |
; | |
; | |
; | |
# 1669 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
__wasi_errno_t __wasi_args_get( | |
uint8_t * * argv, | |
uint8_t * argv_buf | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("args_get"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_args_sizes_get( | |
__wasi_size_t *argc, | |
__wasi_size_t *argv_buf_size | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("args_sizes_get"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_environ_get( | |
uint8_t * * environ, | |
uint8_t * environ_buf | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("environ_get"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_environ_sizes_get( | |
__wasi_size_t *argc, | |
__wasi_size_t *argv_buf_size | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("environ_sizes_get"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_clock_res_get( | |
__wasi_clockid_t id, | |
__wasi_timestamp_t *resolution | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("clock_res_get"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_clock_time_get( | |
__wasi_clockid_t id, | |
__wasi_timestamp_t precision, | |
__wasi_timestamp_t *time | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("clock_time_get"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_fd_advise( | |
__wasi_fd_t fd, | |
__wasi_filesize_t offset, | |
__wasi_filesize_t len, | |
__wasi_advice_t advice | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_advise"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_fd_allocate( | |
__wasi_fd_t fd, | |
__wasi_filesize_t offset, | |
__wasi_filesize_t len | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_allocate"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_fd_close( | |
__wasi_fd_t fd | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_close"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_fd_datasync( | |
__wasi_fd_t fd | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_datasync"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_fd_fdstat_get( | |
__wasi_fd_t fd, | |
__wasi_fdstat_t *stat | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_fdstat_get"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_fd_fdstat_set_flags( | |
__wasi_fd_t fd, | |
__wasi_fdflags_t flags | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_fdstat_set_flags"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_fd_fdstat_set_rights( | |
__wasi_fd_t fd, | |
__wasi_rights_t fs_rights_base, | |
__wasi_rights_t fs_rights_inheriting | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_fdstat_set_rights"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_fd_filestat_get( | |
__wasi_fd_t fd, | |
__wasi_filestat_t *buf | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_filestat_get"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_fd_filestat_set_size( | |
__wasi_fd_t fd, | |
__wasi_filesize_t size | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_filestat_set_size"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_fd_filestat_set_times( | |
__wasi_fd_t fd, | |
__wasi_timestamp_t atim, | |
__wasi_timestamp_t mtim, | |
__wasi_fstflags_t fst_flags | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_filestat_set_times"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_fd_pread( | |
__wasi_fd_t fd, | |
const __wasi_iovec_t *iovs, | |
size_t iovs_len, | |
__wasi_filesize_t offset, | |
__wasi_size_t *nread | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_pread"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_fd_prestat_get( | |
__wasi_fd_t fd, | |
__wasi_prestat_t *buf | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_prestat_get"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_fd_prestat_dir_name( | |
__wasi_fd_t fd, | |
uint8_t * path, | |
__wasi_size_t path_len | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_prestat_dir_name"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_fd_pwrite( | |
__wasi_fd_t fd, | |
const __wasi_ciovec_t *iovs, | |
size_t iovs_len, | |
__wasi_filesize_t offset, | |
__wasi_size_t *nwritten | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_pwrite"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_fd_read( | |
__wasi_fd_t fd, | |
const __wasi_iovec_t *iovs, | |
size_t iovs_len, | |
__wasi_size_t *nread | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_read"), | |
__warn_unused_result__ | |
)); | |
# 2098 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
__wasi_errno_t __wasi_fd_readdir( | |
__wasi_fd_t fd, | |
uint8_t * buf, | |
__wasi_size_t buf_len, | |
__wasi_dircookie_t cookie, | |
__wasi_size_t *bufused | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_readdir"), | |
__warn_unused_result__ | |
)); | |
# 2133 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
__wasi_errno_t __wasi_fd_renumber( | |
__wasi_fd_t fd, | |
__wasi_fd_t to | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_renumber"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_fd_seek( | |
__wasi_fd_t fd, | |
__wasi_filedelta_t offset, | |
__wasi_whence_t whence, | |
__wasi_filesize_t *newoffset | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_seek"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_fd_sync( | |
__wasi_fd_t fd | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_sync"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_fd_tell( | |
__wasi_fd_t fd, | |
__wasi_filesize_t *offset | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_tell"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_fd_write( | |
__wasi_fd_t fd, | |
const __wasi_ciovec_t *iovs, | |
size_t iovs_len, | |
__wasi_size_t *nwritten | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("fd_write"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_path_create_directory( | |
__wasi_fd_t fd, | |
const char *path, | |
size_t path_len | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("path_create_directory"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_path_filestat_get( | |
__wasi_fd_t fd, | |
__wasi_lookupflags_t flags, | |
const char *path, | |
size_t path_len, | |
__wasi_filestat_t *buf | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("path_filestat_get"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_path_filestat_set_times( | |
__wasi_fd_t fd, | |
__wasi_lookupflags_t flags, | |
const char *path, | |
size_t path_len, | |
__wasi_timestamp_t atim, | |
__wasi_timestamp_t mtim, | |
__wasi_fstflags_t fst_flags | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("path_filestat_set_times"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_path_link( | |
__wasi_fd_t old_fd, | |
__wasi_lookupflags_t old_flags, | |
const char *old_path, | |
size_t old_path_len, | |
__wasi_fd_t new_fd, | |
const char *new_path, | |
size_t new_path_len | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("path_link"), | |
__warn_unused_result__ | |
)); | |
# 2376 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
__wasi_errno_t __wasi_path_open( | |
__wasi_fd_t fd, | |
__wasi_lookupflags_t dirflags, | |
const char *path, | |
size_t path_len, | |
__wasi_oflags_t oflags, | |
# 2409 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
__wasi_rights_t fs_rights_base, | |
__wasi_rights_t fs_rights_inherting, | |
__wasi_fdflags_t fdflags, | |
__wasi_fd_t *opened_fd | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("path_open"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_path_readlink( | |
__wasi_fd_t fd, | |
const char *path, | |
size_t path_len, | |
uint8_t * buf, | |
__wasi_size_t buf_len, | |
__wasi_size_t *bufused | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("path_readlink"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_path_remove_directory( | |
__wasi_fd_t fd, | |
const char *path, | |
size_t path_len | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("path_remove_directory"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_path_rename( | |
__wasi_fd_t fd, | |
const char *old_path, | |
size_t old_path_len, | |
__wasi_fd_t new_fd, | |
const char *new_path, | |
size_t new_path_len | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("path_rename"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_path_symlink( | |
const char *old_path, | |
size_t old_path_len, | |
__wasi_fd_t fd, | |
const char *new_path, | |
size_t new_path_len | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("path_symlink"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_path_unlink_file( | |
__wasi_fd_t fd, | |
const char *path, | |
size_t path_len | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("path_unlink_file"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_poll_oneoff( | |
const __wasi_subscription_t * in, | |
__wasi_event_t * out, | |
__wasi_size_t nsubscriptions, | |
__wasi_size_t *nevents | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("poll_oneoff"), | |
__warn_unused_result__ | |
)); | |
__attribute__((__noreturn__)) void __wasi_proc_exit( | |
__wasi_exitcode_t rval | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("proc_exit"))); | |
__wasi_errno_t __wasi_proc_raise( | |
__wasi_signal_t sig | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("proc_raise"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_sched_yield( | |
void | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("sched_yield"), | |
__warn_unused_result__ | |
)); | |
# 2652 "/home/azakai/Dev/emscripten/cache/sysroot/include/wasi/api.h" 3 | |
__wasi_errno_t __wasi_random_get( | |
uint8_t * buf, | |
__wasi_size_t buf_len | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("random_get"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_sock_recv( | |
__wasi_fd_t fd, | |
const __wasi_iovec_t *ri_data, | |
size_t ri_data_len, | |
__wasi_riflags_t ri_flags, | |
__wasi_size_t *ro_datalen, | |
__wasi_roflags_t *ro_flags | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("sock_recv"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_sock_send( | |
__wasi_fd_t fd, | |
const __wasi_ciovec_t *si_data, | |
size_t si_data_len, | |
__wasi_siflags_t si_flags, | |
__wasi_size_t *so_datalen | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("sock_send"), | |
__warn_unused_result__ | |
)); | |
__wasi_errno_t __wasi_sock_shutdown( | |
__wasi_fd_t fd, | |
__wasi_sdflags_t how | |
) __attribute__(( | |
__import_module__("wasi_snapshot_preview1"), | |
__import_name__("sock_shutdown"), | |
__warn_unused_result__ | |
)); | |
} | |
# 2 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/errno.h" 2 3 | |
# 11 "/home/azakai/Dev/emscripten/cache/sysroot/include/errno.h" 2 3 | |
int *__errno_location(void); | |
extern char *program_invocation_short_name, *program_invocation_name; | |
} | |
# 32 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/errno.h" 2 3 | |
# 18 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__threading_support" 2 3 | |
# 25 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__threading_support" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/pthread.h" 1 3 | |
extern "C" { | |
# 28 "/home/azakai/Dev/emscripten/cache/sysroot/include/pthread.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 1 3 | |
# 89 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef struct { union { int __i[11]; volatile int __vi[11]; unsigned __s[11]; } __u; } pthread_attr_t; | |
typedef struct { union { int __i[7]; volatile int __vi[7]; volatile void *__p[7]; } __u; } pthread_mutex_t; | |
# 107 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef struct { union { int __i[12]; volatile int __vi[12]; void *__p[12]; } __u; } pthread_cond_t; | |
# 117 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef struct { union { int __i[8]; volatile int __vi[8]; void *__p[8]; } __u; } pthread_rwlock_t; | |
typedef struct { union { int __i[5]; volatile int __vi[5]; void *__p[5]; } __u; } pthread_barrier_t; | |
# 339 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef unsigned long pthread_t; | |
# 351 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef int pthread_once_t; | |
typedef unsigned pthread_key_t; | |
typedef int pthread_spinlock_t; | |
typedef struct { unsigned __attr; } pthread_mutexattr_t; | |
typedef struct { unsigned __attr; } pthread_condattr_t; | |
typedef struct { unsigned __attr; } pthread_barrierattr_t; | |
typedef struct { unsigned __attr[2]; } pthread_rwlockattr_t; | |
# 405 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef struct __sigset_t { unsigned long __bits[128/sizeof(long)]; } sigset_t; | |
# 29 "/home/azakai/Dev/emscripten/cache/sysroot/include/pthread.h" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/sched.h" 1 3 | |
extern "C" { | |
# 17 "/home/azakai/Dev/emscripten/cache/sysroot/include/sched.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 1 3 | |
# 18 "/home/azakai/Dev/emscripten/cache/sysroot/include/sched.h" 2 3 | |
struct sched_param { | |
int sched_priority; | |
int sched_ss_low_priority; | |
struct timespec sched_ss_repl_period; | |
struct timespec sched_ss_init_budget; | |
int sched_ss_max_repl; | |
}; | |
int sched_get_priority_max(int); | |
int sched_get_priority_min(int); | |
int sched_getparam(pid_t, struct sched_param *); | |
int sched_getscheduler(pid_t); | |
int sched_rr_get_interval(pid_t, struct timespec *); | |
int sched_setparam(pid_t, const struct sched_param *); | |
int sched_setscheduler(pid_t, int, const struct sched_param *); | |
int sched_yield(void); | |
# 69 "/home/azakai/Dev/emscripten/cache/sysroot/include/sched.h" 3 | |
int clone (int (*)(void *), void *, int, void *, ...); | |
int unshare(int); | |
int setns(int, int); | |
void *memcpy(void *__restrict, const void *__restrict, size_t); | |
int memcmp(const void *, const void *, size_t); | |
void *calloc(size_t, size_t); | |
void free(void *); | |
typedef struct cpu_set_t { unsigned long __bits[128/sizeof(long)]; } cpu_set_t; | |
int __sched_cpucount(size_t, const cpu_set_t *); | |
int sched_getcpu(void); | |
int sched_getaffinity(pid_t, size_t, cpu_set_t *); | |
int sched_setaffinity(pid_t, size_t, const cpu_set_t *); | |
# 101 "/home/azakai/Dev/emscripten/cache/sysroot/include/sched.h" 3 | |
static inline void __CPU_AND_S(size_t __size, cpu_set_t *__dest, const cpu_set_t *__src1, const cpu_set_t *__src2) { size_t __i; for (__i=0; __i<__size/sizeof(long); __i++) __dest->__bits[__i] = __src1->__bits[__i] & __src2->__bits[__i] ; } | |
static inline void __CPU_OR_S(size_t __size, cpu_set_t *__dest, const cpu_set_t *__src1, const cpu_set_t *__src2) { size_t __i; for (__i=0; __i<__size/sizeof(long); __i++) __dest->__bits[__i] = __src1->__bits[__i] | __src2->__bits[__i] ; } | |
static inline void __CPU_XOR_S(size_t __size, cpu_set_t *__dest, const cpu_set_t *__src1, const cpu_set_t *__src2) { size_t __i; for (__i=0; __i<__size/sizeof(long); __i++) __dest->__bits[__i] = __src1->__bits[__i] ^ __src2->__bits[__i] ; } | |
# 133 "/home/azakai/Dev/emscripten/cache/sysroot/include/sched.h" 3 | |
} | |
# 31 "/home/azakai/Dev/emscripten/cache/sysroot/include/pthread.h" 2 3 | |
# 77 "/home/azakai/Dev/emscripten/cache/sysroot/include/pthread.h" 3 | |
int pthread_create(pthread_t *__restrict, const pthread_attr_t *__restrict, void *(*)(void *), void *__restrict); | |
int pthread_detach(pthread_t); | |
__attribute__((__noreturn__)) void pthread_exit(void *); | |
int pthread_join(pthread_t, void **); | |
pthread_t pthread_self(void); | |
int pthread_equal(pthread_t, pthread_t); | |
int pthread_setcancelstate(int, int *); | |
int pthread_setcanceltype(int, int *); | |
void pthread_testcancel(void); | |
int pthread_cancel(pthread_t); | |
int pthread_getschedparam(pthread_t, int *__restrict, struct sched_param *__restrict); | |
int pthread_setschedparam(pthread_t, int, const struct sched_param *); | |
int pthread_setschedprio(pthread_t, int); | |
int pthread_once(pthread_once_t *, void (*)(void)); | |
int pthread_mutex_init(pthread_mutex_t *__restrict, const pthread_mutexattr_t *__restrict); | |
int pthread_mutex_lock(pthread_mutex_t *); | |
int pthread_mutex_unlock(pthread_mutex_t *); | |
int pthread_mutex_trylock(pthread_mutex_t *); | |
int pthread_mutex_timedlock(pthread_mutex_t *__restrict, const struct timespec *__restrict); | |
int pthread_mutex_destroy(pthread_mutex_t *); | |
int pthread_mutex_consistent(pthread_mutex_t *); | |
int pthread_mutex_getprioceiling(const pthread_mutex_t *__restrict, int *__restrict); | |
int pthread_mutex_setprioceiling(pthread_mutex_t *__restrict, int, int *__restrict); | |
int pthread_cond_init(pthread_cond_t *__restrict, const pthread_condattr_t *__restrict); | |
int pthread_cond_destroy(pthread_cond_t *); | |
int pthread_cond_wait(pthread_cond_t *__restrict, pthread_mutex_t *__restrict); | |
int pthread_cond_timedwait(pthread_cond_t *__restrict, pthread_mutex_t *__restrict, const struct timespec *__restrict); | |
int pthread_cond_broadcast(pthread_cond_t *); | |
int pthread_cond_signal(pthread_cond_t *); | |
int pthread_rwlock_init(pthread_rwlock_t *__restrict, const pthread_rwlockattr_t *__restrict); | |
int pthread_rwlock_destroy(pthread_rwlock_t *); | |
int pthread_rwlock_rdlock(pthread_rwlock_t *); | |
int pthread_rwlock_tryrdlock(pthread_rwlock_t *); | |
int pthread_rwlock_timedrdlock(pthread_rwlock_t *__restrict, const struct timespec *__restrict); | |
int pthread_rwlock_wrlock(pthread_rwlock_t *); | |
int pthread_rwlock_trywrlock(pthread_rwlock_t *); | |
int pthread_rwlock_timedwrlock(pthread_rwlock_t *__restrict, const struct timespec *__restrict); | |
int pthread_rwlock_unlock(pthread_rwlock_t *); | |
int pthread_spin_init(pthread_spinlock_t *, int); | |
int pthread_spin_destroy(pthread_spinlock_t *); | |
int pthread_spin_lock(pthread_spinlock_t *); | |
int pthread_spin_trylock(pthread_spinlock_t *); | |
int pthread_spin_unlock(pthread_spinlock_t *); | |
int pthread_barrier_init(pthread_barrier_t *__restrict, const pthread_barrierattr_t *__restrict, unsigned); | |
int pthread_barrier_destroy(pthread_barrier_t *); | |
int pthread_barrier_wait(pthread_barrier_t *); | |
int pthread_key_create(pthread_key_t *, void (*)(void *)); | |
int pthread_key_delete(pthread_key_t); | |
void *pthread_getspecific(pthread_key_t); | |
int pthread_setspecific(pthread_key_t, const void *); | |
int pthread_attr_init(pthread_attr_t *); | |
int pthread_attr_destroy(pthread_attr_t *); | |
int pthread_attr_getguardsize(const pthread_attr_t *__restrict, size_t *__restrict); | |
int pthread_attr_setguardsize(pthread_attr_t *, size_t); | |
int pthread_attr_getstacksize(const pthread_attr_t *__restrict, size_t *__restrict); | |
int pthread_attr_setstacksize(pthread_attr_t *, size_t); | |
int pthread_attr_getdetachstate(const pthread_attr_t *, int *); | |
int pthread_attr_setdetachstate(pthread_attr_t *, int); | |
int pthread_attr_getstack(const pthread_attr_t *__restrict, void **__restrict, size_t *__restrict); | |
int pthread_attr_setstack(pthread_attr_t *, void *, size_t); | |
int pthread_attr_getscope(const pthread_attr_t *__restrict, int *__restrict); | |
int pthread_attr_setscope(pthread_attr_t *, int); | |
int pthread_attr_getschedpolicy(const pthread_attr_t *__restrict, int *__restrict); | |
int pthread_attr_setschedpolicy(pthread_attr_t *, int); | |
int pthread_attr_getschedparam(const pthread_attr_t *__restrict, struct sched_param *__restrict); | |
int pthread_attr_setschedparam(pthread_attr_t *__restrict, const struct sched_param *__restrict); | |
int pthread_attr_getinheritsched(const pthread_attr_t *__restrict, int *__restrict); | |
int pthread_attr_setinheritsched(pthread_attr_t *, int); | |
int pthread_mutexattr_destroy(pthread_mutexattr_t *); | |
int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *__restrict, int *__restrict); | |
int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *__restrict, int *__restrict); | |
int pthread_mutexattr_getpshared(const pthread_mutexattr_t *__restrict, int *__restrict); | |
int pthread_mutexattr_getrobust(const pthread_mutexattr_t *__restrict, int *__restrict); | |
int pthread_mutexattr_gettype(const pthread_mutexattr_t *__restrict, int *__restrict); | |
int pthread_mutexattr_init(pthread_mutexattr_t *); | |
int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int); | |
int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, int); | |
int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int); | |
int pthread_mutexattr_setrobust(pthread_mutexattr_t *, int); | |
int pthread_mutexattr_settype(pthread_mutexattr_t *, int); | |
int pthread_condattr_init(pthread_condattr_t *); | |
int pthread_condattr_destroy(pthread_condattr_t *); | |
int pthread_condattr_setclock(pthread_condattr_t *, clockid_t); | |
int pthread_condattr_setpshared(pthread_condattr_t *, int); | |
int pthread_condattr_getclock(const pthread_condattr_t *__restrict, clockid_t *__restrict); | |
int pthread_condattr_getpshared(const pthread_condattr_t *__restrict, int *__restrict); | |
int pthread_rwlockattr_init(pthread_rwlockattr_t *); | |
int pthread_rwlockattr_destroy(pthread_rwlockattr_t *); | |
int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int); | |
int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *__restrict, int *__restrict); | |
int pthread_barrierattr_destroy(pthread_barrierattr_t *); | |
int pthread_barrierattr_getpshared(const pthread_barrierattr_t *__restrict, int *__restrict); | |
int pthread_barrierattr_init(pthread_barrierattr_t *); | |
int pthread_barrierattr_setpshared(pthread_barrierattr_t *, int); | |
int pthread_atfork(void (*)(void), void (*)(void), void (*)(void)); | |
int pthread_getconcurrency(void); | |
int pthread_setconcurrency(int); | |
int pthread_getcpuclockid(pthread_t, clockid_t *); | |
struct __ptcb { | |
void (*__f)(void *); | |
void *__x; | |
struct __ptcb *__next; | |
}; | |
void _pthread_cleanup_push(struct __ptcb *, void (*)(void *), void *); | |
void _pthread_cleanup_pop(struct __ptcb *, int); | |
struct cpu_set_t; | |
int pthread_getaffinity_np(pthread_t, size_t, struct cpu_set_t *); | |
int pthread_setaffinity_np(pthread_t, size_t, const struct cpu_set_t *); | |
int pthread_getattr_np(pthread_t, pthread_attr_t *); | |
int pthread_tryjoin_np(pthread_t, void **); | |
int pthread_timedjoin_np(pthread_t, void **, const struct timespec *); | |
} | |
# 33 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__threading_support" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/semaphore.h" 1 3 | |
extern "C" { | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 1 3 | |
# 12 "/home/azakai/Dev/emscripten/cache/sysroot/include/semaphore.h" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/fcntl.h" 1 3 | |
extern "C" { | |
# 24 "/home/azakai/Dev/emscripten/cache/sysroot/include/fcntl.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 1 3 | |
# 143 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef long int ssize_t; | |
# 220 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef unsigned mode_t; | |
# 230 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
typedef long long int off_t; | |
# 411 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 3 | |
struct iovec { void *iov_base; size_t iov_len; }; | |
# 25 "/home/azakai/Dev/emscripten/cache/sysroot/include/fcntl.h" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/fcntl.h" 1 3 | |
# 27 "/home/azakai/Dev/emscripten/cache/sysroot/include/fcntl.h" 2 3 | |
struct flock { | |
short l_type; | |
short l_whence; | |
off_t l_start; | |
off_t l_len; | |
pid_t l_pid; | |
}; | |
int creat(const char *, mode_t); | |
int fcntl(int, int, ...); | |
int open(const char *, int, ...); | |
int openat(int, const char *, int, ...); | |
int posix_fadvise(int, off_t, off_t, int); | |
int posix_fallocate(int, off_t, off_t); | |
# 148 "/home/azakai/Dev/emscripten/cache/sysroot/include/fcntl.h" 3 | |
int lockf(int, int, off_t); | |
struct f_owner_ex { | |
int type; | |
pid_t pid; | |
}; | |
# 169 "/home/azakai/Dev/emscripten/cache/sysroot/include/fcntl.h" 3 | |
int fallocate(int, int, off_t, off_t); | |
ssize_t readahead(int, off_t, size_t); | |
int sync_file_range(int, off_t, off_t, unsigned); | |
ssize_t vmsplice(int, const struct iovec *, size_t, unsigned); | |
ssize_t splice(int, off_t *, int, off_t *, size_t, unsigned); | |
ssize_t tee(int, int, size_t, unsigned); | |
# 194 "/home/azakai/Dev/emscripten/cache/sysroot/include/fcntl.h" 3 | |
} | |
# 14 "/home/azakai/Dev/emscripten/cache/sysroot/include/semaphore.h" 2 3 | |
typedef struct { | |
volatile int __val[4*sizeof(long)/sizeof(int)]; | |
} sem_t; | |
int sem_close(sem_t *); | |
int sem_destroy(sem_t *); | |
int sem_getvalue(sem_t *__restrict, int *__restrict); | |
int sem_init(sem_t *, int, unsigned); | |
sem_t *sem_open(const char *, int, ...); | |
int sem_post(sem_t *); | |
int sem_timedwait(sem_t *__restrict, const struct timespec *__restrict); | |
int sem_trywait(sem_t *); | |
int sem_unlink(const char *); | |
int sem_wait(sem_t *); | |
} | |
# 39 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__threading_support" 2 3 | |
# 58 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__threading_support" 3 | |
typedef ::timespec __libcpp_timespec_t; | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__undef_macros" 1 3 | |
# 63 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__threading_support" 2 3 | |
namespace std { inline namespace __2 { | |
typedef pthread_mutex_t __libcpp_mutex_t; | |
typedef pthread_mutex_t __libcpp_recursive_mutex_t; | |
typedef pthread_cond_t __libcpp_condvar_t; | |
typedef sem_t __libcpp_semaphore_t; | |
typedef pthread_once_t __libcpp_exec_once_flag; | |
typedef pthread_t __libcpp_thread_id; | |
typedef pthread_t __libcpp_thread_t; | |
typedef pthread_key_t __libcpp_tls_key; | |
# 173 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__threading_support" 3 | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
int __libcpp_recursive_mutex_init(__libcpp_recursive_mutex_t *__m); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
int __libcpp_recursive_mutex_lock(__libcpp_recursive_mutex_t *__m); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool __libcpp_recursive_mutex_trylock(__libcpp_recursive_mutex_t *__m); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
int __libcpp_recursive_mutex_unlock(__libcpp_recursive_mutex_t *__m); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
int __libcpp_recursive_mutex_destroy(__libcpp_recursive_mutex_t *__m); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
int __libcpp_mutex_lock(__libcpp_mutex_t *__m); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool __libcpp_mutex_trylock(__libcpp_mutex_t *__m); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
int __libcpp_mutex_unlock(__libcpp_mutex_t *__m); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
int __libcpp_mutex_destroy(__libcpp_mutex_t *__m); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
int __libcpp_condvar_signal(__libcpp_condvar_t* __cv); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
int __libcpp_condvar_broadcast(__libcpp_condvar_t* __cv); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
int __libcpp_condvar_wait(__libcpp_condvar_t* __cv, __libcpp_mutex_t* __m); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
int __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m, | |
__libcpp_timespec_t *__ts); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
int __libcpp_condvar_destroy(__libcpp_condvar_t* __cv); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool __libcpp_semaphore_init(__libcpp_semaphore_t* __sem, int __init); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool __libcpp_semaphore_destroy(__libcpp_semaphore_t* __sem); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool __libcpp_semaphore_post(__libcpp_semaphore_t* __sem); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool __libcpp_semaphore_wait(__libcpp_semaphore_t* __sem); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool __libcpp_semaphore_wait_timed(__libcpp_semaphore_t* __sem, chrono::nanoseconds const& __ns); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
int __libcpp_execute_once(__libcpp_exec_once_flag *flag, | |
void (*init_routine)()); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool __libcpp_thread_id_equal(__libcpp_thread_id t1, __libcpp_thread_id t2); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool __libcpp_thread_id_less(__libcpp_thread_id t1, __libcpp_thread_id t2); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool __libcpp_thread_isnull(const __libcpp_thread_t *__t); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
int __libcpp_thread_create(__libcpp_thread_t *__t, void *(*__func)(void *), | |
void *__arg); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
__libcpp_thread_id __libcpp_thread_get_current_id(); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
__libcpp_thread_id __libcpp_thread_get_id(const __libcpp_thread_t *__t); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
int __libcpp_thread_join(__libcpp_thread_t *__t); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
int __libcpp_thread_detach(__libcpp_thread_t *__t); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void __libcpp_thread_yield(); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void __libcpp_thread_sleep_for(const chrono::nanoseconds& __ns); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
int __libcpp_tls_create(__libcpp_tls_key* __key, | |
void(* __at_exit)(void*)); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void *__libcpp_tls_get(__libcpp_tls_key __key); | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
int __libcpp_tls_set(__libcpp_tls_key __key, void *__p); | |
struct __libcpp_timed_backoff_policy { | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool operator()(chrono::nanoseconds __elapsed) const | |
{ | |
if(__elapsed > chrono::milliseconds(128)) | |
__libcpp_thread_sleep_for(chrono::milliseconds(8)); | |
else if(__elapsed > chrono::microseconds(64)) | |
__libcpp_thread_sleep_for(__elapsed / 2); | |
else if(__elapsed > chrono::microseconds(4)) | |
__libcpp_thread_yield(); | |
else | |
{} | |
return false; | |
} | |
}; | |
static constexpr const int __libcpp_polling_count = 64; | |
template<class _Fn, class _BFn> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool __libcpp_thread_poll_with_backoff( | |
_Fn && __f, _BFn && __bf, chrono::nanoseconds __max_elapsed = chrono::nanoseconds::zero()) | |
{ | |
auto const __start = chrono::high_resolution_clock::now(); | |
for(int __count = 0;;) { | |
if(__f()) | |
return true; | |
if(__count < __libcpp_polling_count) { | |
__count += 1; | |
continue; | |
} | |
chrono::nanoseconds const __elapsed = chrono::high_resolution_clock::now() - __start; | |
if(__max_elapsed != chrono::nanoseconds::zero() && __max_elapsed < __elapsed) | |
return false; | |
if(__bf(__elapsed)) | |
return false; | |
} | |
} | |
namespace __thread_detail { | |
inline __libcpp_timespec_t __convert_to_timespec(const chrono::nanoseconds& __ns) | |
{ | |
using namespace chrono; | |
seconds __s = duration_cast<seconds>(__ns); | |
__libcpp_timespec_t __ts; | |
typedef decltype(__ts.tv_sec) __ts_sec; | |
const __ts_sec __ts_sec_max = numeric_limits<__ts_sec>::max(); | |
if (__s.count() < __ts_sec_max) | |
{ | |
__ts.tv_sec = static_cast<__ts_sec>(__s.count()); | |
__ts.tv_nsec = static_cast<decltype(__ts.tv_nsec)>((__ns - __s).count()); | |
} | |
else | |
{ | |
__ts.tv_sec = __ts_sec_max; | |
__ts.tv_nsec = 999999999; | |
} | |
return __ts; | |
} | |
} | |
int __libcpp_recursive_mutex_init(__libcpp_recursive_mutex_t *__m) | |
{ | |
pthread_mutexattr_t attr; | |
int __ec = pthread_mutexattr_init(&attr); | |
if (__ec) | |
return __ec; | |
__ec = pthread_mutexattr_settype(&attr, 1); | |
if (__ec) { | |
pthread_mutexattr_destroy(&attr); | |
return __ec; | |
} | |
__ec = pthread_mutex_init(__m, &attr); | |
if (__ec) { | |
pthread_mutexattr_destroy(&attr); | |
return __ec; | |
} | |
__ec = pthread_mutexattr_destroy(&attr); | |
if (__ec) { | |
pthread_mutex_destroy(__m); | |
return __ec; | |
} | |
return 0; | |
} | |
int __libcpp_recursive_mutex_lock(__libcpp_recursive_mutex_t *__m) | |
{ | |
return pthread_mutex_lock(__m); | |
} | |
bool __libcpp_recursive_mutex_trylock(__libcpp_recursive_mutex_t *__m) | |
{ | |
return pthread_mutex_trylock(__m) == 0; | |
} | |
int __libcpp_recursive_mutex_unlock(__libcpp_mutex_t *__m) | |
{ | |
return pthread_mutex_unlock(__m); | |
} | |
int __libcpp_recursive_mutex_destroy(__libcpp_recursive_mutex_t *__m) | |
{ | |
return pthread_mutex_destroy(__m); | |
} | |
int __libcpp_mutex_lock(__libcpp_mutex_t *__m) | |
{ | |
return pthread_mutex_lock(__m); | |
} | |
bool __libcpp_mutex_trylock(__libcpp_mutex_t *__m) | |
{ | |
return pthread_mutex_trylock(__m) == 0; | |
} | |
int __libcpp_mutex_unlock(__libcpp_mutex_t *__m) | |
{ | |
return pthread_mutex_unlock(__m); | |
} | |
int __libcpp_mutex_destroy(__libcpp_mutex_t *__m) | |
{ | |
return pthread_mutex_destroy(__m); | |
} | |
int __libcpp_condvar_signal(__libcpp_condvar_t *__cv) | |
{ | |
return pthread_cond_signal(__cv); | |
} | |
int __libcpp_condvar_broadcast(__libcpp_condvar_t *__cv) | |
{ | |
return pthread_cond_broadcast(__cv); | |
} | |
int __libcpp_condvar_wait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m) | |
{ | |
return pthread_cond_wait(__cv, __m); | |
} | |
int __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m, | |
__libcpp_timespec_t *__ts) | |
{ | |
return pthread_cond_timedwait(__cv, __m, __ts); | |
} | |
int __libcpp_condvar_destroy(__libcpp_condvar_t *__cv) | |
{ | |
return pthread_cond_destroy(__cv); | |
} | |
bool __libcpp_semaphore_init(__libcpp_semaphore_t* __sem, int __init) | |
{ | |
return sem_init(__sem, 0, __init) == 0; | |
} | |
bool __libcpp_semaphore_destroy(__libcpp_semaphore_t* __sem) | |
{ | |
return sem_destroy(__sem) == 0; | |
} | |
bool __libcpp_semaphore_post(__libcpp_semaphore_t* __sem) | |
{ | |
return sem_post(__sem) == 0; | |
} | |
bool __libcpp_semaphore_wait(__libcpp_semaphore_t* __sem) | |
{ | |
return sem_wait(__sem) == 0; | |
} | |
bool __libcpp_semaphore_wait_timed(__libcpp_semaphore_t* __sem, chrono::nanoseconds const& __ns) | |
{ | |
auto const __abs_time = chrono::system_clock::now().time_since_epoch() + __ns; | |
__libcpp_timespec_t __ts = __thread_detail::__convert_to_timespec(__abs_time); | |
return sem_timedwait(__sem, &__ts) == 0; | |
} | |
int __libcpp_execute_once(__libcpp_exec_once_flag *flag, | |
void (*init_routine)()) { | |
return pthread_once(flag, init_routine); | |
} | |
bool __libcpp_thread_id_equal(__libcpp_thread_id t1, __libcpp_thread_id t2) | |
{ | |
return t1 == t2; | |
} | |
bool __libcpp_thread_id_less(__libcpp_thread_id t1, __libcpp_thread_id t2) | |
{ | |
return t1 < t2; | |
} | |
bool __libcpp_thread_isnull(const __libcpp_thread_t *__t) { | |
return *__t == __libcpp_thread_t(); | |
} | |
int __libcpp_thread_create(__libcpp_thread_t *__t, void *(*__func)(void *), | |
void *__arg) | |
{ | |
return pthread_create(__t, nullptr, __func, __arg); | |
} | |
__libcpp_thread_id __libcpp_thread_get_current_id() | |
{ | |
const __libcpp_thread_t thread = pthread_self(); | |
return __libcpp_thread_get_id(&thread); | |
} | |
__libcpp_thread_id __libcpp_thread_get_id(const __libcpp_thread_t *__t) | |
{ | |
return *__t; | |
} | |
int __libcpp_thread_join(__libcpp_thread_t *__t) | |
{ | |
return pthread_join(*__t, nullptr); | |
} | |
int __libcpp_thread_detach(__libcpp_thread_t *__t) | |
{ | |
return pthread_detach(*__t); | |
} | |
void __libcpp_thread_yield() | |
{ | |
sched_yield(); | |
} | |
void __libcpp_thread_sleep_for(const chrono::nanoseconds& __ns) | |
{ | |
__libcpp_timespec_t __ts = __thread_detail::__convert_to_timespec(__ns); | |
while (nanosleep(&__ts, &__ts) == -1 && (*__errno_location()) == (27)); | |
} | |
int __libcpp_tls_create(__libcpp_tls_key *__key, void (*__at_exit)(void *)) | |
{ | |
return pthread_key_create(__key, __at_exit); | |
} | |
void *__libcpp_tls_get(__libcpp_tls_key __key) | |
{ | |
return pthread_getspecific(__key); | |
} | |
int __libcpp_tls_set(__libcpp_tls_key __key, void *__p) | |
{ | |
return pthread_setspecific(__key, __p); | |
} | |
# 726 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__threading_support" 3 | |
class __attribute__ ((__visibility__("default"))) thread; | |
class __attribute__ ((__visibility__("default"))) __thread_id; | |
namespace this_thread | |
{ | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __thread_id get_id() noexcept; | |
} | |
template<> struct hash<__thread_id>; | |
class __attribute__ ((__type_visibility__("default"))) __thread_id | |
{ | |
__libcpp_thread_id __id_; | |
public: | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
__thread_id() noexcept : __id_(0) {} | |
friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool operator==(__thread_id __x, __thread_id __y) noexcept | |
{ | |
if (__x.__id_ == 0) return __y.__id_ == 0; | |
if (__y.__id_ == 0) return false; | |
return __libcpp_thread_id_equal(__x.__id_, __y.__id_); | |
} | |
friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool operator!=(__thread_id __x, __thread_id __y) noexcept | |
{return !(__x == __y);} | |
friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool operator< (__thread_id __x, __thread_id __y) noexcept | |
{ | |
if (__x.__id_ == 0) return __y.__id_ != 0; | |
if (__y.__id_ == 0) return false; | |
return __libcpp_thread_id_less(__x.__id_, __y.__id_); | |
} | |
friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool operator<=(__thread_id __x, __thread_id __y) noexcept | |
{return !(__y < __x);} | |
friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool operator> (__thread_id __x, __thread_id __y) noexcept | |
{return __y < __x ;} | |
friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool operator>=(__thread_id __x, __thread_id __y) noexcept | |
{return !(__x < __y);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void __reset() { __id_ = 0; } | |
template<class _CharT, class _Traits> | |
friend | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
basic_ostream<_CharT, _Traits>& | |
operator<<(basic_ostream<_CharT, _Traits>& __os, __thread_id __id); | |
private: | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
__thread_id(__libcpp_thread_id __id) : __id_(__id) {} | |
friend __thread_id this_thread::get_id() noexcept; | |
friend class __attribute__ ((__visibility__("default"))) thread; | |
friend struct __attribute__ ((__type_visibility__("default"))) hash<__thread_id>; | |
}; | |
namespace this_thread | |
{ | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
__thread_id | |
get_id() noexcept | |
{ | |
return __libcpp_thread_get_current_id(); | |
} | |
} | |
} } | |
# 580 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/atomic" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstring" 1 3 | |
# 59 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstring" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 60 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstring" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/compat/string.h" 1 3 | |
extern "C" { | |
extern char* strlwr(char *); | |
extern char* strupr(char *); | |
} | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/string.h" 1 3 | |
# 54 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/string.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 55 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/string.h" 2 3 | |
# 58 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/string.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/string.h" 1 3 | |
extern "C" { | |
# 23 "/home/azakai/Dev/emscripten/cache/sysroot/include/string.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 1 3 | |
# 24 "/home/azakai/Dev/emscripten/cache/sysroot/include/string.h" 2 3 | |
void *memcpy (void *__restrict, const void *__restrict, size_t); | |
void *memmove (void *, const void *, size_t); | |
void *memset (void *, int, size_t); | |
int memcmp (const void *, const void *, size_t); | |
void *memchr (const void *, int, size_t); | |
char *strcpy (char *__restrict, const char *__restrict); | |
char *strncpy (char *__restrict, const char *__restrict, size_t); | |
char *strcat (char *__restrict, const char *__restrict); | |
char *strncat (char *__restrict, const char *__restrict, size_t); | |
int strcmp (const char *, const char *); | |
int strncmp (const char *, const char *, size_t); | |
int strcoll (const char *, const char *); | |
size_t strxfrm (char *__restrict, const char *__restrict, size_t); | |
char *strchr (const char *, int); | |
char *strrchr (const char *, int); | |
size_t strcspn (const char *, const char *); | |
size_t strspn (const char *, const char *); | |
char *strpbrk (const char *, const char *); | |
char *strstr (const char *, const char *); | |
char *strtok (char *__restrict, const char *__restrict); | |
size_t strlen (const char *); | |
char *strerror (int); | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/strings.h" 1 3 | |
extern "C" { | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 1 3 | |
# 12 "/home/azakai/Dev/emscripten/cache/sysroot/include/strings.h" 2 3 | |
int bcmp (const void *, const void *, size_t); | |
void bcopy (const void *, void *, size_t); | |
void bzero (void *, size_t); | |
char *index (const char *, int); | |
char *rindex (const char *, int); | |
int ffs (int); | |
int ffsl (long); | |
int ffsll (long long); | |
int strcasecmp (const char *, const char *); | |
int strncasecmp (const char *, const char *, size_t); | |
int strcasecmp_l (const char *, const char *, locale_t); | |
int strncasecmp_l (const char *, const char *, size_t, locale_t); | |
} | |
# 58 "/home/azakai/Dev/emscripten/cache/sysroot/include/string.h" 2 3 | |
char *strtok_r (char *__restrict, const char *__restrict, char **__restrict); | |
int strerror_r (int, char *, size_t); | |
char *stpcpy(char *__restrict, const char *__restrict); | |
char *stpncpy(char *__restrict, const char *__restrict, size_t); | |
size_t strnlen (const char *, size_t); | |
char *strdup (const char *); | |
char *strndup (const char *, size_t); | |
char *strsignal(int); | |
char *strerror_l (int, locale_t); | |
int strcoll_l (const char *, const char *, locale_t); | |
size_t strxfrm_l (char *__restrict, const char *__restrict, size_t, locale_t); | |
void *memccpy (void *__restrict, const void *__restrict, int, size_t); | |
char *strsep(char **, const char *); | |
size_t strlcat (char *, const char *, size_t); | |
size_t strlcpy (char *, const char *, size_t); | |
int strverscmp (const char *, const char *); | |
int strcasecmp_l (const char *, const char *, locale_t); | |
int strncasecmp_l (const char *, const char *, size_t, locale_t); | |
char *strchrnul(const char *, int); | |
char *strcasestr(const char *, const char *); | |
void *memmem(const void *, size_t, const void *, size_t); | |
void *memrchr(const void *, int, size_t); | |
void *mempcpy(void *, const void *, size_t); | |
} | |
# 61 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/string.h" 2 3 | |
# 71 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/string.h" 3 | |
extern "C++" { | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
char* __libcpp_strchr(const char* __s, int __c) {return (char*)strchr(__s, __c);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
const char* strchr(const char* __s, int __c) {return __libcpp_strchr(__s, __c);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
char* strchr( char* __s, int __c) {return __libcpp_strchr(__s, __c);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
char* __libcpp_strpbrk(const char* __s1, const char* __s2) {return (char*)strpbrk(__s1, __s2);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
const char* strpbrk(const char* __s1, const char* __s2) {return __libcpp_strpbrk(__s1, __s2);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
char* strpbrk( char* __s1, const char* __s2) {return __libcpp_strpbrk(__s1, __s2);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
char* __libcpp_strrchr(const char* __s, int __c) {return (char*)strrchr(__s, __c);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
const char* strrchr(const char* __s, int __c) {return __libcpp_strrchr(__s, __c);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
char* strrchr( char* __s, int __c) {return __libcpp_strrchr(__s, __c);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void* __libcpp_memchr(const void* __s, int __c, size_t __n) {return (void*)memchr(__s, __c, __n);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
const void* memchr(const void* __s, int __c, size_t __n) {return __libcpp_memchr(__s, __c, __n);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
void* memchr( void* __s, int __c, size_t __n) {return __libcpp_memchr(__s, __c, __n);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
char* __libcpp_strstr(const char* __s1, const char* __s2) {return (char*)strstr(__s1, __s2);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
const char* strstr(const char* __s1, const char* __s2) {return __libcpp_strstr(__s1, __s2);} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) | |
char* strstr( char* __s1, const char* __s2) {return __libcpp_strstr(__s1, __s2);} | |
} | |
# 16 "/home/azakai/Dev/emscripten/cache/sysroot/include/compat/string.h" 2 3 | |
# 61 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstring" 2 3 | |
# 64 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstring" 3 | |
namespace std { inline namespace __2 { | |
using ::size_t; | |
using ::memcpy; | |
using ::memmove; | |
using ::strcpy; | |
using ::strncpy; | |
using ::strcat; | |
using ::strncat; | |
using ::memcmp; | |
using ::strcmp; | |
using ::strncmp; | |
using ::strcoll; | |
using ::strxfrm; | |
using ::memchr; | |
using ::strchr; | |
using ::strcspn; | |
using ::strpbrk; | |
using ::strrchr; | |
using ::strspn; | |
using ::strstr; | |
using ::strtok; | |
using ::memset; | |
using ::strerror; | |
using ::strlen; | |
} } | |
# 583 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/atomic" 2 3 | |
# 588 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/atomic" 3 | |
# 616 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/atomic" 3 | |
namespace std { inline namespace __2 { | |
enum __legacy_memory_order { | |
__mo_relaxed, | |
__mo_consume, | |
__mo_acquire, | |
__mo_release, | |
__mo_acq_rel, | |
__mo_seq_cst | |
}; | |
typedef underlying_type<__legacy_memory_order>::type __memory_order_underlying_t; | |
# 652 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/atomic" 3 | |
typedef enum memory_order { | |
memory_order_relaxed = __mo_relaxed, | |
memory_order_consume = __mo_consume, | |
memory_order_acquire = __mo_acquire, | |
memory_order_release = __mo_release, | |
memory_order_acq_rel = __mo_acq_rel, | |
memory_order_seq_cst = __mo_seq_cst, | |
} memory_order; | |
template <typename _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool __cxx_nonatomic_compare_equal(_Tp const& __lhs, _Tp const& __rhs) { | |
return std::__2::memcmp(&__lhs, &__rhs, sizeof(_Tp)) == 0; | |
} | |
static_assert((is_same<underlying_type<memory_order>::type, __memory_order_underlying_t>::value), | |
"unexpected underlying type for std::memory_order"); | |
# 948 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/atomic" 3 | |
template <typename _Tp> | |
struct __cxx_atomic_base_impl { | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
__cxx_atomic_base_impl() noexcept = default; | |
constexpr explicit __cxx_atomic_base_impl(_Tp value) noexcept | |
: __a_value(value) {} | |
__extension__ _Atomic(_Tp) __a_value; | |
}; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) inline | |
void __cxx_atomic_thread_fence(memory_order __order) noexcept { | |
__c11_atomic_thread_fence(static_cast<__memory_order_underlying_t>(__order)); | |
} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) inline | |
void __cxx_atomic_signal_fence(memory_order __order) noexcept { | |
__c11_atomic_signal_fence(static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void __cxx_atomic_init(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp __val) noexcept { | |
__c11_atomic_init(&__a->__a_value, __val); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void __cxx_atomic_init(__cxx_atomic_base_impl<_Tp> * __a, _Tp __val) noexcept { | |
__c11_atomic_init(&__a->__a_value, __val); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void __cxx_atomic_store(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp __val, memory_order __order) noexcept { | |
__c11_atomic_store(&__a->__a_value, __val, static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void __cxx_atomic_store(__cxx_atomic_base_impl<_Tp> * __a, _Tp __val, memory_order __order) noexcept { | |
__c11_atomic_store(&__a->__a_value, __val, static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp __cxx_atomic_load(__cxx_atomic_base_impl<_Tp> const volatile* __a, memory_order __order) noexcept { | |
using __ptr_type = typename remove_const<decltype(__a->__a_value)>::type*; | |
return __c11_atomic_load(const_cast<__ptr_type>(&__a->__a_value), static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp __cxx_atomic_load(__cxx_atomic_base_impl<_Tp> const* __a, memory_order __order) noexcept { | |
using __ptr_type = typename remove_const<decltype(__a->__a_value)>::type*; | |
return __c11_atomic_load(const_cast<__ptr_type>(&__a->__a_value), static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp __cxx_atomic_exchange(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp __value, memory_order __order) noexcept { | |
return __c11_atomic_exchange(&__a->__a_value, __value, static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp __cxx_atomic_exchange(__cxx_atomic_base_impl<_Tp> * __a, _Tp __value, memory_order __order) noexcept { | |
return __c11_atomic_exchange(&__a->__a_value, __value, static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool __cxx_atomic_compare_exchange_strong(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp* __expected, _Tp __value, memory_order __success, memory_order __failure) noexcept { | |
return __c11_atomic_compare_exchange_strong(&__a->__a_value, __expected, __value, static_cast<__memory_order_underlying_t>(__success), static_cast<__memory_order_underlying_t>(__failure)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool __cxx_atomic_compare_exchange_strong(__cxx_atomic_base_impl<_Tp> * __a, _Tp* __expected, _Tp __value, memory_order __success, memory_order __failure) noexcept { | |
return __c11_atomic_compare_exchange_strong(&__a->__a_value, __expected, __value, static_cast<__memory_order_underlying_t>(__success), static_cast<__memory_order_underlying_t>(__failure)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool __cxx_atomic_compare_exchange_weak(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp* __expected, _Tp __value, memory_order __success, memory_order __failure) noexcept { | |
return __c11_atomic_compare_exchange_weak(&__a->__a_value, __expected, __value, static_cast<__memory_order_underlying_t>(__success), static_cast<__memory_order_underlying_t>(__failure)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool __cxx_atomic_compare_exchange_weak(__cxx_atomic_base_impl<_Tp> * __a, _Tp* __expected, _Tp __value, memory_order __success, memory_order __failure) noexcept { | |
return __c11_atomic_compare_exchange_weak(&__a->__a_value, __expected, __value, static_cast<__memory_order_underlying_t>(__success), static_cast<__memory_order_underlying_t>(__failure)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp __cxx_atomic_fetch_add(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp __delta, memory_order __order) noexcept { | |
return __c11_atomic_fetch_add(&__a->__a_value, __delta, static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp __cxx_atomic_fetch_add(__cxx_atomic_base_impl<_Tp> * __a, _Tp __delta, memory_order __order) noexcept { | |
return __c11_atomic_fetch_add(&__a->__a_value, __delta, static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* __cxx_atomic_fetch_add(__cxx_atomic_base_impl<_Tp*> volatile* __a, ptrdiff_t __delta, memory_order __order) noexcept { | |
return __c11_atomic_fetch_add(&__a->__a_value, __delta, static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* __cxx_atomic_fetch_add(__cxx_atomic_base_impl<_Tp*> * __a, ptrdiff_t __delta, memory_order __order) noexcept { | |
return __c11_atomic_fetch_add(&__a->__a_value, __delta, static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp __cxx_atomic_fetch_sub(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp __delta, memory_order __order) noexcept { | |
return __c11_atomic_fetch_sub(&__a->__a_value, __delta, static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp __cxx_atomic_fetch_sub(__cxx_atomic_base_impl<_Tp> * __a, _Tp __delta, memory_order __order) noexcept { | |
return __c11_atomic_fetch_sub(&__a->__a_value, __delta, static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* __cxx_atomic_fetch_sub(__cxx_atomic_base_impl<_Tp*> volatile* __a, ptrdiff_t __delta, memory_order __order) noexcept { | |
return __c11_atomic_fetch_sub(&__a->__a_value, __delta, static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* __cxx_atomic_fetch_sub(__cxx_atomic_base_impl<_Tp*> * __a, ptrdiff_t __delta, memory_order __order) noexcept { | |
return __c11_atomic_fetch_sub(&__a->__a_value, __delta, static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp __cxx_atomic_fetch_and(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp __pattern, memory_order __order) noexcept { | |
return __c11_atomic_fetch_and(&__a->__a_value, __pattern, static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp __cxx_atomic_fetch_and(__cxx_atomic_base_impl<_Tp> * __a, _Tp __pattern, memory_order __order) noexcept { | |
return __c11_atomic_fetch_and(&__a->__a_value, __pattern, static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp __cxx_atomic_fetch_or(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp __pattern, memory_order __order) noexcept { | |
return __c11_atomic_fetch_or(&__a->__a_value, __pattern, static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp __cxx_atomic_fetch_or(__cxx_atomic_base_impl<_Tp> * __a, _Tp __pattern, memory_order __order) noexcept { | |
return __c11_atomic_fetch_or(&__a->__a_value, __pattern, static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp __cxx_atomic_fetch_xor(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp __pattern, memory_order __order) noexcept { | |
return __c11_atomic_fetch_xor(&__a->__a_value, __pattern, static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template<class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp __cxx_atomic_fetch_xor(__cxx_atomic_base_impl<_Tp> * __a, _Tp __pattern, memory_order __order) noexcept { | |
return __c11_atomic_fetch_xor(&__a->__a_value, __pattern, static_cast<__memory_order_underlying_t>(__order)); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp kill_dependency(_Tp __y) noexcept | |
{ | |
return __y; | |
} | |
# 1485 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/atomic" 3 | |
template <typename _Tp, | |
typename _Base = __cxx_atomic_base_impl<_Tp> > | |
struct __cxx_atomic_impl : public _Base { | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __cxx_atomic_impl() noexcept = default; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit __cxx_atomic_impl(_Tp value) noexcept | |
: _Base(value) {} | |
}; | |
using __cxx_contention_t = int64_t; | |
using __cxx_atomic_contention_t = __cxx_atomic_impl<__cxx_contention_t>; | |
__attribute__((__visibility__("default"))) void __cxx_atomic_notify_one(void const volatile*); | |
__attribute__((__visibility__("default"))) void __cxx_atomic_notify_all(void const volatile*); | |
__attribute__((__visibility__("default"))) __cxx_contention_t __libcpp_atomic_monitor(void const volatile*); | |
__attribute__((__visibility__("default"))) void __libcpp_atomic_wait(void const volatile*, __cxx_contention_t); | |
__attribute__((__visibility__("default"))) void __cxx_atomic_notify_one(__cxx_atomic_contention_t const volatile*); | |
__attribute__((__visibility__("default"))) void __cxx_atomic_notify_all(__cxx_atomic_contention_t const volatile*); | |
__attribute__((__visibility__("default"))) __cxx_contention_t __libcpp_atomic_monitor(__cxx_atomic_contention_t const volatile*); | |
__attribute__((__visibility__("default"))) void __libcpp_atomic_wait(__cxx_atomic_contention_t const volatile*, __cxx_contention_t); | |
template <class _Atp, class _Fn> | |
struct __libcpp_atomic_wait_backoff_impl { | |
_Atp* __a; | |
_Fn __test_fn; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()(chrono::nanoseconds __elapsed) const | |
{ | |
if(__elapsed > chrono::microseconds(64)) | |
{ | |
auto const __monitor = __libcpp_atomic_monitor(__a); | |
if(__test_fn()) | |
return true; | |
__libcpp_atomic_wait(__a, __monitor); | |
} | |
else if(__elapsed > chrono::microseconds(4)) | |
__libcpp_thread_yield(); | |
else | |
{} | |
return false; | |
} | |
}; | |
template <class _Atp, class _Fn> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __cxx_atomic_wait(_Atp* __a, _Fn && __test_fn) | |
{ | |
__libcpp_atomic_wait_backoff_impl<_Atp, typename decay<_Fn>::type> __backoff_fn = {__a, __test_fn}; | |
return __libcpp_thread_poll_with_backoff(__test_fn, __backoff_fn); | |
} | |
# 1564 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/atomic" 3 | |
template <class _Atp, class _Tp> | |
struct __cxx_atomic_wait_test_fn_impl { | |
_Atp* __a; | |
_Tp __val; | |
memory_order __order; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()() const | |
{ | |
return !__cxx_nonatomic_compare_equal(__cxx_atomic_load(__a, __order), __val); | |
} | |
}; | |
template <class _Atp, class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __cxx_atomic_wait(_Atp* __a, _Tp const __val, memory_order __order) | |
{ | |
__cxx_atomic_wait_test_fn_impl<_Atp, _Tp> __test_fn = {__a, __val, __order}; | |
return __cxx_atomic_wait(__a, __test_fn); | |
} | |
template <class _Tp, bool = is_integral<_Tp>::value && !is_same<_Tp, bool>::value> | |
struct __atomic_base | |
{ | |
mutable __cxx_atomic_impl<_Tp> __a_; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool is_lock_free() const volatile noexcept | |
{return __c11_atomic_is_lock_free(sizeof(_Tp));} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool is_lock_free() const noexcept | |
{return static_cast<__atomic_base const volatile*>(this)->is_lock_free();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void store(_Tp __d, memory_order __m = memory_order_seq_cst) volatile noexcept | |
__attribute__((diagnose_if(__m == memory_order_consume || __m == memory_order_acquire || __m == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) | |
{__cxx_atomic_store(&__a_, __d, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void store(_Tp __d, memory_order __m = memory_order_seq_cst) noexcept | |
__attribute__((diagnose_if(__m == memory_order_consume || __m == memory_order_acquire || __m == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) | |
{__cxx_atomic_store(&__a_, __d, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp load(memory_order __m = memory_order_seq_cst) const volatile noexcept | |
__attribute__((diagnose_if(__m == memory_order_release || __m == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) | |
{return __cxx_atomic_load(&__a_, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp load(memory_order __m = memory_order_seq_cst) const noexcept | |
__attribute__((diagnose_if(__m == memory_order_release || __m == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) | |
{return __cxx_atomic_load(&__a_, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
operator _Tp() const volatile noexcept {return load();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
operator _Tp() const noexcept {return load();} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp exchange(_Tp __d, memory_order __m = memory_order_seq_cst) volatile noexcept | |
{return __cxx_atomic_exchange(&__a_, __d, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp exchange(_Tp __d, memory_order __m = memory_order_seq_cst) noexcept | |
{return __cxx_atomic_exchange(&__a_, __d, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool compare_exchange_weak(_Tp& __e, _Tp __d, | |
memory_order __s, memory_order __f) volatile noexcept | |
__attribute__((diagnose_if(__f == memory_order_release || __f == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) | |
{return __cxx_atomic_compare_exchange_weak(&__a_, &__e, __d, __s, __f);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool compare_exchange_weak(_Tp& __e, _Tp __d, | |
memory_order __s, memory_order __f) noexcept | |
__attribute__((diagnose_if(__f == memory_order_release || __f == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) | |
{return __cxx_atomic_compare_exchange_weak(&__a_, &__e, __d, __s, __f);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool compare_exchange_strong(_Tp& __e, _Tp __d, | |
memory_order __s, memory_order __f) volatile noexcept | |
__attribute__((diagnose_if(__f == memory_order_release || __f == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) | |
{return __cxx_atomic_compare_exchange_strong(&__a_, &__e, __d, __s, __f);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool compare_exchange_strong(_Tp& __e, _Tp __d, | |
memory_order __s, memory_order __f) noexcept | |
__attribute__((diagnose_if(__f == memory_order_release || __f == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) | |
{return __cxx_atomic_compare_exchange_strong(&__a_, &__e, __d, __s, __f);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool compare_exchange_weak(_Tp& __e, _Tp __d, | |
memory_order __m = memory_order_seq_cst) volatile noexcept | |
{return __cxx_atomic_compare_exchange_weak(&__a_, &__e, __d, __m, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool compare_exchange_weak(_Tp& __e, _Tp __d, | |
memory_order __m = memory_order_seq_cst) noexcept | |
{return __cxx_atomic_compare_exchange_weak(&__a_, &__e, __d, __m, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool compare_exchange_strong(_Tp& __e, _Tp __d, | |
memory_order __m = memory_order_seq_cst) volatile noexcept | |
{return __cxx_atomic_compare_exchange_strong(&__a_, &__e, __d, __m, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool compare_exchange_strong(_Tp& __e, _Tp __d, | |
memory_order __m = memory_order_seq_cst) noexcept | |
{return __cxx_atomic_compare_exchange_strong(&__a_, &__e, __d, __m, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void wait(_Tp __v, memory_order __m = memory_order_seq_cst) const volatile noexcept | |
{__cxx_atomic_wait(&__a_, __v, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void wait(_Tp __v, memory_order __m = memory_order_seq_cst) const noexcept | |
{__cxx_atomic_wait(&__a_, __v, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void notify_one() volatile noexcept | |
{__cxx_atomic_notify_one(&__a_);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void notify_one() noexcept | |
{__cxx_atomic_notify_one(&__a_);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void notify_all() volatile noexcept | |
{__cxx_atomic_notify_all(&__a_);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void notify_all() noexcept | |
{__cxx_atomic_notify_all(&__a_);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
__atomic_base() noexcept = default; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
__atomic_base(_Tp __d) noexcept : __a_(__d) {} | |
__atomic_base(const __atomic_base&) = delete; | |
__atomic_base& operator=(const __atomic_base&) = delete; | |
__atomic_base& operator=(const __atomic_base&) volatile = delete; | |
# 1695 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/atomic" 3 | |
}; | |
# 1704 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/atomic" 3 | |
template <class _Tp> | |
struct __atomic_base<_Tp, true> | |
: public __atomic_base<_Tp, false> | |
{ | |
typedef __atomic_base<_Tp, false> __base; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
__atomic_base() noexcept = default; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr __atomic_base(_Tp __d) noexcept : __base(__d) {} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp fetch_add(_Tp __op, memory_order __m = memory_order_seq_cst) volatile noexcept | |
{return __cxx_atomic_fetch_add(&this->__a_, __op, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp fetch_add(_Tp __op, memory_order __m = memory_order_seq_cst) noexcept | |
{return __cxx_atomic_fetch_add(&this->__a_, __op, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp fetch_sub(_Tp __op, memory_order __m = memory_order_seq_cst) volatile noexcept | |
{return __cxx_atomic_fetch_sub(&this->__a_, __op, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp fetch_sub(_Tp __op, memory_order __m = memory_order_seq_cst) noexcept | |
{return __cxx_atomic_fetch_sub(&this->__a_, __op, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp fetch_and(_Tp __op, memory_order __m = memory_order_seq_cst) volatile noexcept | |
{return __cxx_atomic_fetch_and(&this->__a_, __op, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp fetch_and(_Tp __op, memory_order __m = memory_order_seq_cst) noexcept | |
{return __cxx_atomic_fetch_and(&this->__a_, __op, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp fetch_or(_Tp __op, memory_order __m = memory_order_seq_cst) volatile noexcept | |
{return __cxx_atomic_fetch_or(&this->__a_, __op, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp fetch_or(_Tp __op, memory_order __m = memory_order_seq_cst) noexcept | |
{return __cxx_atomic_fetch_or(&this->__a_, __op, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp fetch_xor(_Tp __op, memory_order __m = memory_order_seq_cst) volatile noexcept | |
{return __cxx_atomic_fetch_xor(&this->__a_, __op, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp fetch_xor(_Tp __op, memory_order __m = memory_order_seq_cst) noexcept | |
{return __cxx_atomic_fetch_xor(&this->__a_, __op, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator++(int) volatile noexcept {return fetch_add(_Tp(1));} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator++(int) noexcept {return fetch_add(_Tp(1));} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator--(int) volatile noexcept {return fetch_sub(_Tp(1));} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator--(int) noexcept {return fetch_sub(_Tp(1));} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator++() volatile noexcept {return fetch_add(_Tp(1)) + _Tp(1);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator++() noexcept {return fetch_add(_Tp(1)) + _Tp(1);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator--() volatile noexcept {return fetch_sub(_Tp(1)) - _Tp(1);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator--() noexcept {return fetch_sub(_Tp(1)) - _Tp(1);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator+=(_Tp __op) volatile noexcept {return fetch_add(__op) + __op;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator+=(_Tp __op) noexcept {return fetch_add(__op) + __op;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator-=(_Tp __op) volatile noexcept {return fetch_sub(__op) - __op;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator-=(_Tp __op) noexcept {return fetch_sub(__op) - __op;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator&=(_Tp __op) volatile noexcept {return fetch_and(__op) & __op;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator&=(_Tp __op) noexcept {return fetch_and(__op) & __op;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator|=(_Tp __op) volatile noexcept {return fetch_or(__op) | __op;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator|=(_Tp __op) noexcept {return fetch_or(__op) | __op;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator^=(_Tp __op) volatile noexcept {return fetch_xor(__op) ^ __op;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator^=(_Tp __op) noexcept {return fetch_xor(__op) ^ __op;} | |
}; | |
template <class _Tp> | |
struct atomic | |
: public __atomic_base<_Tp> | |
{ | |
typedef __atomic_base<_Tp> __base; | |
typedef _Tp value_type; | |
typedef value_type difference_type; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
atomic() noexcept = default; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr atomic(_Tp __d) noexcept : __base(__d) {} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator=(_Tp __d) volatile noexcept | |
{__base::store(__d); return __d;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp operator=(_Tp __d) noexcept | |
{__base::store(__d); return __d;} | |
}; | |
template <class _Tp> | |
struct atomic<_Tp*> | |
: public __atomic_base<_Tp*> | |
{ | |
typedef __atomic_base<_Tp*> __base; | |
typedef _Tp* value_type; | |
typedef ptrdiff_t difference_type; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
atomic() noexcept = default; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
constexpr atomic(_Tp* __d) noexcept : __base(__d) {} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* operator=(_Tp* __d) volatile noexcept | |
{__base::store(__d); return __d;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* operator=(_Tp* __d) noexcept | |
{__base::store(__d); return __d;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* fetch_add(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) | |
volatile noexcept | |
{return __cxx_atomic_fetch_add(&this->__a_, __op, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* fetch_add(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) noexcept | |
{return __cxx_atomic_fetch_add(&this->__a_, __op, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* fetch_sub(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) | |
volatile noexcept | |
{return __cxx_atomic_fetch_sub(&this->__a_, __op, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* fetch_sub(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) noexcept | |
{return __cxx_atomic_fetch_sub(&this->__a_, __op, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* operator++(int) volatile noexcept {return fetch_add(1);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* operator++(int) noexcept {return fetch_add(1);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* operator--(int) volatile noexcept {return fetch_sub(1);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* operator--(int) noexcept {return fetch_sub(1);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* operator++() volatile noexcept {return fetch_add(1) + 1;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* operator++() noexcept {return fetch_add(1) + 1;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* operator--() volatile noexcept {return fetch_sub(1) - 1;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* operator--() noexcept {return fetch_sub(1) - 1;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* operator+=(ptrdiff_t __op) volatile noexcept {return fetch_add(__op) + __op;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* operator+=(ptrdiff_t __op) noexcept {return fetch_add(__op) + __op;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* operator-=(ptrdiff_t __op) volatile noexcept {return fetch_sub(__op) - __op;} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* operator-=(ptrdiff_t __op) noexcept {return fetch_sub(__op) - __op;} | |
}; | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool | |
atomic_is_lock_free(const volatile atomic<_Tp>* __o) noexcept | |
{ | |
return __o->is_lock_free(); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool | |
atomic_is_lock_free(const atomic<_Tp>* __o) noexcept | |
{ | |
return __o->is_lock_free(); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_init(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d) noexcept | |
{ | |
__cxx_atomic_init(&__o->__a_, __d); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_init(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d) noexcept | |
{ | |
__cxx_atomic_init(&__o->__a_, __d); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_store(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d) noexcept | |
{ | |
__o->store(__d); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_store(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d) noexcept | |
{ | |
__o->store(__d); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_store_explicit(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d, memory_order __m) noexcept | |
__attribute__((diagnose_if(__m == memory_order_consume || __m == memory_order_acquire || __m == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) | |
{ | |
__o->store(__d, __m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_store_explicit(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d, memory_order __m) noexcept | |
__attribute__((diagnose_if(__m == memory_order_consume || __m == memory_order_acquire || __m == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) | |
{ | |
__o->store(__d, __m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp | |
atomic_load(const volatile atomic<_Tp>* __o) noexcept | |
{ | |
return __o->load(); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp | |
atomic_load(const atomic<_Tp>* __o) noexcept | |
{ | |
return __o->load(); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp | |
atomic_load_explicit(const volatile atomic<_Tp>* __o, memory_order __m) noexcept | |
__attribute__((diagnose_if(__m == memory_order_release || __m == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) | |
{ | |
return __o->load(__m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp | |
atomic_load_explicit(const atomic<_Tp>* __o, memory_order __m) noexcept | |
__attribute__((diagnose_if(__m == memory_order_release || __m == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) | |
{ | |
return __o->load(__m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp | |
atomic_exchange(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d) noexcept | |
{ | |
return __o->exchange(__d); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp | |
atomic_exchange(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d) noexcept | |
{ | |
return __o->exchange(__d); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp | |
atomic_exchange_explicit(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d, memory_order __m) noexcept | |
{ | |
return __o->exchange(__d, __m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp | |
atomic_exchange_explicit(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d, memory_order __m) noexcept | |
{ | |
return __o->exchange(__d, __m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool | |
atomic_compare_exchange_weak(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type* __e, typename atomic<_Tp>::value_type __d) noexcept | |
{ | |
return __o->compare_exchange_weak(*__e, __d); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool | |
atomic_compare_exchange_weak(atomic<_Tp>* __o, typename atomic<_Tp>::value_type* __e, typename atomic<_Tp>::value_type __d) noexcept | |
{ | |
return __o->compare_exchange_weak(*__e, __d); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool | |
atomic_compare_exchange_strong(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type* __e, typename atomic<_Tp>::value_type __d) noexcept | |
{ | |
return __o->compare_exchange_strong(*__e, __d); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool | |
atomic_compare_exchange_strong(atomic<_Tp>* __o, typename atomic<_Tp>::value_type* __e, typename atomic<_Tp>::value_type __d) noexcept | |
{ | |
return __o->compare_exchange_strong(*__e, __d); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool | |
atomic_compare_exchange_weak_explicit(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type* __e, | |
typename atomic<_Tp>::value_type __d, | |
memory_order __s, memory_order __f) noexcept | |
__attribute__((diagnose_if(__f == memory_order_release || __f == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) | |
{ | |
return __o->compare_exchange_weak(*__e, __d, __s, __f); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool | |
atomic_compare_exchange_weak_explicit(atomic<_Tp>* __o, typename atomic<_Tp>::value_type* __e, typename atomic<_Tp>::value_type __d, | |
memory_order __s, memory_order __f) noexcept | |
__attribute__((diagnose_if(__f == memory_order_release || __f == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) | |
{ | |
return __o->compare_exchange_weak(*__e, __d, __s, __f); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool | |
atomic_compare_exchange_strong_explicit(volatile atomic<_Tp>* __o, | |
typename atomic<_Tp>::value_type* __e, typename atomic<_Tp>::value_type __d, | |
memory_order __s, memory_order __f) noexcept | |
__attribute__((diagnose_if(__f == memory_order_release || __f == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) | |
{ | |
return __o->compare_exchange_strong(*__e, __d, __s, __f); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool | |
atomic_compare_exchange_strong_explicit(atomic<_Tp>* __o, typename atomic<_Tp>::value_type* __e, | |
typename atomic<_Tp>::value_type __d, | |
memory_order __s, memory_order __f) noexcept | |
__attribute__((diagnose_if(__f == memory_order_release || __f == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) | |
{ | |
return __o->compare_exchange_strong(*__e, __d, __s, __f); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void atomic_wait(const volatile atomic<_Tp>* __o, | |
typename atomic<_Tp>::value_type __v) noexcept | |
{ | |
return __o->wait(__v); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void atomic_wait(const atomic<_Tp>* __o, | |
typename atomic<_Tp>::value_type __v) noexcept | |
{ | |
return __o->wait(__v); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void atomic_wait_explicit(const volatile atomic<_Tp>* __o, | |
typename atomic<_Tp>::value_type __v, | |
memory_order __m) noexcept | |
__attribute__((diagnose_if(__m == memory_order_release || __m == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) | |
{ | |
return __o->wait(__v, __m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void atomic_wait_explicit(const atomic<_Tp>* __o, | |
typename atomic<_Tp>::value_type __v, | |
memory_order __m) noexcept | |
__attribute__((diagnose_if(__m == memory_order_release || __m == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) | |
{ | |
return __o->wait(__v, __m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void atomic_notify_one(volatile atomic<_Tp>* __o) noexcept | |
{ | |
__o->notify_one(); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void atomic_notify_one(atomic<_Tp>* __o) noexcept | |
{ | |
__o->notify_one(); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void atomic_notify_all(volatile atomic<_Tp>* __o) noexcept | |
{ | |
__o->notify_all(); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void atomic_notify_all(atomic<_Tp>* __o) noexcept | |
{ | |
__o->notify_all(); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value && !is_const<_Tp>::value, | |
_Tp | |
>::type | |
atomic_fetch_add(volatile atomic<_Tp>* __o, typename atomic<_Tp>::difference_type __op) noexcept | |
{ | |
return __o->fetch_add(__op); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value && !is_const<_Tp>::value, | |
_Tp | |
>::type | |
atomic_fetch_add(atomic<_Tp>* __o, typename atomic<_Tp>::difference_type __op) noexcept | |
{ | |
return __o->fetch_add(__op); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* | |
atomic_fetch_add(volatile atomic<_Tp*>* __o, typename atomic<_Tp*>::difference_type __op) noexcept | |
{ | |
return __o->fetch_add(__op); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* | |
atomic_fetch_add(atomic<_Tp*>* __o, typename atomic<_Tp*>::difference_type __op) noexcept | |
{ | |
return __o->fetch_add(__op); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value && !is_const<_Tp>::value, | |
_Tp | |
>::type | |
atomic_fetch_add_explicit(volatile atomic<_Tp>* __o, typename atomic<_Tp>::difference_type __op, memory_order __m) noexcept | |
{ | |
return __o->fetch_add(__op, __m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value && !is_const<_Tp>::value, | |
_Tp | |
>::type | |
atomic_fetch_add_explicit(atomic<_Tp>* __o, typename atomic<_Tp>::difference_type __op, memory_order __m) noexcept | |
{ | |
return __o->fetch_add(__op, __m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* | |
atomic_fetch_add_explicit(volatile atomic<_Tp*>* __o, typename atomic<_Tp*>::difference_type __op, memory_order __m) noexcept | |
{ | |
return __o->fetch_add(__op, __m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* | |
atomic_fetch_add_explicit(atomic<_Tp*>* __o, typename atomic<_Tp*>::difference_type __op, memory_order __m) noexcept | |
{ | |
return __o->fetch_add(__op, __m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value && !is_const<_Tp>::value, | |
_Tp | |
>::type | |
atomic_fetch_sub(volatile atomic<_Tp>* __o, typename atomic<_Tp>::difference_type __op) noexcept | |
{ | |
return __o->fetch_sub(__op); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value && !is_const<_Tp>::value, | |
_Tp | |
>::type | |
atomic_fetch_sub(atomic<_Tp>* __o, typename atomic<_Tp>::difference_type __op) noexcept | |
{ | |
return __o->fetch_sub(__op); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* | |
atomic_fetch_sub(volatile atomic<_Tp*>* __o, typename atomic<_Tp*>::difference_type __op) noexcept | |
{ | |
return __o->fetch_sub(__op); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* | |
atomic_fetch_sub(atomic<_Tp*>* __o, typename atomic<_Tp*>::difference_type __op) noexcept | |
{ | |
return __o->fetch_sub(__op); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value && !is_const<_Tp>::value, | |
_Tp | |
>::type | |
atomic_fetch_sub_explicit(volatile atomic<_Tp>* __o, typename atomic<_Tp>::difference_type __op, memory_order __m) noexcept | |
{ | |
return __o->fetch_sub(__op, __m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value && !is_const<_Tp>::value, | |
_Tp | |
>::type | |
atomic_fetch_sub_explicit(atomic<_Tp>* __o, typename atomic<_Tp>::difference_type __op, memory_order __m) noexcept | |
{ | |
return __o->fetch_sub(__op, __m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* | |
atomic_fetch_sub_explicit(volatile atomic<_Tp*>* __o, typename atomic<_Tp*>::difference_type __op, memory_order __m) noexcept | |
{ | |
return __o->fetch_sub(__op, __m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
_Tp* | |
atomic_fetch_sub_explicit(atomic<_Tp*>* __o, typename atomic<_Tp*>::difference_type __op, memory_order __m) noexcept | |
{ | |
return __o->fetch_sub(__op, __m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value, | |
_Tp | |
>::type | |
atomic_fetch_and(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op) noexcept | |
{ | |
return __o->fetch_and(__op); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value, | |
_Tp | |
>::type | |
atomic_fetch_and(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op) noexcept | |
{ | |
return __o->fetch_and(__op); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value, | |
_Tp | |
>::type | |
atomic_fetch_and_explicit(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op, memory_order __m) noexcept | |
{ | |
return __o->fetch_and(__op, __m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value, | |
_Tp | |
>::type | |
atomic_fetch_and_explicit(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op, memory_order __m) noexcept | |
{ | |
return __o->fetch_and(__op, __m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value, | |
_Tp | |
>::type | |
atomic_fetch_or(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op) noexcept | |
{ | |
return __o->fetch_or(__op); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value, | |
_Tp | |
>::type | |
atomic_fetch_or(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op) noexcept | |
{ | |
return __o->fetch_or(__op); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value, | |
_Tp | |
>::type | |
atomic_fetch_or_explicit(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op, memory_order __m) noexcept | |
{ | |
return __o->fetch_or(__op, __m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value, | |
_Tp | |
>::type | |
atomic_fetch_or_explicit(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op, memory_order __m) noexcept | |
{ | |
return __o->fetch_or(__op, __m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value, | |
_Tp | |
>::type | |
atomic_fetch_xor(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op) noexcept | |
{ | |
return __o->fetch_xor(__op); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value, | |
_Tp | |
>::type | |
atomic_fetch_xor(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op) noexcept | |
{ | |
return __o->fetch_xor(__op); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value, | |
_Tp | |
>::type | |
atomic_fetch_xor_explicit(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op, memory_order __m) noexcept | |
{ | |
return __o->fetch_xor(__op, __m); | |
} | |
template <class _Tp> | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
typename enable_if | |
< | |
is_integral<_Tp>::value && !is_same<_Tp, bool>::value, | |
_Tp | |
>::type | |
atomic_fetch_xor_explicit(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op, memory_order __m) noexcept | |
{ | |
return __o->fetch_xor(__op, __m); | |
} | |
typedef struct atomic_flag | |
{ | |
__cxx_atomic_impl<bool> __a_; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool test(memory_order __m = memory_order_seq_cst) const volatile noexcept | |
{return bool(true) == __cxx_atomic_load(&__a_, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool test(memory_order __m = memory_order_seq_cst) const noexcept | |
{return bool(true) == __cxx_atomic_load(&__a_, __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept | |
{return __cxx_atomic_exchange(&__a_, bool(true), __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool test_and_set(memory_order __m = memory_order_seq_cst) noexcept | |
{return __cxx_atomic_exchange(&__a_, bool(true), __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void clear(memory_order __m = memory_order_seq_cst) volatile noexcept | |
{__cxx_atomic_store(&__a_, bool(false), __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void clear(memory_order __m = memory_order_seq_cst) noexcept | |
{__cxx_atomic_store(&__a_, bool(false), __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void wait(bool __v, memory_order __m = memory_order_seq_cst) const volatile noexcept | |
{__cxx_atomic_wait(&__a_, bool(__v), __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void wait(bool __v, memory_order __m = memory_order_seq_cst) const noexcept | |
{__cxx_atomic_wait(&__a_, bool(__v), __m);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void notify_one() volatile noexcept | |
{__cxx_atomic_notify_one(&__a_);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void notify_one() noexcept | |
{__cxx_atomic_notify_one(&__a_);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void notify_all() volatile noexcept | |
{__cxx_atomic_notify_all(&__a_);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void notify_all() noexcept | |
{__cxx_atomic_notify_all(&__a_);} | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
atomic_flag() noexcept = default; | |
__attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr | |
atomic_flag(bool __b) noexcept : __a_(__b) {} | |
atomic_flag(const atomic_flag&) = delete; | |
atomic_flag& operator=(const atomic_flag&) = delete; | |
atomic_flag& operator=(const atomic_flag&) volatile = delete; | |
# 2556 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/atomic" 3 | |
} atomic_flag; | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool | |
atomic_flag_test(const volatile atomic_flag* __o) noexcept | |
{ | |
return __o->test(); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool | |
atomic_flag_test(const atomic_flag* __o) noexcept | |
{ | |
return __o->test(); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool | |
atomic_flag_test_explicit(const volatile atomic_flag* __o, memory_order __m) noexcept | |
{ | |
return __o->test(__m); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool | |
atomic_flag_test_explicit(const atomic_flag* __o, memory_order __m) noexcept | |
{ | |
return __o->test(__m); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool | |
atomic_flag_test_and_set(volatile atomic_flag* __o) noexcept | |
{ | |
return __o->test_and_set(); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool | |
atomic_flag_test_and_set(atomic_flag* __o) noexcept | |
{ | |
return __o->test_and_set(); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool | |
atomic_flag_test_and_set_explicit(volatile atomic_flag* __o, memory_order __m) noexcept | |
{ | |
return __o->test_and_set(__m); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
bool | |
atomic_flag_test_and_set_explicit(atomic_flag* __o, memory_order __m) noexcept | |
{ | |
return __o->test_and_set(__m); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_flag_clear(volatile atomic_flag* __o) noexcept | |
{ | |
__o->clear(); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_flag_clear(atomic_flag* __o) noexcept | |
{ | |
__o->clear(); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_flag_clear_explicit(volatile atomic_flag* __o, memory_order __m) noexcept | |
{ | |
__o->clear(__m); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_flag_clear_explicit(atomic_flag* __o, memory_order __m) noexcept | |
{ | |
__o->clear(__m); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_flag_wait(const volatile atomic_flag* __o, bool __v) noexcept | |
{ | |
__o->wait(__v); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_flag_wait(const atomic_flag* __o, bool __v) noexcept | |
{ | |
__o->wait(__v); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_flag_wait_explicit(const volatile atomic_flag* __o, | |
bool __v, memory_order __m) noexcept | |
{ | |
__o->wait(__v, __m); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_flag_wait_explicit(const atomic_flag* __o, | |
bool __v, memory_order __m) noexcept | |
{ | |
__o->wait(__v, __m); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_flag_notify_one(volatile atomic_flag* __o) noexcept | |
{ | |
__o->notify_one(); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_flag_notify_one(atomic_flag* __o) noexcept | |
{ | |
__o->notify_one(); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_flag_notify_all(volatile atomic_flag* __o) noexcept | |
{ | |
__o->notify_all(); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_flag_notify_all(atomic_flag* __o) noexcept | |
{ | |
__o->notify_all(); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_thread_fence(memory_order __m) noexcept | |
{ | |
__cxx_atomic_thread_fence(__m); | |
} | |
inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) | |
void | |
atomic_signal_fence(memory_order __m) noexcept | |
{ | |
__cxx_atomic_signal_fence(__m); | |
} | |
typedef atomic<bool> atomic_bool; | |
typedef atomic<char> atomic_char; | |
typedef atomic<signed char> atomic_schar; | |
typedef atomic<unsigned char> atomic_uchar; | |
typedef atomic<short> atomic_short; | |
typedef atomic<unsigned short> atomic_ushort; | |
typedef atomic<int> atomic_int; | |
typedef atomic<unsigned int> atomic_uint; | |
typedef atomic<long> atomic_long; | |
typedef atomic<unsigned long> atomic_ulong; | |
typedef atomic<long long> atomic_llong; | |
typedef atomic<unsigned long long> atomic_ullong; | |
typedef atomic<char16_t> atomic_char16_t; | |
typedef atomic<char32_t> atomic_char32_t; | |
typedef atomic<wchar_t> atomic_wchar_t; | |
typedef atomic<int_least8_t> atomic_int_least8_t; | |
typedef atomic<uint_least8_t> atomic_uint_least8_t; | |
typedef atomic<int_least16_t> atomic_int_least16_t; | |
typedef atomic<uint_least16_t> atomic_uint_least16_t; | |
typedef atomic<int_least32_t> atomic_int_least32_t; | |
typedef atomic<uint_least32_t> atomic_uint_least32_t; | |
typedef atomic<int_least64_t> atomic_int_least64_t; | |
typedef atomic<uint_least64_t> atomic_uint_least64_t; | |
typedef atomic<int_fast8_t> atomic_int_fast8_t; | |
typedef atomic<uint_fast8_t> atomic_uint_fast8_t; | |
typedef atomic<int_fast16_t> atomic_int_fast16_t; | |
typedef atomic<uint_fast16_t> atomic_uint_fast16_t; | |
typedef atomic<int_fast32_t> atomic_int_fast32_t; | |
typedef atomic<uint_fast32_t> atomic_uint_fast32_t; | |
typedef atomic<int_fast64_t> atomic_int_fast64_t; | |
typedef atomic<uint_fast64_t> atomic_uint_fast64_t; | |
typedef atomic< int8_t> atomic_int8_t; | |
typedef atomic<uint8_t> atomic_uint8_t; | |
typedef atomic< int16_t> atomic_int16_t; | |
typedef atomic<uint16_t> atomic_uint16_t; | |
typedef atomic< int32_t> atomic_int32_t; | |
typedef atomic<uint32_t> atomic_uint32_t; | |
typedef atomic< int64_t> atomic_int64_t; | |
typedef atomic<uint64_t> atomic_uint64_t; | |
typedef atomic<intptr_t> atomic_intptr_t; | |
typedef atomic<uintptr_t> atomic_uintptr_t; | |
typedef atomic<size_t> atomic_size_t; | |
typedef atomic<ptrdiff_t> atomic_ptrdiff_t; | |
typedef atomic<intmax_t> atomic_intmax_t; | |
typedef atomic<uintmax_t> atomic_uintmax_t; | |
# 2781 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/atomic" 3 | |
typedef conditional<false, __cxx_contention_t, long long>::type __libcpp_signed_lock_free; | |
typedef conditional<false, __cxx_contention_t, unsigned long long>::type __libcpp_unsigned_lock_free; | |
# 2796 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/atomic" 3 | |
typedef atomic<__libcpp_signed_lock_free> atomic_signed_lock_free; | |
typedef atomic<__libcpp_unsigned_lock_free> atomic_unsigned_lock_free; | |
} } | |
# 14 "tests/core/test_atomic_cxx.cpp" 2 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstdio" 1 3 | |
# 98 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstdio" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 99 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstdio" 2 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/stdio.h" 1 3 | |
# 101 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/stdio.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 | |
# 102 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/stdio.h" 2 3 | |
# 105 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/stdio.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/stdio.h" 1 3 | |
extern "C" { | |
# 26 "/home/azakai/Dev/emscripten/cache/sysroot/include/stdio.h" 3 | |
# 1 "/home/azakai/Dev/emscripten/cache/sysroot/include/bits/alltypes.h" 1 3 | |
# 27 "/home/azakai/Dev/emscripten/cache/sysroot/include/stdio.h" 2 3 | |
# 60 "/home/azakai/Dev/emscripten/cache/sysroot/include/stdio.h" 3 | |
typedef union _G_fpos64_t { | |
char __opaque[16]; | |
double __align; | |
} fpos_t; | |
extern FILE *const stdin; | |
extern FILE *const stdout; | |
extern FILE *const stderr; | |
FILE *fopen(const char *__restrict, const char *__restrict); | |
FILE *freopen(const char *__restrict, const char *__restrict, FILE *__restrict); | |
int fclose(FILE *); | |
int remove(const char *); | |
int rename(const char *, const char *); | |
int feof(FILE *); | |
int ferror(FILE *); | |
int fflush(FILE *); | |
void clearerr(FILE *); | |
int fseek(FILE *, long, int); | |
long ftell(FILE *); | |
void rewind(FILE *); | |
int fgetpos(FILE *__restrict, fpos_t *__restrict); | |
int fsetpos(FILE *, const fpos_t *); | |
size_t fread(void *__restrict, size_t, size_t, FILE *__restrict); | |
size_t fwrite(const void *__restrict, size_t, size_t, FILE *__restrict); | |
int fgetc(FILE *); | |
int getc(FILE *); | |
int getchar(void); | |
int ungetc(int, FILE *); | |
int fputc(int, FILE *); | |
int putc(int, FILE *); | |
int putchar(int); | |
char *fgets(char *__restrict, int, FILE *__restrict); | |
char *gets(char *); | |
int fputs(const char *__restrict, FILE *__restrict); | |
int puts(const char *); | |
int printf(const char *__restrict, ...); | |
int fprintf(FILE *__restrict, const char *__restrict, ...); | |
int sprintf(char *__restrict, const char *__restrict, ...); | |
int snprintf(char *__restrict, size_t, const char *__restrict, ...); | |
int vprintf(const char *__restrict, __isoc_va_list); | |
int vfprintf(FILE *__restrict, const char *__restrict, __isoc_va_list); | |
int vsprintf(char *__restrict, const char *__restrict, __isoc_va_list); | |
int vsnprintf(char *__restrict, size_t, const char *__restrict, __isoc_va_list); | |
int scanf(const char *__restrict, ...); | |
int fscanf(FILE *__restrict, const char *__restrict, ...); | |
int sscanf(const char *__restrict, const char *__restrict, ...); | |
int vscanf(const char *__restrict, __isoc_va_list); | |
int vfscanf(FILE *__restrict, const char *__restrict, __isoc_va_list); | |
int vsscanf(const char *__restrict, const char *__restrict, __isoc_va_list); | |
void perror(const char *); | |
int setvbuf(FILE *__restrict, char *__restrict, int, size_t); | |
void setbuf(FILE *__restrict, char *__restrict); | |
char *tmpnam(char *); | |
FILE *tmpfile(void); | |
FILE *fmemopen(void *__restrict, size_t, const char *__restrict); | |
FILE *open_memstream(char **, size_t *); | |
FILE *fdopen(int, const char *); | |
FILE *popen(const char *, const char *); | |
int pclose(FILE *); | |
int fileno(FILE *); | |
int fseeko(FILE *, off_t, int); | |
off_t ftello(FILE *); | |
int dprintf(int, const char *__restrict, ...); | |
int vdprintf(int, const char *__restrict, __isoc_va_list); | |
void flockfile(FILE *); | |
int ftrylockfile(FILE *); | |
void funlockfile(FILE *); | |
int getc_unlocked(FILE *); | |
int getchar_unlocked(void); | |
int putc_unlocked(int, FILE *); | |
int putchar_unlocked(int); | |
ssize_t getdelim(char **__restrict, size_t *__restrict, int, FILE *__restrict); | |
ssize_t getline(char **__restrict, size_t *__restrict, FILE *__restrict); | |
int renameat(int, const char *, int, const char *); | |
char *ctermid(char *); | |
char *tempnam(const char *, const char *); | |
char *cuserid(char *); | |
void setlinebuf(FILE *); | |
void setbuffer(FILE *, char *, size_t); | |
int fgetc_unlocked(FILE *); | |
int fputc_unlocked(int, FILE *); | |
int fflush_unlocked(FILE *); | |
size_t fread_unlocked(void *, size_t, size_t, FILE *); | |
size_t fwrite_unlocked(const void *, size_t, size_t, FILE *); | |
void clearerr_unlocked(FILE *); | |
int feof_unlocked(FILE *); | |
int ferror_unlocked(FILE *); | |
int fileno_unlocked(FILE *); | |
int getw(FILE *); | |
int putw(int, FILE *); | |
char *fgetln(FILE *, size_t *); | |
int asprintf(char **, const char *, ...); | |
int vasprintf(char **, const char *, __isoc_va_list); | |
char *fgets_unlocked(char *, int, FILE *); | |
int fputs_unlocked(const char *, FILE *); | |
# 210 "/home/azakai/Dev/emscripten/cache/sysroot/include/stdio.h" 3 | |
} | |
# 108 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/stdio.h" 2 3 | |
# 100 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstdio" 2 3 | |
# 103 "/home/azakai/Dev/emscripten/cache/sysroot/include/c++/v1/cstdio" 3 | |
namespace std { inline namespace __2 { | |
using ::FILE; | |
using ::fpos_t; | |
using ::size_t; | |
using ::fclose; | |
using ::fflush; | |
using ::setbuf; | |
using ::setvbuf; | |
using ::fprintf; | |
using ::fscanf; | |
using ::snprintf; | |
using ::sprintf; | |
using ::sscanf; | |
using ::vfprintf; | |
using ::vfscanf; | |
using ::vsscanf; | |
using ::vsnprintf; | |
using ::vsprintf; | |
using ::fgetc; | |
using ::fgets; | |
using ::fputc; | |
using ::fputs; | |
using ::getc; | |
using ::putc; | |
using ::ungetc; | |
using ::fread; | |
using ::fwrite; | |
using ::fgetpos; | |
using ::fseek; | |
using ::fsetpos; | |
using ::ftell; | |
using ::rewind; | |
using ::clearerr; | |
using ::feof; | |
using ::ferror; | |
using ::perror; | |
using ::fopen; | |
using ::freopen; | |
using ::remove; | |
using ::rename; | |
using ::tmpfile; | |
using ::tmpnam; | |
using ::getchar; | |
using ::scanf; | |
using ::vscanf; | |
using ::printf; | |
using ::putchar; | |
using ::puts; | |
using ::vprintf; | |
} } | |
# 15 "tests/core/test_atomic_cxx.cpp" 2 | |
template<typename TYPE, typename UNSIGNED_TYPE> void test(TYPE mask0, TYPE mask1, TYPE mask2) { | |
typedef TYPE dog; | |
const TYPE numMemoryOrders = 6; | |
std::memory_order memoryOrder[numMemoryOrders] = { | |
std::memory_order_relaxed, | |
std::memory_order_consume, | |
std::memory_order_acquire, | |
std::memory_order_release, | |
std::memory_order_acq_rel, | |
std::memory_order_seq_cst, | |
}; | |
std::atomic<dog> atomicDog(5); | |
if (sizeof(TYPE) < 8) { | |
printf("atomic<int>.is_lock_free(): %s\n", atomicDog.is_lock_free() ? "true" : "false"); | |
} else { | |
printf("atomic<int>.is_lock_free(): %s\n", atomicDog.is_lock_free() == 1 ? "ok" : "bad :("); | |
} | |
printf("atomic<int> value: %lld\n", (long long)TYPE(atomicDog)); | |
for (TYPE i = 0; i < numMemoryOrders; i++) { | |
atomicDog.store(i, memoryOrder[i]); | |
printf("store/load %lld: %lld\n", (long long)i, (long long)atomicDog.load(memoryOrder[i])); | |
} | |
for (TYPE i = 0; i < numMemoryOrders; i++) { | |
TYPE old = atomicDog.exchange(i, memoryOrder[i]); | |
printf("exchange %lld: old=%lld new=%lld\n", (long long)i, (long long)old, (long long)TYPE(atomicDog)); | |
} | |
for (TYPE i = 0; i < numMemoryOrders; i++) { | |
bool success = atomicDog.compare_exchange_weak(i, i + 1, memoryOrder[i], memoryOrder[i]); | |
printf("compare_exchange_weak %lld: success = %s\n", (long long)i, success ? "true" : "false"); | |
} | |
for (TYPE i = 0; i < numMemoryOrders; i++) { | |
bool success = atomicDog.compare_exchange_strong(i, i + 1, memoryOrder[i], memoryOrder[i]); | |
printf("compare_exchange_strong %lld: success = %s\n", (long long)i, success ? "true" : "false"); | |
} | |
atomicDog = mask2; | |
for (TYPE i = 0; i < numMemoryOrders; i++) { | |
TYPE old = atomicDog.fetch_add(1, memoryOrder[i]); | |
printf("fetch_add %lld: old=%llx new=%llx\n", (long long)i, (long long)old, (long long)TYPE(atomicDog)); | |
} | |
for (TYPE i = 0; i < numMemoryOrders; i++) { | |
TYPE old = atomicDog.fetch_sub(1, memoryOrder[i]); | |
printf("fetch_sub %lld: old=%llx new=%llx\n", (long long)i, (long long)old, (long long)TYPE(atomicDog)); | |
} | |
for (TYPE i = 0; i < numMemoryOrders; i++) { | |
atomicDog.store(mask0, memoryOrder[i]); | |
TYPE old = atomicDog.fetch_and((1<<i), memoryOrder[i]); | |
printf("fetch_and %lld: old=%llx, new=%llx\n", (long long)i, (unsigned long long)UNSIGNED_TYPE(old), (unsigned long long)UNSIGNED_TYPE(atomicDog)); | |
} | |
atomicDog = 0; | |
for (TYPE i = 0; i < numMemoryOrders; i++) { | |
TYPE old = atomicDog.fetch_or((1<<i), memoryOrder[i]); | |
printf("fetch_or %lld: old=%llx, new=%llx\n", (long long)i, (unsigned long long)UNSIGNED_TYPE(old), (unsigned long long)UNSIGNED_TYPE(atomicDog)); | |
} | |
atomicDog = 0; | |
for (int i = 0; i < numMemoryOrders; i++) { | |
int old = atomicDog.fetch_xor((1<<i), memoryOrder[i]); | |
printf("fetch_xor %lld: old=%llx, new=%llx\n", (long long)i, (unsigned long long)UNSIGNED_TYPE(old), (unsigned long long)UNSIGNED_TYPE(atomicDog)); | |
} | |
atomicDog = 0; | |
atomicDog++; | |
printf("operator++: %lld\n", (long long)TYPE(atomicDog)); | |
atomicDog--; | |
printf("operator--: %lld\n", (long long)TYPE(atomicDog)); | |
atomicDog += 10; | |
printf("operator+=: %lld\n", (long long)TYPE(atomicDog)); | |
atomicDog -= 5; | |
printf("operator-=: %lld\n", (long long)TYPE(atomicDog)); | |
atomicDog |= mask0; | |
printf("operator|=: %llx\n", (unsigned long long)UNSIGNED_TYPE(atomicDog)); | |
atomicDog &= mask1; | |
printf("operator&=: %llx\n", (unsigned long long)UNSIGNED_TYPE(atomicDog)); | |
atomicDog ^= mask2; | |
printf("operator^=: %llx\n", (unsigned long long)UNSIGNED_TYPE(atomicDog)); | |
} | |
int main() { | |
printf("\n8 bits\n\n"); | |
test<char, unsigned char>(0xFF, 0xF0, 0x0F); | |
printf("\n16 bits\n\n"); | |
test<short, unsigned short>(0xFFFF, 0xF0F0, 0x0F0F); | |
printf("\n32 bits\n\n"); | |
test<int, unsigned int>(0xFFFFFFFF, 0xF0F0F0F0, 0x0F0F0F0F); | |
printf("\n64 bits\n\n"); | |
test<long long, unsigned long long>(0xFFFFFFFFFFFFFFFF, 0xF0F0F0F0F0F0F0F0, 0x0F0F0F0F0F0F0F0F); | |
std::atomic_flag af; | |
af.clear(); | |
bool b = af.test_and_set(); | |
printf("atomic_flag: %s\n", b ? "true" : "false"); | |
printf("done.\n"); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment