#define uint64_t unsigned long long # 1 "__bindgen.cpp" # 1 "" 1 # 1 "" 3 # 450 "" 3 # 1 "" 1 # 1 "" 2 # 1 "__bindgen.cpp" 2 # 1 "./bindgen_wrapper.h" 1 # 1 "SEAL/native/src/seal/c/batchencoder.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// # 1 "SEAL/native/src/seal/c/defines.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. // STD # 1 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/cstddef" 1 // -*- C++ -*- //===--------------------------- cstddef ----------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// /* cstddef synopsis Macros: offsetof(type,member-designator) NULL namespace std { Types: ptrdiff_t size_t max_align_t // C++11 nullptr_t byte // C++17 } // std */ # 1 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 1 // XXX EMSCRIPTEN: macros that would ordinarily be added from __config_site.in // -*- C++ -*- //===--------------------------- __config ---------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// # 24 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // The _GNUC_VER_NEW macro better represents the new GCC versioning scheme // introduced in GCC 5.0. # 120 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // Enable compiling copies of now inline methods into the dylib to support // applications compiled against older libraries. This is unnecessary with // COFF dllexport semantics, since dllexport forces a non-inline definition // of inline functions to be emitted anyway. Our own non-inline copy would // conflict with the dllexport-emitted copy, so we disable it. // Feature macros for disabling pre ABI v1 features. All of these options // are deprecated. # 172 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // '__is_identifier' returns '0' if '__x' is a reserved identifier provided by // the compiler and '1' otherwise. # 205 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // FIXME: ABI detection should be done via compiler builtin macros. This // is just a placeholder until Clang implements such macros. For now assume // that Windows compilers pretending to be MSVC++ target the Microsoft ABI, // and allow the user to explicitly specify the ABI to handle cases where this // heuristic falls short. # 228 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // Need to detect which libc we're using if we're on Linux. # 395 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // timespec_get and aligned_alloc were introduced in macOS 10.15 and // aligned releases # 462 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // Objective-C++ features (opt-in) # 495 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // Allow for build-time disabling of unsigned integer sanitization # 514 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // Literal operators ""d and ""y are supported starting with LLVM Clang 8 and AppleClang 10.0.1 # 661 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // The inline should be removed once PR32114 is resolved # 777 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // Just so we can migrate to the new macros gradually. // Inline namespaces are available in Clang/GCC/MSVC regardless of C++ dialect. namespace std { inline namespace __1 { } } # 877 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // _LIBCPP_DEBUG potential values: // - undefined: No assertions. This is the default. // - 0: Basic assertions // - 1: Basic assertions + iterator validity checks. # 891 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // _LIBCPP_DEBUG_LEVEL is always defined to one of [0, 1, 2] at this point # 905 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // When the Debug mode is enabled, we disable extern declarations because we // don't want to use the functions compiled in the library, which might not // have had the debug mode enabled when built. However, some extern declarations // need to be used, because code correctness depends on it (several instances // in the ). Those special declarations are declared with // _LIBCPP_EXTERN_TEMPLATE_EVEN_IN_DEBUG_MODE, which is enabled even // when the debug mode is enabled. # 926 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // Most unix variants have catopen. These are the specific ones that don't. # 936 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // If we are getting operator new from the MSVC CRT, then allocation overloads // for align_val_t were added in 19.12, aka VS 2017 version 15.3. # 973 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // Deprecation macros. // // Deprecations warnings are always enabled, except when users explicitly opt-out // by defining _LIBCPP_DISABLE_DEPRECATION_WARNINGS. # 1019 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // Macros to enter and leave a state where deprecation warnings are suppressed. # 1057 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // The _LIBCPP_NODISCARD_ATTRIBUTE should only be used to define other // NODISCARD macros to the correct attribute. # 1070 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // _LIBCPP_NODISCARD_EXT may be used to apply [[nodiscard]] to entities not // specified as such as an extension. # 1110 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // Try to find out if RTTI is disabled. # 1123 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // Thread API # 1181 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // The glibc and Bionic implementation of pthreads implements // pthread_mutex_destroy as nop for regular mutexes. Additionally, Win32 // mutexes have no destroy mechanism. // // This optimization can't be performed on Apple platforms, where // pthread_mutex_destroy can allow the kernel to release resources. // See https://llvm.org/D64298 for details. // // TODO(EricWF): Enable this optimization on Bionic after speaking to their // respective stakeholders. // Destroying a condvar is a nop on Windows. // // This optimization can't be performed on Apple platforms, where // pthread_cond_destroy can allow the kernel to release resources. // See https://llvm.org/D64298 for details. // // TODO(EricWF): This is potentially true for some pthread implementations // as well. // Systems that use capability-based security (FreeBSD with Capsicum, // Nuxi CloudABI) may only provide local filesystem access (using *at()). // Functions like open(), rename(), unlink() and stat() should not be // used, as they attempt to access the global filesystem namespace. // CloudABI is intended for running networked services. Processes do not // have standard input and output channels. // Some systems do not provide gets() in their C library, for security reasons. # 1240 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // Thread-unsafe functions such as strtok() and localtime() // are not available. # 1319 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // Use a function like macro to imply that it must be followed by a semicolon # 1389 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // Don't warn about macro conflicts when we can restore them at the // end of the header. # 1423 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // Configures the fopen close-on-exec mode character, if any. This string will // be appended to any mode string used by fstream for fopen/fdopen. // // Not all platforms support this, but it helps avoid fd-leaks on platforms that // do. # 1440 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 3 // Support for _FILE_OFFSET_BITS=64 landed gradually in Android, so the full set // of functions used in cstdio may not be available for low API levels when // using 64-bit file offsets on LP32. # 37 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/cstddef" 2 # 1 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/version" 1 // -*- C++ -*- //===--------------------------- version ----------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// /* version synopsis Macro name Value Headers __cpp_lib_addressof_constexpr 201603L __cpp_lib_allocator_traits_is_always_equal 201411L __cpp_lib_any 201606L __cpp_lib_apply 201603L __cpp_lib_array_constexpr 201811L 201603L // C++17 __cpp_lib_as_const 201510L __cpp_lib_assume_aligned 201811L __cpp_lib_atomic_flag_test 201907L __cpp_lib_atomic_float 201711L __cpp_lib_atomic_is_always_lock_free 201603L __cpp_lib_atomic_lock_free_type_aliases 201907L __cpp_lib_atomic_ref 201806L __cpp_lib_atomic_shared_ptr 201711L __cpp_lib_atomic_value_initialization 201911L __cpp_lib_atomic_wait 201907L __cpp_lib_barrier 201907L __cpp_lib_bind_front 201907L __cpp_lib_bit_cast 201806L __cpp_lib_bitops 201907L __cpp_lib_bool_constant 201505L __cpp_lib_bounded_array_traits 201902L __cpp_lib_boyer_moore_searcher 201603L __cpp_lib_byte 201603L __cpp_lib_char8_t 201811L __cpp_lib_chrono 201611L __cpp_lib_chrono_udls 201304L __cpp_lib_clamp 201603L __cpp_lib_complex_udls 201309L __cpp_lib_concepts 202002L __cpp_lib_constexpr_algorithms 201806L __cpp_lib_constexpr_complex 201711L __cpp_lib_constexpr_dynamic_alloc 201907L __cpp_lib_constexpr_functional 201907L __cpp_lib_constexpr_iterator 201811L __cpp_lib_constexpr_memory 201811L __cpp_lib_constexpr_numeric 201911L __cpp_lib_constexpr_string 201907L __cpp_lib_constexpr_string_view 201811L __cpp_lib_constexpr_tuple 201811L __cpp_lib_constexpr_utility 201811L __cpp_lib_constexpr_vector 201907L __cpp_lib_coroutine 201902L __cpp_lib_destroying_delete 201806L __cpp_lib_enable_shared_from_this 201603L __cpp_lib_endian 201907L __cpp_lib_erase_if 202002L __cpp_lib_exchange_function 201304L __cpp_lib_execution 201902L 201603L // C++17 __cpp_lib_filesystem 201703L __cpp_lib_gcd_lcm 201606L __cpp_lib_generic_associative_lookup 201304L __cpp_lib_generic_unordered_lookup 201811L __cpp_lib_hardware_interference_size 201703L __cpp_lib_has_unique_object_representations 201606L __cpp_lib_hypot 201603L __cpp_lib_incomplete_container_elements 201505L __cpp_lib_int_pow2 202002L __cpp_lib_integer_comparison_functions 202002L __cpp_lib_integer_sequence 201304L __cpp_lib_integral_constant_callable 201304L __cpp_lib_interpolate 201902L __cpp_lib_invoke 201411L __cpp_lib_is_aggregate 201703L __cpp_lib_is_constant_evaluated 201811L __cpp_lib_is_final 201402L __cpp_lib_is_invocable 201703L __cpp_lib_is_layout_compatible 201907L __cpp_lib_is_nothrow_convertible 201806L __cpp_lib_is_null_pointer 201309L __cpp_lib_is_pointer_interconvertible 201907L __cpp_lib_is_scoped_enum 202011L __cpp_lib_is_swappable 201603L __cpp_lib_jthread 201911L __cpp_lib_latch 201907L __cpp_lib_launder 201606L __cpp_lib_list_remove_return_type 201806L __cpp_lib_logical_traits 201510L __cpp_lib_make_from_tuple 201606L __cpp_lib_make_reverse_iterator 201402L __cpp_lib_make_unique 201304L __cpp_lib_map_try_emplace 201411L __cpp_lib_math_constants 201907L __cpp_lib_math_special_functions 201603L __cpp_lib_memory_resource 201603L __cpp_lib_node_extract 201606L __cpp_lib_nonmember_container_access 201411L __cpp_lib_not_fn 201603L __cpp_lib_null_iterators 201304L __cpp_lib_optional 201606L __cpp_lib_parallel_algorithm 201603L __cpp_lib_polymorphic_allocator 201902L __cpp_lib_quoted_string_io 201304L __cpp_lib_ranges 201811L __cpp_lib_raw_memory_algorithms 201606L __cpp_lib_remove_cvref 201711L __cpp_lib_result_of_sfinae 201210L __cpp_lib_robust_nonmodifying_seq_ops 201304L __cpp_lib_sample 201603L __cpp_lib_scoped_lock 201703L __cpp_lib_semaphore 201907L __cpp_lib_shared_mutex 201505L __cpp_lib_shared_ptr_arrays 201611L __cpp_lib_shared_ptr_weak_type 201606L __cpp_lib_shared_timed_mutex 201402L __cpp_lib_shift 201806L __cpp_lib_smart_ptr_for_overwrite 202002L __cpp_lib_source_location 201907L __cpp_lib_span 202002L __cpp_lib_ssize 201902L __cpp_lib_stacktrace 202011L __cpp_lib_starts_ends_with 201711L __cpp_lib_stdatomic_h 202011L __cpp_lib_string_contains 202011L __cpp_lib_string_udls 201304L __cpp_lib_string_view 201803L 201606L // C++17 __cpp_lib_syncbuf 201803L __cpp_lib_three_way_comparison 201907L __cpp_lib_to_address 201711L __cpp_lib_to_array 201907L __cpp_lib_to_chars 201611L __cpp_lib_transformation_trait_aliases 201304L __cpp_lib_transparent_operators 201510L 201210L // C++14 __cpp_lib_tuple_element_t 201402L __cpp_lib_tuples_by_type 201304L __cpp_lib_type_trait_variable_templates 201510L __cpp_lib_uncaught_exceptions 201411L __cpp_lib_unordered_map_try_emplace 201411L __cpp_lib_unwrap_ref 201811L __cpp_lib_variant 201606L __cpp_lib_void_t 201411L */ # 1 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 1 // XXX EMSCRIPTEN: macros that would ordinarily be added from __config_site.in // -*- C++ -*- //===--------------------------- __config ---------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// # 167 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/version" 2 # 170 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/version" 3 # 210 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/version" 3 // # define __cpp_lib_boyer_moore_searcher 201603L // # define __cpp_lib_execution 201603L // # define __cpp_lib_hardware_interference_size 201703L # 234 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/version" 3 // # define __cpp_lib_math_special_functions 201603L // # define __cpp_lib_memory_resource 201603L // # define __cpp_lib_parallel_algorithm 201603L # 250 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/version" 3 // # define __cpp_lib_to_chars 201611L # 38 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/cstddef" 2 # 41 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/cstddef" 3 // Don't include our own ; we don't want to declare ::nullptr_t. # 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/stddef.h" 1 3 // -*- C++ -*- //===--------------------------- stddef.h ---------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// # 22 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/stddef.h" 3 /* stddef.h synopsis Macros: offsetof(type,member-designator) NULL Types: ptrdiff_t size_t max_align_t // C++11 nullptr_t */ # 1 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 // XXX EMSCRIPTEN: macros that would ordinarily be added from __config_site.in // -*- C++ -*- //===--------------------------- __config ---------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// # 40 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/stddef.h" 2 3 # 43 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/stddef.h" 3 # 1 "/Library/Developer/CommandLineTools/usr/lib/clang/13.0.0/include/stddef.h" 1 3 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ # 17 "/Library/Developer/CommandLineTools/usr/lib/clang/13.0.0/include/stddef.h" 3 /* Always define miscellaneous pieces when modules are available. */ # 26 "/Library/Developer/CommandLineTools/usr/lib/clang/13.0.0/include/stddef.h" 3 /* __need_wint_t is intentionally not defined here. */ /* Always define ptrdiff_t when modules are available. */ typedef long int ptrdiff_t; /* Always define size_t when modules are available. */ typedef long unsigned int size_t; /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ # 102 "/Library/Developer/CommandLineTools/usr/lib/clang/13.0.0/include/stddef.h" 3 # 1 "/Library/Developer/CommandLineTools/usr/lib/clang/13.0.0/include/__stddef_max_align_t.h" 1 3 /*===---- __stddef_max_align_t.h - Definition of max_align_t for modules ---=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ typedef long double max_align_t; # 103 "/Library/Developer/CommandLineTools/usr/lib/clang/13.0.0/include/stddef.h" 2 3 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ # 46 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/stddef.h" 2 3 extern "C++" { # 1 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__nullptr" 1 3 // -*- C++ -*- //===--------------------------- __nullptr --------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// # 1 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 1 3 // XXX EMSCRIPTEN: macros that would ordinarily be added from __config_site.in // -*- C++ -*- //===--------------------------- __config ---------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// # 14 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__nullptr" 2 3 # 17 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__nullptr" 3 # 54 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__nullptr" 3 namespace std { typedef decltype(nullptr) nullptr_t; } # 51 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/stddef.h" 2 3 using std::nullptr_t; } # 45 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/cstddef" 2 3 namespace std { inline namespace __1 { using ::ptrdiff_t; using ::size_t; using ::max_align_t; template struct __libcpp_is_integral { enum { value = 0 }; }; template <> struct __libcpp_is_integral { enum { value = 1 }; }; template <> struct __libcpp_is_integral { enum { value = 1 }; }; template <> struct __libcpp_is_integral { enum { value = 1 }; }; template <> struct __libcpp_is_integral { enum { value = 1 }; }; template <> struct __libcpp_is_integral { enum { value = 1 }; }; template <> struct __libcpp_is_integral { enum { value = 1 }; }; template <> struct __libcpp_is_integral { enum { value = 1 }; }; template <> struct __libcpp_is_integral { enum { value = 1 }; }; template <> struct __libcpp_is_integral { enum { value = 1 }; }; template <> struct __libcpp_is_integral { enum { value = 1 }; }; template <> struct __libcpp_is_integral { enum { value = 1 }; }; template <> struct __libcpp_is_integral { enum { value = 1 }; }; template <> struct __libcpp_is_integral { enum { value = 1 }; }; template <> struct __libcpp_is_integral { enum { value = 1 }; }; template <> struct __libcpp_is_integral { enum { value = 1 }; }; template <> struct __libcpp_is_integral<__int128_t> { enum { value = 1 }; }; template <> struct __libcpp_is_integral<__uint128_t> { enum { value = 1 }; }; } } namespace std // purposefully not versioned { enum class byte : unsigned char {}; template struct __enable_if_integral_imp {}; template <> struct __enable_if_integral_imp { using type = byte; }; template using _EnableByteOverload = typename __enable_if_integral_imp<__libcpp_is_integral<_Tp>::value>::type; constexpr byte operator| (byte __lhs, byte __rhs) noexcept { return static_cast( static_cast( static_cast(__lhs) | static_cast(__rhs) )); } constexpr byte& operator|=(byte& __lhs, byte __rhs) noexcept { return __lhs = __lhs | __rhs; } constexpr byte operator& (byte __lhs, byte __rhs) noexcept { return static_cast( static_cast( static_cast(__lhs) & static_cast(__rhs) )); } constexpr byte& operator&=(byte& __lhs, byte __rhs) noexcept { return __lhs = __lhs & __rhs; } constexpr byte operator^ (byte __lhs, byte __rhs) noexcept { return static_cast( static_cast( static_cast(__lhs) ^ static_cast(__rhs) )); } constexpr byte& operator^=(byte& __lhs, byte __rhs) noexcept { return __lhs = __lhs ^ __rhs; } constexpr byte operator~ (byte __b) noexcept { return static_cast( static_cast( ~static_cast(__b) )); } template constexpr _EnableByteOverload<_Integer> & operator<<=(byte& __lhs, _Integer __shift) noexcept { return __lhs = __lhs << __shift; } template constexpr _EnableByteOverload<_Integer> operator<< (byte __lhs, _Integer __shift) noexcept { return static_cast(static_cast(static_cast(__lhs) << __shift)); } template constexpr _EnableByteOverload<_Integer> & operator>>=(byte& __lhs, _Integer __shift) noexcept { return __lhs = __lhs >> __shift; } template constexpr _EnableByteOverload<_Integer> operator>> (byte __lhs, _Integer __shift) noexcept { return static_cast(static_cast(static_cast(__lhs) >> __shift)); } template > constexpr _Integer to_integer(byte __b) noexcept { return static_cast<_Integer>(__b); } } # 8 "SEAL/native/src/seal/c/defines.h" 2 // SEALNet # 1 "SEAL/native/src/seal/c/stdafx.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. // stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently // # 11 "SEAL/native/src/seal/c/defines.h" 2 // Check that std::size_t is 64 bits # 14 "SEAL/native/src/seal/c/batchencoder.h" 2 # 1 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/stdint.h" 1 // -*- C++ -*- //===---------------------------- stdint.h --------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // AIX system headers need stdint.h to be re-enterable while _STD_TYPES_T // is defined until an inclusion of it without _STD_TYPES_T occurs, in which // case the header guard macro is defined. /* stdint.h synopsis Macros: INT8_MIN INT16_MIN INT32_MIN INT64_MIN INT8_MAX INT16_MAX INT32_MAX INT64_MAX UINT8_MAX UINT16_MAX UINT32_MAX UINT64_MAX INT_LEAST8_MIN INT_LEAST16_MIN INT_LEAST32_MIN INT_LEAST64_MIN INT_LEAST8_MAX INT_LEAST16_MAX INT_LEAST32_MAX INT_LEAST64_MAX UINT_LEAST8_MAX UINT_LEAST16_MAX UINT_LEAST32_MAX UINT_LEAST64_MAX INT_FAST8_MIN INT_FAST16_MIN INT_FAST32_MIN INT_FAST64_MIN INT_FAST8_MAX INT_FAST16_MAX INT_FAST32_MAX INT_FAST64_MAX UINT_FAST8_MAX UINT_FAST16_MAX UINT_FAST32_MAX UINT_FAST64_MAX INTPTR_MIN INTPTR_MAX UINTPTR_MAX INTMAX_MIN INTMAX_MAX UINTMAX_MAX PTRDIFF_MIN PTRDIFF_MAX SIG_ATOMIC_MIN SIG_ATOMIC_MAX SIZE_MAX WCHAR_MIN WCHAR_MAX WINT_MIN WINT_MAX INT8_C(value) INT16_C(value) INT32_C(value) INT64_C(value) UINT8_C(value) UINT16_C(value) UINT32_C(value) UINT64_C(value) INTMAX_C(value) UINTMAX_C(value) */ # 1 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 1 // XXX EMSCRIPTEN: macros that would ordinarily be added from __config_site.in // -*- C++ -*- //===--------------------------- __config ---------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// # 107 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/stdint.h" 2 # 110 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/stdint.h" 3 /* C99 stdlib (e.g. glibc < 2.18) does not provide macros needed for C++11 unless __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS are defined */ # 1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/stdint.h" 1 3 // -*- C++ -*- //===---------------------------- stdint.h --------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// # 124 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/stdint.h" 2 3 # 15 "SEAL/native/src/seal/c/batchencoder.h" 2 extern "C" long BatchEncoder_Create(void *context, void **batch_encoder); extern "C" long BatchEncoder_Destroy(void *thisptr); extern "C" long BatchEncoder_Encode1(void *thisptr, uint64_t count, uint64_t *values, void *destination); extern "C" long BatchEncoder_Encode2(void *thisptr, uint64_t count, int64_t *values, void *destination); extern "C" long BatchEncoder_Decode1(void *thisptr, void *plain, uint64_t *count, uint64_t *destination, void *pool); extern "C" long BatchEncoder_Decode2(void *thisptr, void *plain, uint64_t *count, int64_t *destination, void *pool); extern "C" long BatchEncoder_GetSlotCount(void *thisptr, uint64_t *slot_count); # 2 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/ciphertext.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long Ciphertext_Create1(void *pool, void **cipher); extern "C" long Ciphertext_Create2(void *copy, void **cipher); extern "C" long Ciphertext_Create3(void *context, void *pool, void **cipher); extern "C" long Ciphertext_Create4(void *context, uint64_t *parms_id, void *pool, void **cipher); extern "C" long Ciphertext_Create5(void *context, uint64_t *parms_id, uint64_t capacity, void *pool, void **ciphertext); extern "C" long Ciphertext_Reserve1(void *thisptr, void *context, uint64_t *parms_id, uint64_t size_capacity); extern "C" long Ciphertext_Reserve2(void *thisptr, void *context, uint64_t size_capacity); extern "C" long Ciphertext_Reserve3(void *thisptr, uint64_t size_capacity); extern "C" long Ciphertext_Set(void *thisptr, void *assign); extern "C" long Ciphertext_Destroy(void *thisptr); extern "C" long Ciphertext_Size(void *thisptr, uint64_t *size); extern "C" long Ciphertext_SizeCapacity(void *thisptr, uint64_t *size_capacity); extern "C" long Ciphertext_PolyModulusDegree(void *thisptr, uint64_t *poly_modulus_degree); extern "C" long Ciphertext_CoeffModulusSize(void *thisptr, uint64_t *coeff_modulus_size); extern "C" long Ciphertext_ParmsId(void *thisptr, uint64_t *parms_id); extern "C" long Ciphertext_SetParmsId(void *thisptr, uint64_t *parms_id); extern "C" long Ciphertext_Resize1(void *thisptr, void *context, uint64_t *parms_id, uint64_t size); extern "C" long Ciphertext_Resize2(void *thisptr, void *context, uint64_t size); extern "C" long Ciphertext_Resize3(void *thisptr, uint64_t size); extern "C" long Ciphertext_Resize4(void *thisptr, uint64_t size, uint64_t polyModulusDegree, uint64_t coeffModCount); extern "C" long Ciphertext_GetDataAt1(void *thisptr, uint64_t index, uint64_t *data); extern "C" long Ciphertext_GetDataAt2(void *thisptr, uint64_t poly_index, uint64_t coeff_index, uint64_t *data); extern "C" long Ciphertext_SetDataAt(void *thisptr, uint64_t index, uint64_t value); extern "C" long Ciphertext_IsNTTForm(void *thisptr, bool *is_ntt_form); extern "C" long Ciphertext_SetIsNTTForm(void *thisptr, bool is_ntt_form); extern "C" long Ciphertext_Scale(void *thisptr, double *scale); extern "C" long Ciphertext_SetScale(void *thisptr, double scale); extern "C" long Ciphertext_Release(void *thisptr); extern "C" long Ciphertext_IsTransparent(void *thisptr, bool *result); extern "C" long Ciphertext_Pool(void *thisptr, void **pool); extern "C" long Ciphertext_SaveSize(void *thisptr, uint8_t compr_mode, int64_t *result); extern "C" long Ciphertext_Save(void *thisptr, uint8_t *outptr, uint64_t size, uint8_t compr_mode, int64_t *out_bytes); extern "C" long Ciphertext_UnsafeLoad(void *thisptr, void *context, uint8_t *inptr, uint64_t size, int64_t *in_bytes); extern "C" long Ciphertext_Load(void *thisptr, void *context, uint8_t *inptr, uint64_t size, int64_t *in_bytes); # 3 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/ckksencoder.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long CKKSEncoder_Create(void *context, void **ckks_encoder); extern "C" long CKKSEncoder_Destroy(void *thisptr); // Array of doubles extern "C" long CKKSEncoder_Encode1( void *thisptr, uint64_t value_count, double *values, uint64_t *parms_id, double scale, void *destination, void *pool); // Array of complex numbers (two doubles per value) extern "C" long CKKSEncoder_Encode2( void *thisptr, uint64_t value_count, double *complex_values, uint64_t *parms_id, double scale, void *destination, void *pool); // Single double value extern "C" long CKKSEncoder_Encode3( void *thisptr, double value, uint64_t *parms_id, double scale, void *destination, void *pool); // Single complex value extern "C" long CKKSEncoder_Encode4( void *thisptr, double value_re, double value_im, uint64_t *parms_id, double scale, void *destination, void *pool); // Single Int64 value extern "C" long CKKSEncoder_Encode5(void *thisptr, int64_t value, uint64_t *parms_id, void *destination); // Array of doubles extern "C" long CKKSEncoder_Decode1(void *thisptr, void *plain, uint64_t *value_count, double *values, void *pool); // Array of complex numbers extern "C" long CKKSEncoder_Decode2(void *thisptr, void *plain, uint64_t *value_count, double *values, void *pool); extern "C" long CKKSEncoder_SlotCount(void *thisptr, uint64_t *slot_count); # 4 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/contextdata.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long ContextData_Destroy(void *thisptr); extern "C" long ContextData_TotalCoeffModulus(void *thisptr, uint64_t *count, uint64_t *total_coeff_modulus); extern "C" long ContextData_TotalCoeffModulusBitCount(void *thisptr, int *bit_count); extern "C" long ContextData_Parms(void *thisptr, void **parms); extern "C" long ContextData_Qualifiers(void *thisptr, void **epq); extern "C" long ContextData_CoeffDivPlainModulus(void *thisptr, uint64_t *count, uint64_t *coeff_div); extern "C" long ContextData_PlainUpperHalfThreshold(void *thisptr, uint64_t *puht); extern "C" long ContextData_PlainUpperHalfIncrement(void *thisptr, uint64_t *count, uint64_t *puhi); extern "C" long ContextData_UpperHalfThreshold(void *thisptr, uint64_t *count, uint64_t *uht); extern "C" long ContextData_UpperHalfIncrement(void *thisptr, uint64_t *count, uint64_t *uhi); extern "C" long ContextData_PrevContextData(void *thisptr, void **prev_data); extern "C" long ContextData_NextContextData(void *thisptr, void **next_data); extern "C" long ContextData_ChainIndex(void *thisptr, uint64_t *index); # 5 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/decryptor.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long Decryptor_Create(void *context, void *secret_key, void **decryptor); extern "C" long Decryptor_Destroy(void *thisptr); extern "C" long Decryptor_Decrypt(void *thisptr, void *encrypted, void *destination); extern "C" long Decryptor_InvariantNoiseBudget(void *thisptr, void *encrypted, int *invariant_noise_budget); # 6 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/encryptionparameterqualifiers.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long EPQ_Create(void *copy, void **epq); extern "C" long EPQ_Destroy(void *thisptr); extern "C" long EPQ_ParametersSet(void *thisptr, bool *parameters_set); extern "C" long EPQ_UsingFFT(void *thisptr, bool *using_fft); extern "C" long EPQ_UsingNTT(void *thisptr, bool *using_ntt); extern "C" long EPQ_UsingBatching(void *thisptr, bool *using_batching); extern "C" long EPQ_UsingFastPlainLift(void *thisptr, bool *using_fast_plain_lift); extern "C" long EPQ_UsingDescendingModulusChain(void *thisptr, bool *using_descending_modulus_chain); extern "C" long EPQ_SecLevel(void *thisptr, int *sec_level); extern "C" long EPQ_ParameterErrorName(void *thisptr, char *outstr, uint64_t *length); extern "C" long EPQ_ParameterErrorMessage(void *thisptr, char *outstr, uint64_t *length); # 8 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/encryptionparameters.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long EncParams_Create1(uint8_t scheme, void **enc_params); extern "C" long EncParams_Create2(void *copy, void **enc_params); extern "C" long EncParams_Destroy(void *thisptr); extern "C" long EncParams_Set(void *thisptr, void *assign); extern "C" long EncParams_GetPolyModulusDegree(void *thisptr, uint64_t *degree); extern "C" long EncParams_SetPolyModulusDegree(void *thisptr, uint64_t degree); extern "C" long EncParams_GetCoeffModulus(void *thisptr, uint64_t *length, void **coeffs); extern "C" long EncParams_SetCoeffModulus(void *thisptr, uint64_t length, void **coeffs); extern "C" long EncParams_GetScheme(void *thisptr, uint8_t *scheme); extern "C" long EncParams_GetParmsId(void *thisptr, uint64_t *parms_id); extern "C" long EncParams_GetPlainModulus(void *thisptr, void **plain_modulus); extern "C" long EncParams_SetPlainModulus1(void *thisptr, void *modulus); extern "C" long EncParams_SetPlainModulus2(void *thisptr, uint64_t plain_modulus); extern "C" long EncParams_Equals(void *thisptr, void *otherptr, bool *result); extern "C" long EncParams_SaveSize(void *thisptr, uint8_t compr_mode, int64_t *result); extern "C" long EncParams_Save(void *thisptr, uint8_t *outptr, uint64_t size, uint8_t compr_mode, int64_t *out_bytes); extern "C" long EncParams_Load(void *thisptr, uint8_t *inptr, uint64_t size, int64_t *in_bytes); # 9 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/encryptor.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long Encryptor_Create(void *context, void *public_key, void *secret_key, void **encryptor); extern "C" long Encryptor_SetPublicKey(void *thisptr, void *public_key); extern "C" long Encryptor_SetSecretKey(void *thisptr, void *secret_key); extern "C" long Encryptor_Encrypt(void *thisptr, void *plaintext, void *destination, void *pool_handle); extern "C" long Encryptor_EncryptZero1(void *thisptr, uint64_t *parms_id, void *destination, void *pool_handle); extern "C" long Encryptor_EncryptZero2(void *thisptr, void *destination, void *pool_handle); extern "C" long Encryptor_EncryptSymmetric( void *thisptr, void *plaintext, bool save_seed, void *destination, void *pool_handle); extern "C" long Encryptor_EncryptZeroSymmetric1( void *thisptr, uint64_t *parms_id, bool save_seed, void *destination, void *pool_handle); extern "C" long Encryptor_EncryptZeroSymmetric2(void *thisptr, bool save_seed, void *destination, void *pool_handle); extern "C" long Encryptor_Destroy(void *thisptr); # 10 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/evaluator.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long Evaluator_Create(void *context, void **evaluator); extern "C" long Evaluator_Destroy(void *thisptr); extern "C" long Evaluator_Negate(void *thisptr, void *encrypted, void *destination); extern "C" long Evaluator_Add(void *thisptr, void *encrypted1, void *encrypted2, void *destination); extern "C" long Evaluator_AddMany(void *thisptr, uint64_t count, void **encrypteds, void *destination); extern "C" long Evaluator_AddPlain(void *thisptr, void *encrypted, void *plain, void *destination); extern "C" long Evaluator_Sub(void *thisptr, void *encrypted1, void *encrypted2, void *destination); extern "C" long Evaluator_SubPlain(void *thisptr, void *encrypted, void *plain, void *destination); extern "C" long Evaluator_Multiply(void *thisptr, void *encrypted1, void *encrypted2, void *destination, void *pool); extern "C" long Evaluator_MultiplyMany( void *thisptr, uint64_t count, void **encrypteds, void *relin_keys, void *destination, void *pool); extern "C" long Evaluator_MultiplyPlain(void *thisptr, void *encrypted, void *plain, void *destination, void *pool); extern "C" long Evaluator_Square(void *thisptr, void *encrypted, void *destination, void *pool); extern "C" long Evaluator_Relinearize(void *thisptr, void *encrypted, void *relinKeys, void *destination, void *pool); extern "C" long Evaluator_ModSwitchToNext1(void *thisptr, void *encrypted, void *destination, void *pool); extern "C" long Evaluator_ModSwitchToNext2(void *thisptr, void *plain, void *destination); extern "C" long Evaluator_ModSwitchTo1(void *thisptr, void *encrypted, uint64_t *parms_id, void *destination, void *pool); extern "C" long Evaluator_ModSwitchTo2(void *thisptr, void *plain, uint64_t *parms_id, void *destination); extern "C" long Evaluator_RescaleToNext(void *thisptr, void *encrypted, void *destination, void *pool); extern "C" long Evaluator_RescaleTo(void *thisptr, void *encrypted, uint64_t *parms_id, void *destination, void *pool); extern "C" long Evaluator_Exponentiate( void *thisptr, void *encrypted, uint64_t exponent, void *relin_keys, void *destination, void *pool); extern "C" long Evaluator_TransformToNTT1( void *thisptr, void *plain, uint64_t *parms_id, void *destination_ntt, void *pool); extern "C" long Evaluator_TransformToNTT2(void *thisptr, void *encrypted, void *destination_ntt); extern "C" long Evaluator_TransformFromNTT(void *thisptr, void *encrypted_ntt, void *destination); extern "C" long Evaluator_ApplyGalois( void *thisptr, void *encrypted, uint32_t galois_elt, void *galois_keys, void *destination, void *pool); extern "C" long Evaluator_RotateRows( void *thisptr, void *encrypted, int steps, void *galoisKeys, void *destination, void *pool); extern "C" long Evaluator_RotateColumns(void *thisptr, void *encrypted, void *galois_keys, void *destination, void *pool); extern "C" long Evaluator_RotateVector( void *thisptr, void *encrypted, int steps, void *galois_keys, void *destination, void *pool); extern "C" long Evaluator_ComplexConjugate( void *thisptr, void *encrypted, void *galois_keys, void *destination, void *pool); extern "C" long Evaluator_ContextUsingKeyswitching(void *thisptr, bool *using_keyswitching); # 11 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/galoiskeys.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long GaloisKeys_GetIndex(uint32_t galois_elt, uint64_t *index); # 12 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/keygenerator.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long KeyGenerator_Create1(void *context, void **key_generator); extern "C" long KeyGenerator_Create2(void *context, void *secret_key, void **key_generator); extern "C" long KeyGenerator_Destroy(void *thisptr); extern "C" long KeyGenerator_CreateRelinKeys(void *thisptr, bool save_seed, void **relin_keys); extern "C" long KeyGenerator_CreateGaloisKeysFromElts( void *thisptr, uint64_t count, uint32_t *galois_elts, bool save_seed, void **galois_keys); extern "C" long KeyGenerator_CreateGaloisKeysFromSteps( void *thisptr, uint64_t count, int *steps, bool save_seed, void **galois_keys); extern "C" long KeyGenerator_CreateGaloisKeysAll(void *thisptr, bool save_seed, void **galois_keys); extern "C" long KeyGenerator_CreatePublicKey(void *thisptr, bool save_seed, void **public_key); extern "C" long KeyGenerator_SecretKey(void *thisptr, void **secret_key); extern "C" long KeyGenerator_ContextUsingKeyswitching(void *thisptr, bool *using_keyswitching); # 13 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/kswitchkeys.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long KSwitchKeys_Create1(void **kswitch_keys); extern "C" long KSwitchKeys_Create2(void *copy, void **kswitch_keys); extern "C" long KSwitchKeys_Destroy(void *thisptr); extern "C" long KSwitchKeys_Set(void *thisptr, void *assign); extern "C" long KSwitchKeys_Size(void *thisptr, uint64_t *size); extern "C" long KSwitchKeys_RawSize(void *thisptr, uint64_t *key_count); extern "C" long KSwitchKeys_GetKeyList(void *thisptr, uint64_t index, uint64_t *count, void **key_list); extern "C" long KSwitchKeys_ClearDataAndReserve(void *thisptr, uint64_t size); extern "C" long KSwitchKeys_AddKeyList(void *thisptr, uint64_t count, void **key_list); extern "C" long KSwitchKeys_GetParmsId(void *thisptr, uint64_t *parms_id); extern "C" long KSwitchKeys_SetParmsId(void *thisptr, uint64_t *parms_id); extern "C" long KSwitchKeys_Pool(void *thisptr, void **pool); extern "C" long KSwitchKeys_SaveSize(void *thisptr, uint8_t compr_mode, int64_t *result); extern "C" long KSwitchKeys_Save(void *thisptr, uint8_t *outptr, uint64_t size, uint8_t compr_mode, int64_t *out_bytes); extern "C" long KSwitchKeys_UnsafeLoad(void *thisptr, void *context, uint8_t *inptr, uint64_t size, int64_t *in_bytes); extern "C" long KSwitchKeys_Load(void *thisptr, void *context, uint8_t *inptr, uint64_t size, int64_t *in_bytes); # 14 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/memorymanager.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long MemoryManager_GetPool1(int prof_opt, bool clear_on_destruction, void **pool_handle); extern "C" long MemoryManager_GetPool2(void **pool_handle); extern "C" long MemoryManager_SwitchProfile(void *new_profile); extern "C" long MMProf_CreateGlobal(void **profile); extern "C" long MMProf_CreateFixed(void *pool, void **profile); extern "C" long MMProf_CreateNew(void **profile); extern "C" long MMProf_CreateThreadLocal(void **profile); extern "C" long MMProf_GetPool(void *thisptr, void **pool_handle); extern "C" long MMProf_Destroy(void *thisptr); # 15 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/memorypoolhandle.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long MemoryPoolHandle_Create1(void **handle); extern "C" long MemoryPoolHandle_Create2(void *otherptr, void **handle); extern "C" long MemoryPoolHandle_Destroy(void *thisptr); extern "C" long MemoryPoolHandle_Set(void *thisptr, void *assignptr); extern "C" long MemoryPoolHandle_Global(void **handle); extern "C" long MemoryPoolHandle_ThreadLocal(void **handle); extern "C" long MemoryPoolHandle_New(bool clear_on_destruction, void **handle); extern "C" long MemoryPoolHandle_PoolCount(void *thisptr, uint64_t *count); extern "C" long MemoryPoolHandle_AllocByteCount(void *thisptr, uint64_t *count); extern "C" long MemoryPoolHandle_UseCount(void *thisptr, long *count); extern "C" long MemoryPoolHandle_IsInitialized(void *thisptr, bool *result); extern "C" long MemoryPoolHandle_Equals(void *thisptr, void *otherptr, bool *result); # 16 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/modulus.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long Modulus_Create1(uint64_t value, void **small_modulus); extern "C" long Modulus_Create2(void *copy, void **small_modulus); extern "C" long Modulus_Destroy(void *thisptr); extern "C" long Modulus_IsZero(void *thisptr, bool *is_zero); extern "C" long Modulus_IsPrime(void *thisptr, bool *is_prime); extern "C" long Modulus_Value(void *thisptr, uint64_t *value); extern "C" long Modulus_BitCount(void *thisptr, int *bit_count); extern "C" long Modulus_UInt64Count(void *thisptr, uint64_t *uint64_count); extern "C" long Modulus_Set1(void *thisptr, void *assign); extern "C" long Modulus_Set2(void *thisptr, uint64_t value); extern "C" long Modulus_ConstRatio(void *thisptr, uint64_t length, uint64_t ratio[]); extern "C" long Modulus_Equals1(void *thisptr, void *other, bool *result); extern "C" long Modulus_Equals2(void *thisptr, uint64_t other, bool *result); extern "C" long Modulus_SaveSize(void *thisptr, uint8_t compr_mode, int64_t *result); extern "C" long Modulus_Save(void *thisptr, uint8_t *outptr, uint64_t size, uint8_t compr_mode, int64_t *out_bytes); extern "C" long Modulus_Load(void *thisptr, uint8_t *inptr, uint64_t size, int64_t *in_bytes); extern "C" long Modulus_Reduce(void *thisptr, uint64_t value, uint64_t *result); extern "C" long CoeffModulus_MaxBitCount(uint64_t poly_modulus_degree, int sec_level, int *bit_count); extern "C" long CoeffModulus_BFVDefault(uint64_t poly_modulus_degree, int sec_level, uint64_t *length, void **coeffs); extern "C" long CoeffModulus_Create(uint64_t poly_modulus_degree, uint64_t length, int *bit_sizes, void **coeffs); # 17 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/plaintext.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long Plaintext_Create1(void *memoryPoolHandle, void **plaintext); extern "C" long Plaintext_Create2(uint64_t coeffCount, void *memoryPoolHandle, void **plaintext); extern "C" long Plaintext_Create3(uint64_t capacity, uint64_t coeffCount, void *memoryPoolHandle, void **plaintext); extern "C" long Plaintext_Create4(char *hex_poly, void *memoryPoolHandle, void **plaintext); extern "C" long Plaintext_Create5(void *copy, void **plaintext); extern "C" long Plaintext_Set1(void *thisptr, void *assign); extern "C" long Plaintext_Set2(void *thisptr, char *hex_poly); extern "C" long Plaintext_Set3(void *thisptr, uint64_t const_coeff); extern "C" long Plaintext_Set4(void *thisptr, uint64_t count, uint64_t *coeffs); extern "C" long Plaintext_Destroy(void *thisptr); extern "C" long Plaintext_CoeffCount(void *thisptr, uint64_t *coeff_count); extern "C" long Plaintext_CoeffAt(void *thisptr, uint64_t index, uint64_t *coeff); extern "C" long Plaintext_SetCoeffAt(void *thisptr, uint64_t index, uint64_t value); extern "C" long Plaintext_ToString(void *thispt, char *outstr, uint64_t *length); extern "C" long Plaintext_IsNTTForm(void *thisptr, bool *is_ntt_form); extern "C" long Plaintext_IsZero(void *thisptr, bool *is_zero); extern "C" long Plaintext_SetZero1(void *thisptr); extern "C" long Plaintext_SetZero2(void *thisptr, uint64_t start_coeff); extern "C" long Plaintext_SetZero3(void *thisptr, uint64_t start_coeff, uint64_t length); extern "C" long Plaintext_GetParmsId(void *thisptr, uint64_t *parms_id); extern "C" long Plaintext_SetParmsId(void *thisptr, uint64_t *parms_id); extern "C" long Plaintext_Reserve(void *thisptr, uint64_t capacity); extern "C" long Plaintext_Resize(void *thisptr, uint64_t coeff_count); extern "C" long Plaintext_ShrinkToFit(void *thisptr); extern "C" long Plaintext_Release(void *thisptr); extern "C" long Plaintext_Capacity(void *thisptr, uint64_t *capacity); extern "C" long Plaintext_SignificantCoeffCount(void *thisptr, uint64_t *significant_coeff_count); extern "C" long Plaintext_NonZeroCoeffCount(void *thisptr, uint64_t *nonzero_coeff_count); extern "C" long Plaintext_Scale(void *thisptr, double *scale); extern "C" long Plaintext_SetScale(void *thisptr, double scale); extern "C" long Plaintext_Equals(void *thisptr, void *other, bool *result); extern "C" long Plaintext_SwapData(void *thisptr, uint64_t count, uint64_t *new_data); extern "C" long Plaintext_Pool(void *thisptr, void **pool); extern "C" long Plaintext_SaveSize(void *thisptr, uint8_t compr_mode, int64_t *result); extern "C" long Plaintext_Save(void *thisptr, uint8_t *outptr, uint64_t size, uint8_t compr_mode, int64_t *out_bytes); extern "C" long Plaintext_UnsafeLoad(void *thisptr, void *context, uint8_t *inptr, uint64_t size, int64_t *in_bytes); extern "C" long Plaintext_Load(void *thisptr, void *context, uint8_t *inptr, uint64_t size, int64_t *in_bytes); # 18 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/publickey.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long PublicKey_Create1(void **public_key); extern "C" long PublicKey_Create2(void *copy, void **public_key); extern "C" long PublicKey_Set(void *thisptr, void *assign); extern "C" long PublicKey_Data(void *thisptr, void **data); extern "C" long PublicKey_ParmsId(void *thisptr, uint64_t *parms_id); extern "C" long PublicKey_Pool(void *thisptr, void **pool); extern "C" long PublicKey_Destroy(void *thisptr); extern "C" long PublicKey_SaveSize(void *thisptr, uint8_t compr_mode, int64_t *result); extern "C" long PublicKey_Save(void *thisptr, uint8_t *outptr, uint64_t size, uint8_t compr_mode, int64_t *out_bytes); extern "C" long PublicKey_UnsafeLoad(void *thisptr, void *context, uint8_t *inptr, uint64_t size, int64_t *in_bytes); extern "C" long PublicKey_Load(void *thisptr, void *context, uint8_t *inptr, uint64_t size, int64_t *in_bytes); # 19 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/relinkeys.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long RelinKeys_GetIndex(uint64_t key_power, uint64_t *index); # 20 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/sealcontext.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long SEALContext_Create(void *encryptionParams, bool expand_mod_chain, int sec_level, void **context); extern "C" long SEALContext_Destroy(void *thisptr); extern "C" long SEALContext_KeyParmsId(void *thisptr, uint64_t *parms_id); extern "C" long SEALContext_FirstParmsId(void *thisptr, uint64_t *parms_id); extern "C" long SEALContext_LastParmsId(void *thisptr, uint64_t *parms_id); extern "C" long SEALContext_ParametersSet(void *thisptr, bool *params_set); extern "C" long SEALContext_KeyContextData(void *thisptr, void **context_data); extern "C" long SEALContext_FirstContextData(void *thisptr, void **context_data); extern "C" long SEALContext_LastContextData(void *thisptr, void **context_data); extern "C" long SEALContext_GetContextData(void *thisptr, uint64_t *parms_id, void **context_data); extern "C" long SEALContext_UsingKeyswitching(void *thisptr, bool *using_keyswitching); extern "C" long SEALContext_ParameterErrorName(void *thisptr, char *outstr, uint64_t *length); extern "C" long SEALContext_ParameterErrorMessage(void *thisptr, char *outstr, uint64_t *length); # 21 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/secretkey.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long SecretKey_Create1(void **secret_key); extern "C" long SecretKey_Create2(void *copy, void **secret_key); extern "C" long SecretKey_Set(void *thisptr, void *assign); extern "C" long SecretKey_Data(void *thisptr, void **data); extern "C" long SecretKey_Destroy(void *thisptr); extern "C" long SecretKey_ParmsId(void *thisptr, uint64_t *parms_id); extern "C" long SecretKey_Pool(void *thisptr, void **pool); extern "C" long SecretKey_SaveSize(void *thisptr, uint8_t compr_mode, int64_t *result); extern "C" long SecretKey_Save(void *thisptr, uint8_t *outptr, uint64_t size, uint8_t compr_mode, int64_t *out_bytes); extern "C" long SecretKey_UnsafeLoad(void *thisptr, void *context, uint8_t *inptr, uint64_t size, int64_t *in_bytes); extern "C" long SecretKey_Load(void *thisptr, void *context, uint8_t *inptr, uint64_t size, int64_t *in_bytes); # 22 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/serialization.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. /////////////////////////////////////////////////////////////////////////// // // This API is provided as a simple interface for Microsoft SEAL library // that can be PInvoked by .Net code. // /////////////////////////////////////////////////////////////////////////// extern "C" long Serialization_SEALMagic(uint16_t *result); extern "C" long Serialization_SEALHeaderSize(uint8_t *result); extern "C" long Serialization_IsSupportedComprMode(uint8_t compr_mode, bool *result); extern "C" long Serialization_ComprModeDefault(uint8_t *result); extern "C" long Serialization_IsCompatibleVersion(uint8_t *headerptr, uint64_t size, bool *result); extern "C" long Serialization_IsValidHeader(uint8_t *headerptr, uint64_t size, bool *result); # 23 "./bindgen_wrapper.h" 2 # 1 "SEAL/native/src/seal/c/utilities.h" 1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. // STD # 1 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/algorithm" 1 // -*- C++ -*- //===-------------------------- algorithm ---------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// /* algorithm synopsis #include namespace std { template constexpr bool // constexpr in C++20 all_of(InputIterator first, InputIterator last, Predicate pred); template constexpr bool // constexpr in C++20 any_of(InputIterator first, InputIterator last, Predicate pred); template constexpr bool // constexpr in C++20 none_of(InputIterator first, InputIterator last, Predicate pred); template constexpr Function // constexpr in C++20 for_each(InputIterator first, InputIterator last, Function f); template constexpr InputIterator // constexpr in C++20 for_each_n(InputIterator first, Size n, Function f); // C++17 template constexpr InputIterator // constexpr in C++20 find(InputIterator first, InputIterator last, const T& value); template constexpr InputIterator // constexpr in C++20 find_if(InputIterator first, InputIterator last, Predicate pred); template constexpr InputIterator // constexpr in C++20 find_if_not(InputIterator first, InputIterator last, Predicate pred); template constexpr ForwardIterator1 // constexpr in C++20 find_end(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2); template constexpr ForwardIterator1 // constexpr in C++20 find_end(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate pred); template constexpr ForwardIterator1 // constexpr in C++20 find_first_of(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2); template constexpr ForwardIterator1 // constexpr in C++20 find_first_of(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate pred); template constexpr ForwardIterator // constexpr in C++20 adjacent_find(ForwardIterator first, ForwardIterator last); template constexpr ForwardIterator // constexpr in C++20 adjacent_find(ForwardIterator first, ForwardIterator last, BinaryPredicate pred); template constexpr typename iterator_traits::difference_type // constexpr in C++20 count(InputIterator first, InputIterator last, const T& value); template constexpr typename iterator_traits::difference_type // constexpr in C++20 count_if(InputIterator first, InputIterator last, Predicate pred); template constexpr pair // constexpr in C++20 mismatch(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2); template constexpr pair // constexpr in C++20 mismatch(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2); // **C++14** template constexpr pair // constexpr in C++20 mismatch(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, BinaryPredicate pred); template constexpr pair // constexpr in C++20 mismatch(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, BinaryPredicate pred); // **C++14** template constexpr bool // constexpr in C++20 equal(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2); template constexpr bool // constexpr in C++20 equal(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2); // **C++14** template constexpr bool // constexpr in C++20 equal(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, BinaryPredicate pred); template constexpr bool // constexpr in C++20 equal(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, BinaryPredicate pred); // **C++14** template constexpr bool // constexpr in C++20 is_permutation(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2); template constexpr bool // constexpr in C++20 is_permutation(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2); // **C++14** template constexpr bool // constexpr in C++20 is_permutation(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, BinaryPredicate pred); template constexpr bool // constexpr in C++20 is_permutation(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate pred); // **C++14** template constexpr ForwardIterator1 // constexpr in C++20 search(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2); template constexpr ForwardIterator1 // constexpr in C++20 search(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate pred); template constexpr ForwardIterator // constexpr in C++20 search_n(ForwardIterator first, ForwardIterator last, Size count, const T& value); template constexpr ForwardIterator // constexpr in C++20 search_n(ForwardIterator first, ForwardIterator last, Size count, const T& value, BinaryPredicate pred); template constexpr OutputIterator // constexpr in C++20 copy(InputIterator first, InputIterator last, OutputIterator result); template constexpr OutputIterator // constexpr in C++20 copy_if(InputIterator first, InputIterator last, OutputIterator result, Predicate pred); template constexpr OutputIterator // constexpr in C++20 copy_n(InputIterator first, Size n, OutputIterator result); template constexpr BidirectionalIterator2 // constexpr in C++20 copy_backward(BidirectionalIterator1 first, BidirectionalIterator1 last, BidirectionalIterator2 result); template constexpr ForwardIterator2 // constexpr in C++20 swap_ranges(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2); template constexpr void // constexpr in C++20 iter_swap(ForwardIterator1 a, ForwardIterator2 b); template constexpr OutputIterator // constexpr in C++20 transform(InputIterator first, InputIterator last, OutputIterator result, UnaryOperation op); template constexpr OutputIterator // constexpr in C++20 transform(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, OutputIterator result, BinaryOperation binary_op); template constexpr void // constexpr in C++20 replace(ForwardIterator first, ForwardIterator last, const T& old_value, const T& new_value); template constexpr void // constexpr in C++20 replace_if(ForwardIterator first, ForwardIterator last, Predicate pred, const T& new_value); template constexpr OutputIterator // constexpr in C++20 replace_copy(InputIterator first, InputIterator last, OutputIterator result, const T& old_value, const T& new_value); template constexpr OutputIterator // constexpr in C++20 replace_copy_if(InputIterator first, InputIterator last, OutputIterator result, Predicate pred, const T& new_value); template constexpr void // constexpr in C++20 fill(ForwardIterator first, ForwardIterator last, const T& value); template constexpr OutputIterator // constexpr in C++20 fill_n(OutputIterator first, Size n, const T& value); template constexpr void // constexpr in C++20 generate(ForwardIterator first, ForwardIterator last, Generator gen); template constexpr OutputIterator // constexpr in C++20 generate_n(OutputIterator first, Size n, Generator gen); template constexpr ForwardIterator // constexpr in C++20 remove(ForwardIterator first, ForwardIterator last, const T& value); template constexpr ForwardIterator // constexpr in C++20 remove_if(ForwardIterator first, ForwardIterator last, Predicate pred); template constexpr OutputIterator // constexpr in C++20 remove_copy(InputIterator first, InputIterator last, OutputIterator result, const T& value); template constexpr OutputIterator // constexpr in C++20 remove_copy_if(InputIterator first, InputIterator last, OutputIterator result, Predicate pred); template constexpr ForwardIterator // constexpr in C++20 unique(ForwardIterator first, ForwardIterator last); template constexpr ForwardIterator // constexpr in C++20 unique(ForwardIterator first, ForwardIterator last, BinaryPredicate pred); template constexpr OutputIterator // constexpr in C++20 unique_copy(InputIterator first, InputIterator last, OutputIterator result); template constexpr OutputIterator // constexpr in C++20 unique_copy(InputIterator first, InputIterator last, OutputIterator result, BinaryPredicate pred); template constexpr void // constexpr in C++20 reverse(BidirectionalIterator first, BidirectionalIterator last); template constexpr OutputIterator // constexpr in C++20 reverse_copy(BidirectionalIterator first, BidirectionalIterator last, OutputIterator result); template constexpr ForwardIterator // constexpr in C++20 rotate(ForwardIterator first, ForwardIterator middle, ForwardIterator last); template constexpr OutputIterator // constexpr in C++20 rotate_copy(ForwardIterator first, ForwardIterator middle, ForwardIterator last, OutputIterator result); template void random_shuffle(RandomAccessIterator first, RandomAccessIterator last); // deprecated in C++14, removed in C++17 template void random_shuffle(RandomAccessIterator first, RandomAccessIterator last, RandomNumberGenerator& rand); // deprecated in C++14, removed in C++17 template SampleIterator sample(PopulationIterator first, PopulationIterator last, SampleIterator out, Distance n, UniformRandomBitGenerator&& g); // C++17 template void shuffle(RandomAccessIterator first, RandomAccessIterator last, UniformRandomNumberGenerator&& g); template constexpr ForwardIterator shift_left(ForwardIterator first, ForwardIterator last, typename iterator_traits::difference_type n); // C++20 template constexpr ForwardIterator shift_right(ForwardIterator first, ForwardIterator last, typename iterator_traits::difference_type n); // C++20 template constexpr bool // constexpr in C++20 is_partitioned(InputIterator first, InputIterator last, Predicate pred); template constexpr ForwardIterator // constexpr in C++20 partition(ForwardIterator first, ForwardIterator last, Predicate pred); template constexpr pair // constexpr in C++20 partition_copy(InputIterator first, InputIterator last, OutputIterator1 out_true, OutputIterator2 out_false, Predicate pred); template ForwardIterator stable_partition(ForwardIterator first, ForwardIterator last, Predicate pred); template constexpr ForwardIterator // constexpr in C++20 partition_point(ForwardIterator first, ForwardIterator last, Predicate pred); template constexpr bool // constexpr in C++20 is_sorted(ForwardIterator first, ForwardIterator last); template constexpr bool // constexpr in C++20 is_sorted(ForwardIterator first, ForwardIterator last, Compare comp); template constexpr ForwardIterator // constexpr in C++20 is_sorted_until(ForwardIterator first, ForwardIterator last); template constexpr ForwardIterator // constexpr in C++20 is_sorted_until(ForwardIterator first, ForwardIterator last, Compare comp); template void sort(RandomAccessIterator first, RandomAccessIterator last); template void sort(RandomAccessIterator first, RandomAccessIterator last, Compare comp); template void stable_sort(RandomAccessIterator first, RandomAccessIterator last); template void stable_sort(RandomAccessIterator first, RandomAccessIterator last, Compare comp); template void partial_sort(RandomAccessIterator first, RandomAccessIterator middle, RandomAccessIterator last); template void partial_sort(RandomAccessIterator first, RandomAccessIterator middle, RandomAccessIterator last, Compare comp); template RandomAccessIterator partial_sort_copy(InputIterator first, InputIterator last, RandomAccessIterator result_first, RandomAccessIterator result_last); template RandomAccessIterator partial_sort_copy(InputIterator first, InputIterator last, RandomAccessIterator result_first, RandomAccessIterator result_last, Compare comp); template void nth_element(RandomAccessIterator first, RandomAccessIterator nth, RandomAccessIterator last); template void nth_element(RandomAccessIterator first, RandomAccessIterator nth, RandomAccessIterator last, Compare comp); template constexpr ForwardIterator // constexpr in C++20 lower_bound(ForwardIterator first, ForwardIterator last, const T& value); template constexpr ForwardIterator // constexpr in C++20 lower_bound(ForwardIterator first, ForwardIterator last, const T& value, Compare comp); template constexpr ForwardIterator // constexpr in C++20 upper_bound(ForwardIterator first, ForwardIterator last, const T& value); template constexpr ForwardIterator // constexpr in C++20 upper_bound(ForwardIterator first, ForwardIterator last, const T& value, Compare comp); template constexpr pair // constexpr in C++20 equal_range(ForwardIterator first, ForwardIterator last, const T& value); template constexpr pair // constexpr in C++20 equal_range(ForwardIterator first, ForwardIterator last, const T& value, Compare comp); template constexpr bool // constexpr in C++20 binary_search(ForwardIterator first, ForwardIterator last, const T& value); template constexpr bool // constexpr in C++20 binary_search(ForwardIterator first, ForwardIterator last, const T& value, Compare comp); template constexpr OutputIterator // constexpr in C++20 merge(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result); template constexpr OutputIterator // constexpr in C++20 merge(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp); template void inplace_merge(BidirectionalIterator first, BidirectionalIterator middle, BidirectionalIterator last); template void inplace_merge(BidirectionalIterator first, BidirectionalIterator middle, BidirectionalIterator last, Compare comp); template constexpr bool // constexpr in C++20 includes(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2); template constexpr bool // constexpr in C++20 includes(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, Compare comp); template constexpr OutputIterator // constexpr in C++20 set_union(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result); template constexpr OutputIterator // constexpr in C++20 set_union(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp); template constexpr OutputIterator // constexpr in C++20 set_intersection(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result); template constexpr OutputIterator // constexpr in C++20 set_intersection(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp); template constexpr OutputIterator // constexpr in C++20 set_difference(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result); template constexpr OutputIterator // constexpr in C++20 set_difference(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp); template constexpr OutputIterator // constexpr in C++20 set_symmetric_difference(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result); template constexpr OutputIterator // constexpr in C++20 set_symmetric_difference(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp); template void push_heap(RandomAccessIterator first, RandomAccessIterator last); template void push_heap(RandomAccessIterator first, RandomAccessIterator last, Compare comp); template void pop_heap(RandomAccessIterator first, RandomAccessIterator last); template void pop_heap(RandomAccessIterator first, RandomAccessIterator last, Compare comp); template void make_heap(RandomAccessIterator first, RandomAccessIterator last); template void make_heap(RandomAccessIterator first, RandomAccessIterator last, Compare comp); template void sort_heap(RandomAccessIterator first, RandomAccessIterator last); template void sort_heap(RandomAccessIterator first, RandomAccessIterator last, Compare comp); template constexpr bool // constexpr in C++20 is_heap(RandomAccessIterator first, RandomAccessiterator last); template constexpr bool // constexpr in C++20 is_heap(RandomAccessIterator first, RandomAccessiterator last, Compare comp); template constexpr RandomAccessIterator // constexpr in C++20 is_heap_until(RandomAccessIterator first, RandomAccessiterator last); template constexpr RandomAccessIterator // constexpr in C++20 is_heap_until(RandomAccessIterator first, RandomAccessiterator last, Compare comp); template constexpr ForwardIterator // constexpr in C++14 min_element(ForwardIterator first, ForwardIterator last); template constexpr ForwardIterator // constexpr in C++14 min_element(ForwardIterator first, ForwardIterator last, Compare comp); template constexpr const T& // constexpr in C++14 min(const T& a, const T& b); template constexpr const T& // constexpr in C++14 min(const T& a, const T& b, Compare comp); template constexpr T // constexpr in C++14 min(initializer_list t); template constexpr T // constexpr in C++14 min(initializer_list t, Compare comp); template constexpr const T& clamp(const T& v, const T& lo, const T& hi); // C++17 template constexpr const T& clamp(const T& v, const T& lo, const T& hi, Compare comp); // C++17 template constexpr ForwardIterator // constexpr in C++14 max_element(ForwardIterator first, ForwardIterator last); template constexpr ForwardIterator // constexpr in C++14 max_element(ForwardIterator first, ForwardIterator last, Compare comp); template constexpr const T& // constexpr in C++14 max(const T& a, const T& b); template constexpr const T& // constexpr in C++14 max(const T& a, const T& b, Compare comp); template constexpr T // constexpr in C++14 max(initializer_list t); template constexpr T // constexpr in C++14 max(initializer_list t, Compare comp); template constexpr pair // constexpr in C++14 minmax_element(ForwardIterator first, ForwardIterator last); template constexpr pair // constexpr in C++14 minmax_element(ForwardIterator first, ForwardIterator last, Compare comp); template constexpr pair // constexpr in C++14 minmax(const T& a, const T& b); template constexpr pair // constexpr in C++14 minmax(const T& a, const T& b, Compare comp); template constexpr pair // constexpr in C++14 minmax(initializer_list t); template constexpr pair // constexpr in C++14 minmax(initializer_list t, Compare comp); template constexpr bool // constexpr in C++20 lexicographical_compare(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2); template constexpr bool // constexpr in C++20 lexicographical_compare(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, Compare comp); template constexpr bool // constexpr in C++20 next_permutation(BidirectionalIterator first, BidirectionalIterator last); template constexpr bool // constexpr in C++20 next_permutation(BidirectionalIterator first, BidirectionalIterator last, Compare comp); template constexpr bool // constexpr in C++20 prev_permutation(BidirectionalIterator first, BidirectionalIterator last); template constexpr bool // constexpr in C++20 prev_permutation(BidirectionalIterator first, BidirectionalIterator last, Compare comp); } // std */ # 1 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 1 // XXX EMSCRIPTEN: macros that would ordinarily be added from __config_site.in // -*- C++ -*- //===--------------------------- __config ---------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// # 649 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/algorithm" 2 # 1 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/initializer_list" 1 // -*- C++ -*- //===----------------------- initializer_list -----------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// /* initializer_list synopsis namespace std { template class initializer_list { public: typedef E value_type; typedef const E& reference; typedef const E& const_reference; typedef size_t size_type; typedef const E* iterator; typedef const E* const_iterator; initializer_list() noexcept; // constexpr in C++14 size_t size() const noexcept; // constexpr in C++14 const E* begin() const noexcept; // constexpr in C++14 const E* end() const noexcept; // constexpr in C++14 }; template const E* begin(initializer_list il) noexcept; // constexpr in C++14 template const E* end(initializer_list il) noexcept; // constexpr in C++14 } // std */ # 1 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 1 // XXX EMSCRIPTEN: macros that would ordinarily be added from __config_site.in // -*- C++ -*- //===--------------------------- __config ---------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// # 46 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/initializer_list" 2 # 50 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/initializer_list" 3 namespace std // purposefully not versioned { template class __attribute__ ((__type_visibility__("default"))) initializer_list { const _Ep* __begin_; size_t __size_; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr initializer_list(const _Ep* __b, size_t __s) noexcept : __begin_(__b), __size_(__s) {} public: typedef _Ep value_type; typedef const _Ep& reference; typedef const _Ep& const_reference; typedef size_t size_type; typedef const _Ep* iterator; typedef const _Ep* const_iterator; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr initializer_list() noexcept : __begin_(nullptr), __size_(0) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr size_t size() const noexcept {return __size_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Ep* begin() const noexcept {return __begin_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Ep* end() const noexcept {return __begin_ + __size_;} }; template inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Ep* begin(initializer_list<_Ep> __il) noexcept { return __il.begin(); } template inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Ep* end(initializer_list<_Ep> __il) noexcept { return __il.end(); } } // std # 650 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/algorithm" 2 # 1 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/type_traits" 1 // -*- C++ -*- //===------------------------ type_traits ---------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// /* type_traits synopsis namespace std { // helper class: template struct integral_constant; typedef integral_constant true_type; // C++11 typedef integral_constant false_type; // C++11 template // C++14 using bool_constant = integral_constant; // C++14 typedef bool_constant true_type; // C++14 typedef bool_constant false_type; // C++14 // helper traits template struct enable_if; template struct conditional; // Primary classification traits: template struct is_void; template struct is_null_pointer; // C++14 template struct is_integral; template struct is_floating_point; template struct is_array; template struct is_pointer; template struct is_lvalue_reference; template struct is_rvalue_reference; template struct is_member_object_pointer; template struct is_member_function_pointer; template struct is_enum; template struct is_union; template struct is_class; template struct is_function; // Secondary classification traits: template struct is_reference; template struct is_arithmetic; template struct is_fundamental; template struct is_member_pointer; template struct is_scoped_enum; // C++2b template struct is_scalar; template struct is_object; template struct is_compound; // Const-volatile properties and transformations: template struct is_const; template struct is_volatile; template struct remove_const; template struct remove_volatile; template struct remove_cv; template struct add_const; template struct add_volatile; template struct add_cv; // Reference transformations: template struct remove_reference; template struct add_lvalue_reference; template struct add_rvalue_reference; // Pointer transformations: template struct remove_pointer; template struct add_pointer; template struct type_identity; // C++20 template using type_identity_t = typename type_identity::type; // C++20 // Integral properties: template struct is_signed; template struct is_unsigned; template struct make_signed; template struct make_unsigned; // Array properties and transformations: template struct rank; template struct extent; template struct remove_extent; template struct remove_all_extents; template struct is_bounded_array; // C++20 template struct is_unbounded_array; // C++20 // Member introspection: template struct is_pod; template struct is_trivial; template struct is_trivially_copyable; template struct is_standard_layout; template struct is_literal_type; template struct is_empty; template struct is_polymorphic; template struct is_abstract; template struct is_final; // C++14 template struct is_aggregate; // C++17 template struct is_constructible; template struct is_default_constructible; template struct is_copy_constructible; template struct is_move_constructible; template struct is_assignable; template struct is_copy_assignable; template struct is_move_assignable; template struct is_swappable_with; // C++17 template struct is_swappable; // C++17 template struct is_destructible; template struct is_trivially_constructible; template struct is_trivially_default_constructible; template struct is_trivially_copy_constructible; template struct is_trivially_move_constructible; template struct is_trivially_assignable; template struct is_trivially_copy_assignable; template struct is_trivially_move_assignable; template struct is_trivially_destructible; template struct is_nothrow_constructible; template struct is_nothrow_default_constructible; template struct is_nothrow_copy_constructible; template struct is_nothrow_move_constructible; template struct is_nothrow_assignable; template struct is_nothrow_copy_assignable; template struct is_nothrow_move_assignable; template struct is_nothrow_swappable_with; // C++17 template struct is_nothrow_swappable; // C++17 template struct is_nothrow_destructible; template struct has_virtual_destructor; template struct has_unique_object_representations; // C++17 // Relationships between types: template struct is_same; template struct is_base_of; template struct is_convertible; template struct is_nothrow_convertible; // C++20 template inline constexpr bool is_nothrow_convertible_v; // C++20 template struct is_invocable; template struct is_invocable_r; template struct is_nothrow_invocable; template struct is_nothrow_invocable_r; // Alignment properties and transformations: template struct alignment_of; template struct aligned_storage; template struct aligned_union; template struct remove_cvref; // C++20 template struct decay; template struct common_type; template struct underlying_type; template class result_of; // undefined template class result_of; template struct invoke_result; // C++17 // const-volatile modifications: template using remove_const_t = typename remove_const::type; // C++14 template using remove_volatile_t = typename remove_volatile::type; // C++14 template using remove_cv_t = typename remove_cv::type; // C++14 template using add_const_t = typename add_const::type; // C++14 template using add_volatile_t = typename add_volatile::type; // C++14 template using add_cv_t = typename add_cv::type; // C++14 // reference modifications: template using remove_reference_t = typename remove_reference::type; // C++14 template using add_lvalue_reference_t = typename add_lvalue_reference::type; // C++14 template using add_rvalue_reference_t = typename add_rvalue_reference::type; // C++14 // sign modifications: template using make_signed_t = typename make_signed::type; // C++14 template using make_unsigned_t = typename make_unsigned::type; // C++14 // array modifications: template using remove_extent_t = typename remove_extent::type; // C++14 template using remove_all_extents_t = typename remove_all_extents::type; // C++14 template inline constexpr bool is_bounded_array_v = is_bounded_array::value; // C++20 inline constexpr bool is_unbounded_array_v = is_unbounded_array::value; // C++20 // pointer modifications: template using remove_pointer_t = typename remove_pointer::type; // C++14 template using add_pointer_t = typename add_pointer::type; // C++14 // other transformations: template using aligned_storage_t = typename aligned_storage::type; // C++14 template using aligned_union_t = typename aligned_union::type; // C++14 template using remove_cvref_t = typename remove_cvref::type; // C++20 template using decay_t = typename decay::type; // C++14 template using enable_if_t = typename enable_if::type; // C++14 template using conditional_t = typename conditional::type; // C++14 template using common_type_t = typename common_type::type; // C++14 template using underlying_type_t = typename underlying_type::type; // C++14 template using result_of_t = typename result_of::type; // C++14 template using invoke_result_t = typename invoke_result::type; // C++17 template using void_t = void; // C++17 // See C++14 20.10.4.1, primary type categories template inline constexpr bool is_void_v = is_void::value; // C++17 template inline constexpr bool is_null_pointer_v = is_null_pointer::value; // C++17 template inline constexpr bool is_integral_v = is_integral::value; // C++17 template inline constexpr bool is_floating_point_v = is_floating_point::value; // C++17 template inline constexpr bool is_array_v = is_array::value; // C++17 template inline constexpr bool is_pointer_v = is_pointer::value; // C++17 template inline constexpr bool is_lvalue_reference_v = is_lvalue_reference::value; // C++17 template inline constexpr bool is_rvalue_reference_v = is_rvalue_reference::value; // C++17 template inline constexpr bool is_member_object_pointer_v = is_member_object_pointer::value; // C++17 template inline constexpr bool is_member_function_pointer_v = is_member_function_pointer::value; // C++17 template inline constexpr bool is_enum_v = is_enum::value; // C++17 template inline constexpr bool is_union_v = is_union::value; // C++17 template inline constexpr bool is_class_v = is_class::value; // C++17 template inline constexpr bool is_function_v = is_function::value; // C++17 // See C++14 20.10.4.2, composite type categories template inline constexpr bool is_reference_v = is_reference::value; // C++17 template inline constexpr bool is_arithmetic_v = is_arithmetic::value; // C++17 template inline constexpr bool is_fundamental_v = is_fundamental::value; // C++17 template inline constexpr bool is_object_v = is_object::value; // C++17 template inline constexpr bool is_scalar_v = is_scalar::value; // C++17 template inline constexpr bool is_compound_v = is_compound::value; // C++17 template inline constexpr bool is_member_pointer_v = is_member_pointer::value; // C++17 template inline constexpr bool is_scoped_enum_v = is_scoped_enum::value; // C++2b // See C++14 20.10.4.3, type properties template inline constexpr bool is_const_v = is_const::value; // C++17 template inline constexpr bool is_volatile_v = is_volatile::value; // C++17 template inline constexpr bool is_trivial_v = is_trivial::value; // C++17 template inline constexpr bool is_trivially_copyable_v = is_trivially_copyable::value; // C++17 template inline constexpr bool is_standard_layout_v = is_standard_layout::value; // C++17 template inline constexpr bool is_pod_v = is_pod::value; // C++17 template inline constexpr bool is_literal_type_v = is_literal_type::value; // C++17 template inline constexpr bool is_empty_v = is_empty::value; // C++17 template inline constexpr bool is_polymorphic_v = is_polymorphic::value; // C++17 template inline constexpr bool is_abstract_v = is_abstract::value; // C++17 template inline constexpr bool is_final_v = is_final::value; // C++17 template inline constexpr bool is_aggregate_v = is_aggregate::value; // C++17 template inline constexpr bool is_signed_v = is_signed::value; // C++17 template inline constexpr bool is_unsigned_v = is_unsigned::value; // C++17 template inline constexpr bool is_constructible_v = is_constructible::value; // C++17 template inline constexpr bool is_default_constructible_v = is_default_constructible::value; // C++17 template inline constexpr bool is_copy_constructible_v = is_copy_constructible::value; // C++17 template inline constexpr bool is_move_constructible_v = is_move_constructible::value; // C++17 template inline constexpr bool is_assignable_v = is_assignable::value; // C++17 template inline constexpr bool is_copy_assignable_v = is_copy_assignable::value; // C++17 template inline constexpr bool is_move_assignable_v = is_move_assignable::value; // C++17 template inline constexpr bool is_swappable_with_v = is_swappable_with::value; // C++17 template inline constexpr bool is_swappable_v = is_swappable::value; // C++17 template inline constexpr bool is_destructible_v = is_destructible::value; // C++17 template inline constexpr bool is_trivially_constructible_v = is_trivially_constructible::value; // C++17 template inline constexpr bool is_trivially_default_constructible_v = is_trivially_default_constructible::value; // C++17 template inline constexpr bool is_trivially_copy_constructible_v = is_trivially_copy_constructible::value; // C++17 template inline constexpr bool is_trivially_move_constructible_v = is_trivially_move_constructible::value; // C++17 template inline constexpr bool is_trivially_assignable_v = is_trivially_assignable::value; // C++17 template inline constexpr bool is_trivially_copy_assignable_v = is_trivially_copy_assignable::value; // C++17 template inline constexpr bool is_trivially_move_assignable_v = is_trivially_move_assignable::value; // C++17 template inline constexpr bool is_trivially_destructible_v = is_trivially_destructible::value; // C++17 template inline constexpr bool is_nothrow_constructible_v = is_nothrow_constructible::value; // C++17 template inline constexpr bool is_nothrow_default_constructible_v = is_nothrow_default_constructible::value; // C++17 template inline constexpr bool is_nothrow_copy_constructible_v = is_nothrow_copy_constructible::value; // C++17 template inline constexpr bool is_nothrow_move_constructible_v = is_nothrow_move_constructible::value; // C++17 template inline constexpr bool is_nothrow_assignable_v = is_nothrow_assignable::value; // C++17 template inline constexpr bool is_nothrow_copy_assignable_v = is_nothrow_copy_assignable::value; // C++17 template inline constexpr bool is_nothrow_move_assignable_v = is_nothrow_move_assignable::value; // C++17 template inline constexpr bool is_nothrow_swappable_with_v = is_nothrow_swappable_with::value; // C++17 template inline constexpr bool is_nothrow_swappable_v = is_nothrow_swappable::value; // C++17 template inline constexpr bool is_nothrow_destructible_v = is_nothrow_destructible::value; // C++17 template inline constexpr bool has_virtual_destructor_v = has_virtual_destructor::value; // C++17 template inline constexpr bool has_unique_object_representations_v // C++17 = has_unique_object_representations::value; // See C++14 20.10.5, type property queries template inline constexpr size_t alignment_of_v = alignment_of::value; // C++17 template inline constexpr size_t rank_v = rank::value; // C++17 template inline constexpr size_t extent_v = extent::value; // C++17 // See C++14 20.10.6, type relations template inline constexpr bool is_same_v = is_same::value; // C++17 template inline constexpr bool is_base_of_v = is_base_of::value; // C++17 template inline constexpr bool is_convertible_v = is_convertible::value; // C++17 template inline constexpr bool is_invocable_v = is_invocable::value; // C++17 template inline constexpr bool is_invocable_r_v = is_invocable_r::value; // C++17 template inline constexpr bool is_nothrow_invocable_v = is_nothrow_invocable::value; // C++17 template inline constexpr bool is_nothrow_invocable_r_v = is_nothrow_invocable_r::value; // C++17 // [meta.logical], logical operator traits: template struct conjunction; // C++17 template inline constexpr bool conjunction_v = conjunction::value; // C++17 template struct disjunction; // C++17 template inline constexpr bool disjunction_v = disjunction::value; // C++17 template struct negation; // C++17 template inline constexpr bool negation_v = negation::value; // C++17 } */ # 1 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config" 1 // XXX EMSCRIPTEN: macros that would ordinarily be added from __config_site.in // -*- C++ -*- //===--------------------------- __config ---------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// # 420 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/type_traits" 2 # 425 "/Users/rickweber/Projects/Sunscreen/emsdk/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/type_traits" 3 namespace std { inline namespace __1 { template struct __attribute__ ((__type_visibility__("default"))) pair; template class __attribute__ ((__type_visibility__("default"))) reference_wrapper; template struct __attribute__ ((__type_visibility__("default"))) hash; template 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 constexpr const _Tp integral_constant<_Tp, __v>::value; template using bool_constant = integral_constant; typedef bool_constant<(true)> true_type; typedef bool_constant<(false)> false_type; template using _BoolConstant = integral_constant; template struct _MetaBase; template <> struct _MetaBase { template using _SelectImpl = _Tp; template