This file contains 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 |