webruby 0.2.2 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/webruby/config.rb +4 -9
- data/lib/webruby/rake/files.rake +2 -2
- data/modules/emscripten/AUTHORS +9 -1
- data/modules/emscripten/CONTRIBUTING.markdown +5 -0
- data/modules/emscripten/ChangeLog +435 -0
- data/modules/emscripten/cmake/Modules/FindOpenAL.cmake +26 -0
- data/modules/emscripten/cmake/Platform/Emscripten.cmake +9 -2
- data/modules/emscripten/em++ +0 -2
- data/modules/emscripten/emcc +92 -32
- data/modules/emscripten/emlink.py +16 -13
- data/modules/emscripten/emmake +1 -1
- data/modules/emscripten/emrun +918 -0
- data/modules/emscripten/emrun.bat +2 -0
- data/modules/emscripten/emscripten.py +545 -20
- data/modules/emscripten/src/analyzer.js +6 -1
- data/modules/emscripten/src/compiler.js +25 -16
- data/modules/emscripten/src/emrun_postjs.js +20 -0
- data/modules/emscripten/{tests → src}/hello_world.js +0 -0
- data/modules/emscripten/src/intertyper.js +45 -16
- data/modules/emscripten/src/jsifier.js +78 -48
- data/modules/emscripten/src/library.js +381 -96
- data/modules/emscripten/src/library_browser.js +50 -53
- data/modules/emscripten/src/library_egl.js +66 -24
- data/modules/emscripten/src/library_fs.js +122 -90
- data/modules/emscripten/src/library_gl.js +739 -353
- data/modules/emscripten/src/library_glfw.js +9 -3
- data/modules/emscripten/src/library_glut.js +10 -5
- data/modules/emscripten/src/library_idbfs.js +14 -14
- data/modules/emscripten/src/library_memfs.js +65 -41
- data/modules/emscripten/src/library_nodefs.js +61 -9
- data/modules/emscripten/src/library_openal.js +4 -4
- data/modules/emscripten/src/library_path.js +9 -13
- data/modules/emscripten/src/library_sdl.js +301 -64
- data/modules/emscripten/src/library_sockfs.js +7 -5
- data/modules/emscripten/src/modules.js +62 -22
- data/modules/emscripten/src/parseTools.js +135 -102
- data/modules/emscripten/src/postamble.js +3 -4
- data/modules/emscripten/src/preamble.js +49 -29
- data/modules/emscripten/src/proxyClient.js +1 -1
- data/modules/emscripten/src/proxyWorker.js +10 -10
- data/modules/emscripten/src/relooper/Relooper.cpp +15 -4
- data/modules/emscripten/src/runtime.js +32 -8
- data/modules/emscripten/src/settings.js +25 -8
- data/modules/emscripten/src/shell.html +6 -3
- data/modules/emscripten/src/shell.js +13 -11
- data/modules/emscripten/src/simd.js +602 -432
- data/modules/emscripten/src/struct_info.json +22 -2
- data/modules/emscripten/src/utility.js +32 -17
- data/modules/emscripten/system/include/SDL/SDL_events.h +1 -0
- data/modules/emscripten/system/include/compat/ctype.h +17 -0
- data/modules/emscripten/system/include/compat/wchar.h +23 -0
- data/modules/emscripten/system/include/compat/wctype.h +23 -0
- data/modules/emscripten/system/include/emscripten/emmintrin.h +87 -0
- data/modules/emscripten/system/include/emscripten/emscripten.h +30 -4
- data/modules/emscripten/system/include/emscripten/vector.h +29 -1
- data/modules/emscripten/system/include/emscripten/xmmintrin.h +131 -0
- data/modules/emscripten/system/include/libcxx/CREDITS.TXT +9 -1
- data/modules/emscripten/system/include/libcxx/__bit_reference +8 -8
- data/modules/emscripten/system/include/libcxx/__config +95 -17
- data/modules/emscripten/system/include/libcxx/__debug +25 -4
- data/modules/emscripten/system/include/libcxx/__functional_03 +7 -7
- data/modules/emscripten/system/include/libcxx/__functional_base +169 -9
- data/modules/emscripten/system/include/libcxx/__functional_base_03 +1 -1
- data/modules/emscripten/system/include/libcxx/__hash_table +25 -25
- data/modules/emscripten/system/include/libcxx/__locale +21 -19
- data/modules/emscripten/system/include/libcxx/__mutex_base +2 -33
- data/modules/emscripten/system/include/libcxx/__split_buffer +9 -9
- data/modules/emscripten/system/include/libcxx/__std_stream +14 -0
- data/modules/emscripten/system/include/libcxx/__tree +35 -26
- data/modules/emscripten/system/include/libcxx/__tuple +15 -15
- data/modules/emscripten/system/include/libcxx/__tuple_03 +2 -2
- data/modules/emscripten/system/include/libcxx/__undef_min_max +8 -0
- data/modules/emscripten/system/include/libcxx/algorithm +121 -110
- data/modules/emscripten/system/include/libcxx/array +15 -15
- data/modules/emscripten/system/include/libcxx/bitset +4 -4
- data/modules/emscripten/system/include/libcxx/chrono +51 -17
- data/modules/emscripten/system/include/libcxx/cmath +25 -23
- data/modules/emscripten/system/include/libcxx/codecvt +21 -18
- data/modules/emscripten/system/include/libcxx/complex +48 -7
- data/modules/emscripten/system/include/libcxx/cstddef +1 -1
- data/modules/emscripten/system/include/libcxx/cstdio +8 -1
- data/modules/emscripten/system/include/libcxx/cstdlib +1 -1
- data/modules/emscripten/system/include/libcxx/cwchar +1 -1
- data/modules/emscripten/system/include/libcxx/deque +26 -12
- data/modules/emscripten/system/include/libcxx/dynarray +311 -0
- data/modules/emscripten/system/include/libcxx/exception +4 -4
- data/modules/emscripten/system/include/libcxx/ext/__hash +3 -3
- data/modules/emscripten/system/include/libcxx/ext/hash_map +19 -15
- data/modules/emscripten/system/include/libcxx/ext/hash_set +7 -3
- data/modules/emscripten/system/include/libcxx/forward_list +33 -7
- data/modules/emscripten/system/include/libcxx/fstream +4 -4
- data/modules/emscripten/system/include/libcxx/functional +200 -170
- data/modules/emscripten/system/include/libcxx/future +83 -39
- data/modules/emscripten/system/include/libcxx/initializer_list +24 -11
- data/modules/emscripten/system/include/libcxx/iomanip +147 -0
- data/modules/emscripten/system/include/libcxx/ios +24 -16
- data/modules/emscripten/system/include/libcxx/iosfwd +19 -19
- data/modules/emscripten/system/include/libcxx/istream +13 -8
- data/modules/emscripten/system/include/libcxx/iterator +108 -417
- data/modules/emscripten/system/include/libcxx/limits +8 -4
- data/modules/emscripten/system/include/libcxx/list +28 -8
- data/modules/emscripten/system/include/libcxx/locale +153 -390
- data/modules/emscripten/system/include/libcxx/map +280 -100
- data/modules/emscripten/system/include/libcxx/memory +49 -97
- data/modules/emscripten/system/include/libcxx/mutex +2 -2
- data/modules/emscripten/system/include/libcxx/new +43 -14
- data/modules/emscripten/system/include/libcxx/numeric +2 -2
- data/modules/emscripten/system/include/libcxx/optional +697 -0
- data/modules/emscripten/system/include/libcxx/ostream +17 -8
- data/modules/emscripten/system/include/libcxx/queue +5 -5
- data/modules/emscripten/system/include/libcxx/random +53 -51
- data/modules/emscripten/system/include/libcxx/ratio +11 -11
- data/modules/emscripten/system/include/libcxx/readme.txt +1 -1
- data/modules/emscripten/system/include/libcxx/regex +23 -20
- data/modules/emscripten/system/include/libcxx/scoped_allocator +1 -1
- data/modules/emscripten/system/include/libcxx/set +166 -2
- data/modules/emscripten/system/include/libcxx/shared_mutex +419 -0
- data/modules/emscripten/system/include/libcxx/sstream +4 -4
- data/modules/emscripten/system/include/libcxx/stack +3 -3
- data/modules/emscripten/system/include/libcxx/streambuf +5 -5
- data/modules/emscripten/system/include/libcxx/string +372 -324
- data/modules/emscripten/system/include/libcxx/support/ibm/limits.h +99 -0
- data/modules/emscripten/system/include/libcxx/support/ibm/support.h +54 -0
- data/modules/emscripten/system/include/libcxx/support/ibm/xlocale.h +326 -0
- data/modules/emscripten/system/include/libcxx/support/win32/limits_win32.h +6 -6
- data/modules/emscripten/system/include/libcxx/support/win32/locale_win32.h +15 -15
- data/modules/emscripten/system/include/libcxx/support/win32/math_win32.h +2 -0
- data/modules/emscripten/system/include/libcxx/support/win32/support.h +6 -1
- data/modules/emscripten/system/include/libcxx/system_error +14 -8
- data/modules/emscripten/system/include/libcxx/thread +7 -8
- data/modules/emscripten/system/include/libcxx/tuple +29 -88
- data/modules/emscripten/system/include/libcxx/type_traits +253 -209
- data/modules/emscripten/system/include/libcxx/typeindex +3 -3
- data/modules/emscripten/system/include/libcxx/unordered_map +162 -101
- data/modules/emscripten/system/include/libcxx/unordered_set +79 -2
- data/modules/emscripten/system/include/libcxx/utility +20 -20
- data/modules/emscripten/system/include/libcxx/valarray +23 -23
- data/modules/emscripten/system/include/libcxx/vector +114 -91
- data/modules/emscripten/system/lib/libc/musl/src/regex/regcomp.c +3352 -0
- data/modules/emscripten/system/lib/libc/musl/src/regex/regerror.c +35 -0
- data/modules/emscripten/system/lib/libc/musl/src/regex/regexec.c +1011 -0
- data/modules/emscripten/system/lib/libc/musl/src/regex/tre-mem.c +158 -0
- data/modules/emscripten/system/lib/libc/musl/src/regex/tre.h +231 -0
- data/modules/emscripten/system/lib/libcextra.symbols +7 -0
- data/modules/emscripten/system/lib/libcxx/CREDITS.TXT +9 -1
- data/modules/emscripten/system/lib/libcxx/algorithm.cpp +1 -0
- data/modules/emscripten/system/lib/libcxx/debug.cpp +66 -42
- data/modules/emscripten/system/lib/libcxx/exception.cpp +88 -16
- data/modules/emscripten/system/lib/libcxx/future.cpp +6 -0
- data/modules/emscripten/system/lib/libcxx/ios.cpp +7 -2
- data/modules/emscripten/system/lib/libcxx/iostream.cpp +8 -8
- data/modules/emscripten/system/lib/libcxx/locale.cpp +38 -11
- data/modules/emscripten/system/lib/libcxx/mutex.cpp +3 -0
- data/modules/emscripten/system/lib/libcxx/new.cpp +44 -10
- data/modules/emscripten/system/lib/libcxx/optional.cpp +25 -0
- data/modules/emscripten/system/lib/libcxx/random.cpp +26 -0
- data/modules/emscripten/system/lib/libcxx/readme.txt +1 -1
- data/modules/emscripten/system/lib/libcxx/shared_mutex.cpp +101 -0
- data/modules/emscripten/system/lib/libcxx/stdexcept.cpp +11 -7
- data/modules/emscripten/system/lib/libcxx/string.cpp +3 -1
- data/modules/emscripten/system/lib/libcxx/strstream.cpp +7 -7
- data/modules/emscripten/system/lib/libcxx/support/win32/locale_win32.cpp +12 -13
- data/modules/emscripten/system/lib/libcxx/support/win32/support.cpp +33 -36
- data/modules/emscripten/system/lib/libcxx/symbols +187 -168
- data/modules/emscripten/system/lib/libcxx/system_error.cpp +1 -0
- data/modules/emscripten/system/lib/libcxx/thread.cpp +7 -3
- data/modules/emscripten/system/lib/libcxx/typeinfo.cpp +9 -6
- data/modules/emscripten/system/lib/libcxx/valarray.cpp +2 -0
- data/modules/emscripten/third_party/lzma.js/doit.bat +4 -0
- data/modules/emscripten/third_party/lzma.js/doit.sh +9 -2
- data/modules/emscripten/tools/cache.py +5 -7
- data/modules/emscripten/tools/cache.pyc +0 -0
- data/modules/emscripten/tools/eliminator/asm-eliminator-test-output.js +7 -0
- data/modules/emscripten/tools/eliminator/asm-eliminator-test.js +9 -1
- data/modules/emscripten/tools/eliminator/eliminator-test-output.js +3 -0
- data/modules/emscripten/tools/eliminator/eliminator-test.js +9 -1
- data/modules/emscripten/tools/file_packager.py +93 -50
- data/modules/emscripten/tools/js-optimizer.js +98 -48
- data/modules/emscripten/tools/js_optimizer.py +4 -4
- data/modules/emscripten/tools/js_optimizer.pyc +0 -0
- data/modules/emscripten/tools/jsrun.py +1 -1
- data/modules/emscripten/tools/jsrun.pyc +0 -0
- data/modules/emscripten/tools/response_file.py +6 -0
- data/modules/emscripten/tools/response_file.pyc +0 -0
- data/modules/emscripten/tools/settings_template_readonly.py +2 -0
- data/modules/emscripten/tools/shared.py +88 -34
- data/modules/emscripten/tools/shared.pyc +0 -0
- data/modules/emscripten/tools/split.py +21 -13
- data/modules/mruby/build_config.rb +7 -1
- data/modules/mruby/doc/compile/README.md +5 -9
- data/modules/mruby/include/mrbconf.h +5 -2
- data/modules/mruby/include/mruby/array.h +1 -0
- data/modules/mruby/include/mruby/compile.h +2 -4
- data/modules/mruby/include/mruby/dump.h +7 -16
- data/modules/mruby/include/mruby/hash.h +1 -1
- data/modules/mruby/include/mruby/irep.h +14 -2
- data/modules/mruby/include/mruby/khash.h +8 -7
- data/modules/mruby/include/mruby/string.h +1 -0
- data/modules/mruby/include/mruby/value.h +5 -2
- data/modules/mruby/include/mruby.h +12 -13
- data/modules/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +16 -6
- data/modules/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +18 -30
- data/modules/mruby/mrbgems/mruby-fiber/src/fiber.c +21 -0
- data/modules/mruby/mrbgems/mruby-math/src/math.c +1 -1
- data/modules/mruby/mrbgems/mruby-random/src/random.c +144 -47
- data/modules/mruby/mrbgems/mruby-random/test/random.rb +44 -0
- data/modules/mruby/mrbgems/mruby-struct/src/struct.c +5 -5
- data/modules/mruby/mrblib/numeric.rb +99 -33
- data/modules/mruby/src/array.c +11 -4
- data/modules/mruby/src/backtrace.c +2 -2
- data/modules/mruby/src/class.c +49 -30
- data/modules/mruby/src/codegen.c +131 -79
- data/modules/mruby/src/debug.c +1 -1
- data/modules/mruby/src/dump.c +213 -163
- data/modules/mruby/src/error.c +17 -17
- data/modules/mruby/src/error.h +1 -1
- data/modules/mruby/src/etc.c +10 -0
- data/modules/mruby/src/gc.c +35 -17
- data/modules/mruby/src/hash.c +5 -5
- data/modules/mruby/src/kernel.c +36 -14
- data/modules/mruby/src/load.c +238 -296
- data/modules/mruby/src/numeric.c +18 -98
- data/modules/mruby/src/object.c +3 -5
- data/modules/mruby/src/parse.y +63 -56
- data/modules/mruby/src/proc.c +8 -5
- data/modules/mruby/src/re.h +0 -1
- data/modules/mruby/src/state.c +65 -27
- data/modules/mruby/src/string.c +3 -31
- data/modules/mruby/src/symbol.c +3 -3
- data/modules/mruby/src/variable.c +12 -5
- data/modules/mruby/src/vm.c +90 -72
- data/modules/mruby/tasks/mruby_build.rake +10 -1
- data/modules/mruby/tasks/toolchains/gcc.rake +12 -2
- data/modules/mruby/tasks/toolchains/{vs2012.rake → visualcpp.rake} +1 -1
- data/modules/mruby/test/driver.c +3 -3
- data/modules/mruby/test/t/array.rb +5 -5
- data/modules/mruby/test/t/class.rb +14 -1
- data/modules/mruby/test/t/kernel.rb +4 -0
- data/modules/mruby/test/t/module.rb +4 -4
- data/modules/mruby/test/t/nameerror.rb +1 -1
- data/modules/mruby/tools/mrbc/mrbc.c +23 -17
- data/modules/mruby/travis_config.rb +10 -1
- metadata +28 -5
- data/modules/mruby/tasks/toolchains/vs2010.rake +0 -3
@@ -185,10 +185,9 @@ _LIBCPP_INLINE_VISIBILITY __thread_id get_id() _NOEXCEPT;
|
|
185
185
|
|
186
186
|
} // this_thread
|
187
187
|
|
188
|
-
|
189
|
-
template<> struct _LIBCPP_TYPE_VIS hash<__thread_id>;
|
188
|
+
template<> struct _LIBCPP_TYPE_VIS_ONLY hash<__thread_id>;
|
190
189
|
|
191
|
-
class
|
190
|
+
class _LIBCPP_TYPE_VIS_ONLY __thread_id
|
192
191
|
{
|
193
192
|
// FIXME: pthread_t is a pointer on Darwin but a long on Linux.
|
194
193
|
// NULL is the no-thread value on Darwin. Someone needs to check
|
@@ -231,11 +230,11 @@ private:
|
|
231
230
|
|
232
231
|
friend __thread_id this_thread::get_id() _NOEXCEPT;
|
233
232
|
friend class _LIBCPP_TYPE_VIS thread;
|
234
|
-
friend struct
|
233
|
+
friend struct _LIBCPP_TYPE_VIS_ONLY hash<__thread_id>;
|
235
234
|
};
|
236
235
|
|
237
236
|
template<>
|
238
|
-
struct
|
237
|
+
struct _LIBCPP_TYPE_VIS_ONLY hash<__thread_id>
|
239
238
|
: public unary_function<__thread_id, size_t>
|
240
239
|
{
|
241
240
|
_LIBCPP_INLINE_VISIBILITY
|
@@ -307,7 +306,7 @@ class __assoc_sub_state;
|
|
307
306
|
|
308
307
|
class _LIBCPP_HIDDEN __thread_struct_imp;
|
309
308
|
|
310
|
-
class __thread_struct
|
309
|
+
class _LIBCPP_TYPE_VIS __thread_struct
|
311
310
|
{
|
312
311
|
__thread_struct_imp* __p_;
|
313
312
|
|
@@ -321,7 +320,7 @@ public:
|
|
321
320
|
void __make_ready_at_thread_exit(__assoc_sub_state*);
|
322
321
|
};
|
323
322
|
|
324
|
-
__thread_specific_ptr<__thread_struct>& __thread_local_data();
|
323
|
+
_LIBCPP_FUNC_VIS __thread_specific_ptr<__thread_struct>& __thread_local_data();
|
325
324
|
|
326
325
|
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
327
326
|
|
@@ -405,7 +404,7 @@ void swap(thread& __x, thread& __y) _NOEXCEPT {__x.swap(__y);}
|
|
405
404
|
namespace this_thread
|
406
405
|
{
|
407
406
|
|
408
|
-
void sleep_for(const chrono::nanoseconds& ns);
|
407
|
+
_LIBCPP_FUNC_VIS void sleep_for(const chrono::nanoseconds& ns);
|
409
408
|
|
410
409
|
template <class _Rep, class _Period>
|
411
410
|
void
|
@@ -73,7 +73,7 @@ public:
|
|
73
73
|
const unspecified ignore;
|
74
74
|
|
75
75
|
template <class... T> tuple<V...> make_tuple(T&&...); // constexpr in C++14
|
76
|
-
template <class... T> tuple<ATypes...> forward_as_tuple(T&&...) noexcept;
|
76
|
+
template <class... T> tuple<ATypes...> forward_as_tuple(T&&...) noexcept; // constexpr in C++14
|
77
77
|
template <class... T> tuple<T&...> tie(T&...) noexcept;
|
78
78
|
template <class... Tuples> tuple<CTypes...> tuple_cat(Tuples&&... tpls); // constexpr in C++14
|
79
79
|
|
@@ -133,74 +133,12 @@ template <class... Types>
|
|
133
133
|
|
134
134
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
135
135
|
|
136
|
-
// allocator_arg_t
|
137
|
-
|
138
|
-
struct _LIBCPP_TYPE_VIS allocator_arg_t { };
|
139
|
-
|
140
|
-
#if defined(_LIBCPP_HAS_NO_CONSTEXPR) || defined(_LIBCPP_BUILDING_MEMORY)
|
141
|
-
extern const allocator_arg_t allocator_arg;
|
142
|
-
#else
|
143
|
-
constexpr allocator_arg_t allocator_arg = allocator_arg_t();
|
144
|
-
#endif
|
145
|
-
|
146
|
-
// uses_allocator
|
147
|
-
|
148
|
-
template <class _Tp>
|
149
|
-
struct __has_allocator_type
|
150
|
-
{
|
151
|
-
private:
|
152
|
-
struct __two {char __lx; char __lxx;};
|
153
|
-
template <class _Up> static __two __test(...);
|
154
|
-
template <class _Up> static char __test(typename _Up::allocator_type* = 0);
|
155
|
-
public:
|
156
|
-
static const bool value = sizeof(__test<_Tp>(0)) == 1;
|
157
|
-
};
|
158
|
-
|
159
|
-
template <class _Tp, class _Alloc, bool = __has_allocator_type<_Tp>::value>
|
160
|
-
struct __uses_allocator
|
161
|
-
: public integral_constant<bool,
|
162
|
-
is_convertible<_Alloc, typename _Tp::allocator_type>::value>
|
163
|
-
{
|
164
|
-
};
|
165
|
-
|
166
|
-
template <class _Tp, class _Alloc>
|
167
|
-
struct __uses_allocator<_Tp, _Alloc, false>
|
168
|
-
: public false_type
|
169
|
-
{
|
170
|
-
};
|
171
|
-
|
172
|
-
template <class _Tp, class _Alloc>
|
173
|
-
struct _LIBCPP_TYPE_VIS uses_allocator
|
174
|
-
: public __uses_allocator<_Tp, _Alloc>
|
175
|
-
{
|
176
|
-
};
|
177
|
-
|
178
|
-
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
179
|
-
|
180
|
-
// uses-allocator construction
|
181
|
-
|
182
|
-
template <class _Tp, class _Alloc, class ..._Args>
|
183
|
-
struct __uses_alloc_ctor_imp
|
184
|
-
{
|
185
|
-
static const bool __ua = uses_allocator<_Tp, _Alloc>::value;
|
186
|
-
static const bool __ic =
|
187
|
-
is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>::value;
|
188
|
-
static const int value = __ua ? 2 - __ic : 0;
|
189
|
-
};
|
190
|
-
|
191
|
-
template <class _Tp, class _Alloc, class ..._Args>
|
192
|
-
struct __uses_alloc_ctor
|
193
|
-
: integral_constant<int, __uses_alloc_ctor_imp<_Tp, _Alloc, _Args...>::value>
|
194
|
-
{};
|
195
|
-
|
196
|
-
#endif // _LIBCPP_HAS_NO_VARIADICS
|
197
|
-
|
198
136
|
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
199
137
|
|
200
138
|
// tuple_size
|
201
139
|
|
202
140
|
template <class ..._Tp>
|
203
|
-
class
|
141
|
+
class _LIBCPP_TYPE_VIS_ONLY tuple_size<tuple<_Tp...> >
|
204
142
|
: public integral_constant<size_t, sizeof...(_Tp)>
|
205
143
|
{
|
206
144
|
};
|
@@ -208,7 +146,7 @@ class _LIBCPP_TYPE_VIS tuple_size<tuple<_Tp...> >
|
|
208
146
|
// tuple_element
|
209
147
|
|
210
148
|
template <size_t _Ip, class ..._Tp>
|
211
|
-
class
|
149
|
+
class _LIBCPP_TYPE_VIS_ONLY tuple_element<_Ip, tuple<_Tp...> >
|
212
150
|
{
|
213
151
|
public:
|
214
152
|
typedef typename tuple_element<_Ip, __tuple_types<_Tp...> >::type type;
|
@@ -332,7 +270,7 @@ public:
|
|
332
270
|
_LIBCPP_INLINE_VISIBILITY
|
333
271
|
_LIBCPP_CONSTEXPR_AFTER_CXX11
|
334
272
|
__tuple_leaf(__tuple_leaf&& __t) _NOEXCEPT_(is_nothrow_move_constructible<_Hp>::value)
|
335
|
-
: value(_VSTD::
|
273
|
+
: value(_VSTD::forward<_Hp>(__t.get()))
|
336
274
|
{}
|
337
275
|
|
338
276
|
template <class _Tp>
|
@@ -519,13 +457,24 @@ struct __tuple_impl<__tuple_indices<_Indx...>, _Tp...>
|
|
519
457
|
return *this;
|
520
458
|
}
|
521
459
|
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
460
|
+
__tuple_impl(const __tuple_impl&) = default;
|
461
|
+
__tuple_impl(__tuple_impl&&) = default;
|
462
|
+
|
463
|
+
_LIBCPP_INLINE_VISIBILITY
|
464
|
+
__tuple_impl&
|
465
|
+
operator=(const __tuple_impl& __t) _NOEXCEPT_((__all<is_nothrow_copy_assignable<_Tp>::value...>::value))
|
466
|
+
{
|
467
|
+
__swallow(__tuple_leaf<_Indx, _Tp>::operator=(static_cast<const __tuple_leaf<_Indx, _Tp>&>(__t).get())...);
|
468
|
+
return *this;
|
469
|
+
}
|
470
|
+
|
471
|
+
_LIBCPP_INLINE_VISIBILITY
|
472
|
+
__tuple_impl&
|
473
|
+
operator=(__tuple_impl&& __t) _NOEXCEPT_((__all<is_nothrow_move_assignable<_Tp>::value...>::value))
|
474
|
+
{
|
475
|
+
__swallow(__tuple_leaf<_Indx, _Tp>::operator=(_VSTD::forward<_Tp>(static_cast<__tuple_leaf<_Indx, _Tp>&>(__t).get()))...);
|
476
|
+
return *this;
|
477
|
+
}
|
529
478
|
|
530
479
|
_LIBCPP_INLINE_VISIBILITY
|
531
480
|
void swap(__tuple_impl& __t)
|
@@ -536,7 +485,7 @@ struct __tuple_impl<__tuple_indices<_Indx...>, _Tp...>
|
|
536
485
|
};
|
537
486
|
|
538
487
|
template <class ..._Tp>
|
539
|
-
class
|
488
|
+
class _LIBCPP_TYPE_VIS_ONLY tuple
|
540
489
|
{
|
541
490
|
typedef __tuple_impl<typename __make_tuple_indices<sizeof...(_Tp)>::type, _Tp...> base;
|
542
491
|
|
@@ -724,7 +673,7 @@ public:
|
|
724
673
|
};
|
725
674
|
|
726
675
|
template <>
|
727
|
-
class
|
676
|
+
class _LIBCPP_TYPE_VIS_ONLY tuple<>
|
728
677
|
{
|
729
678
|
public:
|
730
679
|
_LIBCPP_INLINE_VISIBILITY
|
@@ -810,7 +759,7 @@ struct __find_exactly_one_t_helper <_T1, _Idx, _Head, _Args...> {
|
|
810
759
|
static constexpr size_t value =
|
811
760
|
std::conditional<
|
812
761
|
std::is_same<_T1, _Head>::value,
|
813
|
-
__find_exactly_one_t_checker<_T1, _Idx,
|
762
|
+
__find_exactly_one_t_checker<_T1, _Idx, _Args...>,
|
814
763
|
__find_exactly_one_t_helper <_T1, _Idx+1, _Args...>
|
815
764
|
>::type::value;
|
816
765
|
};
|
@@ -864,7 +813,7 @@ struct __ignore_t
|
|
864
813
|
|
865
814
|
namespace { const __ignore_t<unsigned char> ignore = __ignore_t<unsigned char>(); }
|
866
815
|
|
867
|
-
template <class _Tp> class
|
816
|
+
template <class _Tp> class _LIBCPP_TYPE_VIS_ONLY reference_wrapper;
|
868
817
|
|
869
818
|
template <class _Tp>
|
870
819
|
struct ___make_tuple_return
|
@@ -895,14 +844,6 @@ make_tuple(_Tp&&... __t)
|
|
895
844
|
template <class... _Tp>
|
896
845
|
inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
|
897
846
|
tuple<_Tp&&...>
|
898
|
-
__forward_as_tuple(_Tp&&... __t) _NOEXCEPT
|
899
|
-
{
|
900
|
-
return tuple<_Tp&&...>(_VSTD::forward<_Tp>(__t)...);
|
901
|
-
}
|
902
|
-
|
903
|
-
template <class... _Tp>
|
904
|
-
inline _LIBCPP_INLINE_VISIBILITY
|
905
|
-
tuple<_Tp&&...>
|
906
847
|
forward_as_tuple(_Tp&&... __t) _NOEXCEPT
|
907
848
|
{
|
908
849
|
return tuple<_Tp&&...>(_VSTD::forward<_Tp>(__t)...);
|
@@ -1103,7 +1044,7 @@ struct __tuple_cat<tuple<_Types...>, __tuple_indices<_I0...>, __tuple_indices<_J
|
|
1103
1044
|
typename __tuple_cat_return_ref<tuple<_Types...>&&, _Tuple0&&>::type
|
1104
1045
|
operator()(tuple<_Types...> __t, _Tuple0&& __t0)
|
1105
1046
|
{
|
1106
|
-
return
|
1047
|
+
return forward_as_tuple(_VSTD::forward<_Types>(get<_I0>(__t))...,
|
1107
1048
|
get<_J0>(_VSTD::forward<_Tuple0>(__t0))...);
|
1108
1049
|
}
|
1109
1050
|
|
@@ -1118,7 +1059,7 @@ struct __tuple_cat<tuple<_Types...>, __tuple_indices<_I0...>, __tuple_indices<_J
|
|
1118
1059
|
tuple<_Types..., typename __apply_cv<_Tuple0, typename tuple_element<_J0, _T0>::type>::type&&...>,
|
1119
1060
|
typename __make_tuple_indices<sizeof ...(_Types) + tuple_size<_T0>::value>::type,
|
1120
1061
|
typename __make_tuple_indices<tuple_size<_T1>::value>::type>()
|
1121
|
-
(
|
1062
|
+
(forward_as_tuple(
|
1122
1063
|
_VSTD::forward<_Types>(get<_I0>(__t))...,
|
1123
1064
|
get<_J0>(_VSTD::forward<_Tuple0>(__t0))...
|
1124
1065
|
),
|
@@ -1140,7 +1081,7 @@ tuple_cat(_Tuple0&& __t0, _Tuples&&... __tpls)
|
|
1140
1081
|
}
|
1141
1082
|
|
1142
1083
|
template <class ..._Tp, class _Alloc>
|
1143
|
-
struct
|
1084
|
+
struct _LIBCPP_TYPE_VIS_ONLY uses_allocator<tuple<_Tp...>, _Alloc>
|
1144
1085
|
: true_type {};
|
1145
1086
|
|
1146
1087
|
template <class _T1, class _T2>
|