webruby 0.2.2 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|