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
@@ -19,10 +19,10 @@ namespace std
|
|
19
19
|
|
20
20
|
enum class future_errc
|
21
21
|
{
|
22
|
-
|
23
|
-
future_already_retrieved,
|
22
|
+
future_already_retrieved = 1,
|
24
23
|
promise_already_satisfied,
|
25
|
-
no_state
|
24
|
+
no_state,
|
25
|
+
broken_promise
|
26
26
|
};
|
27
27
|
|
28
28
|
enum class launch
|
@@ -309,11 +309,11 @@ public:
|
|
309
309
|
};
|
310
310
|
|
311
311
|
template <class F, class... Args>
|
312
|
-
future<typename result_of<F(Args...)>::type>
|
312
|
+
future<typename result_of<typename decay<F>::type(typename decay<Args>::type...)>::type>
|
313
313
|
async(F&& f, Args&&... args);
|
314
314
|
|
315
315
|
template <class F, class... Args>
|
316
|
-
future<typename result_of<F(Args...)>::type>
|
316
|
+
future<typename result_of<typename decay<F>::type(typename decay<Args>::type...)>::type>
|
317
317
|
async(launch policy, F&& f, Args&&... args);
|
318
318
|
|
319
319
|
template <class> class packaged_task; // undefined
|
@@ -379,19 +379,19 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
|
379
379
|
//enum class future_errc
|
380
380
|
_LIBCPP_DECLARE_STRONG_ENUM(future_errc)
|
381
381
|
{
|
382
|
-
|
383
|
-
future_already_retrieved,
|
382
|
+
future_already_retrieved = 1,
|
384
383
|
promise_already_satisfied,
|
385
|
-
no_state
|
384
|
+
no_state,
|
385
|
+
broken_promise
|
386
386
|
};
|
387
387
|
_LIBCPP_DECLARE_STRONG_ENUM_EPILOG(future_errc)
|
388
388
|
|
389
389
|
template <>
|
390
|
-
struct
|
390
|
+
struct _LIBCPP_TYPE_VIS_ONLY is_error_code_enum<future_errc> : public true_type {};
|
391
391
|
|
392
392
|
#ifdef _LIBCPP_HAS_NO_STRONG_ENUMS
|
393
393
|
template <>
|
394
|
-
struct
|
394
|
+
struct _LIBCPP_TYPE_VIS_ONLY is_error_code_enum<future_errc::__lx> : public true_type { };
|
395
395
|
#endif
|
396
396
|
|
397
397
|
//enum class launch
|
@@ -508,7 +508,7 @@ public:
|
|
508
508
|
virtual ~future_error() _NOEXCEPT;
|
509
509
|
};
|
510
510
|
|
511
|
-
class __assoc_sub_state
|
511
|
+
class _LIBCPP_TYPE_VIS __assoc_sub_state
|
512
512
|
: public __shared_count
|
513
513
|
{
|
514
514
|
protected:
|
@@ -542,14 +542,14 @@ public:
|
|
542
542
|
__state_ |= __future_attached;
|
543
543
|
}
|
544
544
|
_LIBCPP_INLINE_VISIBILITY
|
545
|
-
bool __has_future_attached() const {return __state_ & __future_attached;}
|
545
|
+
bool __has_future_attached() const {return (__state_ & __future_attached) != 0;}
|
546
546
|
|
547
547
|
_LIBCPP_INLINE_VISIBILITY
|
548
548
|
void __set_deferred() {__state_ |= deferred;}
|
549
549
|
|
550
550
|
void __make_ready();
|
551
551
|
_LIBCPP_INLINE_VISIBILITY
|
552
|
-
bool __is_ready() const {return __state_ & ready;}
|
552
|
+
bool __is_ready() const {return (__state_ & ready) != 0;}
|
553
553
|
|
554
554
|
void set_value();
|
555
555
|
void set_value_at_thread_exit();
|
@@ -727,7 +727,7 @@ __assoc_state<_Rp&>::set_value(_Rp& __arg)
|
|
727
727
|
if (this->__has_value())
|
728
728
|
throw future_error(make_error_code(future_errc::promise_already_satisfied));
|
729
729
|
#endif
|
730
|
-
__value_ =
|
730
|
+
__value_ = _VSTD::addressof(__arg);
|
731
731
|
this->__state_ |= base::__constructed | base::ready;
|
732
732
|
__lk.unlock();
|
733
733
|
__cv_.notify_all();
|
@@ -742,7 +742,7 @@ __assoc_state<_Rp&>::set_value_at_thread_exit(_Rp& __arg)
|
|
742
742
|
if (this->__has_value())
|
743
743
|
throw future_error(make_error_code(future_errc::promise_already_satisfied));
|
744
744
|
#endif
|
745
|
-
__value_ =
|
745
|
+
__value_ = _VSTD::addressof(__arg);
|
746
746
|
this->__state_ |= base::__constructed;
|
747
747
|
__thread_local_data()->__make_ready_at_thread_exit(this);
|
748
748
|
__lk.unlock();
|
@@ -778,7 +778,7 @@ void
|
|
778
778
|
__assoc_state_alloc<_Rp, _Alloc>::__on_zero_shared() _NOEXCEPT
|
779
779
|
{
|
780
780
|
if (this->__state_ & base::__constructed)
|
781
|
-
reinterpret_cast<_Rp*>(
|
781
|
+
reinterpret_cast<_Rp*>(_VSTD::addressof(this->__value_))->~_Rp();
|
782
782
|
typename _Alloc::template rebind<__assoc_state_alloc>::other __a(__alloc_);
|
783
783
|
this->~__assoc_state_alloc();
|
784
784
|
__a.deallocate(this, 1);
|
@@ -1032,12 +1032,12 @@ __async_assoc_state<void, _Fp>::__on_zero_shared() _NOEXCEPT
|
|
1032
1032
|
base::__on_zero_shared();
|
1033
1033
|
}
|
1034
1034
|
|
1035
|
-
template <class _Rp> class
|
1036
|
-
template <class _Rp> class
|
1035
|
+
template <class _Rp> class _LIBCPP_TYPE_VIS_ONLY promise;
|
1036
|
+
template <class _Rp> class _LIBCPP_TYPE_VIS_ONLY shared_future;
|
1037
1037
|
|
1038
1038
|
// future
|
1039
1039
|
|
1040
|
-
template <class _Rp> class
|
1040
|
+
template <class _Rp> class _LIBCPP_TYPE_VIS_ONLY future;
|
1041
1041
|
|
1042
1042
|
template <class _Rp, class _Fp>
|
1043
1043
|
future<_Rp>
|
@@ -1056,7 +1056,7 @@ __make_async_assoc_state(_Fp __f);
|
|
1056
1056
|
#endif
|
1057
1057
|
|
1058
1058
|
template <class _Rp>
|
1059
|
-
class
|
1059
|
+
class _LIBCPP_TYPE_VIS_ONLY future
|
1060
1060
|
{
|
1061
1061
|
__assoc_state<_Rp>* __state_;
|
1062
1062
|
|
@@ -1160,7 +1160,7 @@ future<_Rp>::get()
|
|
1160
1160
|
}
|
1161
1161
|
|
1162
1162
|
template <class _Rp>
|
1163
|
-
class
|
1163
|
+
class _LIBCPP_TYPE_VIS_ONLY future<_Rp&>
|
1164
1164
|
{
|
1165
1165
|
__assoc_state<_Rp&>* __state_;
|
1166
1166
|
|
@@ -1341,7 +1341,7 @@ swap(future<_Rp>& __x, future<_Rp>& __y) _NOEXCEPT
|
|
1341
1341
|
template <class _Callable> class packaged_task;
|
1342
1342
|
|
1343
1343
|
template <class _Rp>
|
1344
|
-
class
|
1344
|
+
class _LIBCPP_TYPE_VIS_ONLY promise
|
1345
1345
|
{
|
1346
1346
|
__assoc_state<_Rp>* __state_;
|
1347
1347
|
|
@@ -1519,7 +1519,7 @@ promise<_Rp>::set_exception_at_thread_exit(exception_ptr __p)
|
|
1519
1519
|
// promise<R&>
|
1520
1520
|
|
1521
1521
|
template <class _Rp>
|
1522
|
-
class
|
1522
|
+
class _LIBCPP_TYPE_VIS_ONLY promise<_Rp&>
|
1523
1523
|
{
|
1524
1524
|
__assoc_state<_Rp&>* __state_;
|
1525
1525
|
|
@@ -1736,7 +1736,7 @@ swap(promise<_Rp>& __x, promise<_Rp>& __y) _NOEXCEPT
|
|
1736
1736
|
}
|
1737
1737
|
|
1738
1738
|
template <class _Rp, class _Alloc>
|
1739
|
-
struct
|
1739
|
+
struct _LIBCPP_TYPE_VIS_ONLY uses_allocator<promise<_Rp>, _Alloc>
|
1740
1740
|
: public true_type {};
|
1741
1741
|
|
1742
1742
|
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
@@ -2000,7 +2000,7 @@ __packaged_task_function<_Rp(_ArgTypes...)>::operator()(_ArgTypes... __arg) cons
|
|
2000
2000
|
}
|
2001
2001
|
|
2002
2002
|
template<class _Rp, class ..._ArgTypes>
|
2003
|
-
class
|
2003
|
+
class _LIBCPP_TYPE_VIS_ONLY packaged_task<_Rp(_ArgTypes...)>
|
2004
2004
|
{
|
2005
2005
|
public:
|
2006
2006
|
typedef _Rp result_type;
|
@@ -2013,10 +2013,26 @@ public:
|
|
2013
2013
|
// construction and destruction
|
2014
2014
|
_LIBCPP_INLINE_VISIBILITY
|
2015
2015
|
packaged_task() _NOEXCEPT : __p_(nullptr) {}
|
2016
|
-
template <class _Fp
|
2016
|
+
template <class _Fp,
|
2017
|
+
class = typename enable_if
|
2018
|
+
<
|
2019
|
+
!is_same<
|
2020
|
+
typename decay<_Fp>::type,
|
2021
|
+
packaged_task
|
2022
|
+
>::value
|
2023
|
+
>::type
|
2024
|
+
>
|
2017
2025
|
_LIBCPP_INLINE_VISIBILITY
|
2018
2026
|
explicit packaged_task(_Fp&& __f) : __f_(_VSTD::forward<_Fp>(__f)) {}
|
2019
|
-
template <class _Fp, class _Allocator
|
2027
|
+
template <class _Fp, class _Allocator,
|
2028
|
+
class = typename enable_if
|
2029
|
+
<
|
2030
|
+
!is_same<
|
2031
|
+
typename decay<_Fp>::type,
|
2032
|
+
packaged_task
|
2033
|
+
>::value
|
2034
|
+
>::type
|
2035
|
+
>
|
2020
2036
|
_LIBCPP_INLINE_VISIBILITY
|
2021
2037
|
explicit packaged_task(allocator_arg_t, const _Allocator& __a, _Fp&& __f)
|
2022
2038
|
: __f_(allocator_arg, __a, _VSTD::forward<_Fp>(__f)),
|
@@ -2115,7 +2131,7 @@ packaged_task<_Rp(_ArgTypes...)>::reset()
|
|
2115
2131
|
}
|
2116
2132
|
|
2117
2133
|
template<class ..._ArgTypes>
|
2118
|
-
class
|
2134
|
+
class _LIBCPP_TYPE_VIS_ONLY packaged_task<void(_ArgTypes...)>
|
2119
2135
|
{
|
2120
2136
|
public:
|
2121
2137
|
typedef void result_type;
|
@@ -2128,10 +2144,26 @@ public:
|
|
2128
2144
|
// construction and destruction
|
2129
2145
|
_LIBCPP_INLINE_VISIBILITY
|
2130
2146
|
packaged_task() _NOEXCEPT : __p_(nullptr) {}
|
2131
|
-
template <class _Fp
|
2147
|
+
template <class _Fp,
|
2148
|
+
class = typename enable_if
|
2149
|
+
<
|
2150
|
+
!is_same<
|
2151
|
+
typename decay<_Fp>::type,
|
2152
|
+
packaged_task
|
2153
|
+
>::value
|
2154
|
+
>::type
|
2155
|
+
>
|
2132
2156
|
_LIBCPP_INLINE_VISIBILITY
|
2133
2157
|
explicit packaged_task(_Fp&& __f) : __f_(_VSTD::forward<_Fp>(__f)) {}
|
2134
|
-
template <class _Fp, class _Allocator
|
2158
|
+
template <class _Fp, class _Allocator,
|
2159
|
+
class = typename enable_if
|
2160
|
+
<
|
2161
|
+
!is_same<
|
2162
|
+
typename decay<_Fp>::type,
|
2163
|
+
packaged_task
|
2164
|
+
>::value
|
2165
|
+
>::type
|
2166
|
+
>
|
2135
2167
|
_LIBCPP_INLINE_VISIBILITY
|
2136
2168
|
explicit packaged_task(allocator_arg_t, const _Allocator& __a, _Fp&& __f)
|
2137
2169
|
: __f_(allocator_arg, __a, _VSTD::forward<_Fp>(__f)),
|
@@ -2240,7 +2272,7 @@ swap(packaged_task<_Callable>& __x, packaged_task<_Callable>& __y) _NOEXCEPT
|
|
2240
2272
|
}
|
2241
2273
|
|
2242
2274
|
template <class _Callable, class _Alloc>
|
2243
|
-
struct
|
2275
|
+
struct _LIBCPP_TYPE_VIS_ONLY uses_allocator<packaged_task<_Callable>, _Alloc>
|
2244
2276
|
: public true_type {};
|
2245
2277
|
|
2246
2278
|
template <class _Rp, class _Fp>
|
@@ -2299,20 +2331,32 @@ private:
|
|
2299
2331
|
}
|
2300
2332
|
};
|
2301
2333
|
|
2334
|
+
inline _LIBCPP_INLINE_VISIBILITY bool __does_policy_contain(launch __policy, launch __value )
|
2335
|
+
{ return (int(__policy) & int(__value)) != 0; }
|
2336
|
+
|
2302
2337
|
template <class _Fp, class... _Args>
|
2303
2338
|
future<typename __invoke_of<typename decay<_Fp>::type, typename decay<_Args>::type...>::type>
|
2304
2339
|
async(launch __policy, _Fp&& __f, _Args&&... __args)
|
2305
2340
|
{
|
2306
2341
|
typedef __async_func<typename decay<_Fp>::type, typename decay<_Args>::type...> _BF;
|
2307
2342
|
typedef typename _BF::_Rp _Rp;
|
2308
|
-
|
2309
|
-
|
2310
|
-
|
2343
|
+
|
2344
|
+
#ifndef _LIBCPP_NO_EXCEPTIONS
|
2345
|
+
try
|
2346
|
+
{
|
2347
|
+
#endif
|
2348
|
+
if (__does_policy_contain(__policy, launch::async))
|
2349
|
+
return _VSTD::__make_async_assoc_state<_Rp>(_BF(__decay_copy(_VSTD::forward<_Fp>(__f)),
|
2311
2350
|
__decay_copy(_VSTD::forward<_Args>(__args))...));
|
2312
|
-
|
2313
|
-
|
2351
|
+
#ifndef _LIBCPP_NO_EXCEPTIONS
|
2352
|
+
}
|
2353
|
+
catch ( ... ) { if (__policy == launch::async) throw ; }
|
2354
|
+
#endif
|
2355
|
+
|
2356
|
+
if (__does_policy_contain(__policy, launch::deferred))
|
2357
|
+
return _VSTD::__make_deferred_assoc_state<_Rp>(_BF(__decay_copy(_VSTD::forward<_Fp>(__f)),
|
2314
2358
|
__decay_copy(_VSTD::forward<_Args>(__args))...));
|
2315
|
-
return
|
2359
|
+
return future<_Rp>{};
|
2316
2360
|
}
|
2317
2361
|
|
2318
2362
|
template <class _Fp, class... _Args>
|
@@ -2329,7 +2373,7 @@ async(_Fp&& __f, _Args&&... __args)
|
|
2329
2373
|
// shared_future
|
2330
2374
|
|
2331
2375
|
template <class _Rp>
|
2332
|
-
class
|
2376
|
+
class _LIBCPP_TYPE_VIS_ONLY shared_future
|
2333
2377
|
{
|
2334
2378
|
__assoc_state<_Rp>* __state_;
|
2335
2379
|
|
@@ -2403,7 +2447,7 @@ shared_future<_Rp>::operator=(const shared_future& __rhs)
|
|
2403
2447
|
}
|
2404
2448
|
|
2405
2449
|
template <class _Rp>
|
2406
|
-
class
|
2450
|
+
class _LIBCPP_TYPE_VIS_ONLY shared_future<_Rp&>
|
2407
2451
|
{
|
2408
2452
|
__assoc_state<_Rp&>* __state_;
|
2409
2453
|
|
@@ -29,15 +29,15 @@ public:
|
|
29
29
|
typedef const E* iterator;
|
30
30
|
typedef const E* const_iterator;
|
31
31
|
|
32
|
-
initializer_list() noexcept;
|
32
|
+
initializer_list() noexcept; // constexpr in C++14
|
33
33
|
|
34
|
-
size_t size() const noexcept;
|
35
|
-
const E* begin() const noexcept;
|
36
|
-
const E* end() const noexcept;
|
34
|
+
size_t size() const noexcept; // constexpr in C++14
|
35
|
+
const E* begin() const noexcept; // constexpr in C++14
|
36
|
+
const E* end() const noexcept; // constexpr in C++14
|
37
37
|
};
|
38
38
|
|
39
|
-
template<class E> const E* begin(initializer_list<E> il) noexcept;
|
40
|
-
template<class E> const E* end(initializer_list<E> il) noexcept;
|
39
|
+
template<class E> const E* begin(initializer_list<E> il) noexcept; // constexpr in C++14
|
40
|
+
template<class E> const E* end(initializer_list<E> il) noexcept; // constexpr in C++14
|
41
41
|
|
42
42
|
} // std
|
43
43
|
|
@@ -56,12 +56,13 @@ namespace std // purposefully not versioned
|
|
56
56
|
#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
|
57
57
|
|
58
58
|
template<class _Ep>
|
59
|
-
class
|
59
|
+
class _LIBCPP_TYPE_VIS_ONLY initializer_list
|
60
60
|
{
|
61
61
|
const _Ep* __begin_;
|
62
62
|
size_t __size_;
|
63
63
|
|
64
64
|
_LIBCPP_ALWAYS_INLINE
|
65
|
+
_LIBCPP_CONSTEXPR_AFTER_CXX11
|
65
66
|
initializer_list(const _Ep* __b, size_t __s) _NOEXCEPT
|
66
67
|
: __begin_(__b),
|
67
68
|
__size_(__s)
|
@@ -75,15 +76,26 @@ public:
|
|
75
76
|
typedef const _Ep* iterator;
|
76
77
|
typedef const _Ep* const_iterator;
|
77
78
|
|
78
|
-
_LIBCPP_ALWAYS_INLINE
|
79
|
+
_LIBCPP_ALWAYS_INLINE
|
80
|
+
_LIBCPP_CONSTEXPR_AFTER_CXX11
|
81
|
+
initializer_list() _NOEXCEPT : __begin_(nullptr), __size_(0) {}
|
79
82
|
|
80
|
-
_LIBCPP_ALWAYS_INLINE
|
81
|
-
|
82
|
-
|
83
|
+
_LIBCPP_ALWAYS_INLINE
|
84
|
+
_LIBCPP_CONSTEXPR_AFTER_CXX11
|
85
|
+
size_t size() const _NOEXCEPT {return __size_;}
|
86
|
+
|
87
|
+
_LIBCPP_ALWAYS_INLINE
|
88
|
+
_LIBCPP_CONSTEXPR_AFTER_CXX11
|
89
|
+
const _Ep* begin() const _NOEXCEPT {return __begin_;}
|
90
|
+
|
91
|
+
_LIBCPP_ALWAYS_INLINE
|
92
|
+
_LIBCPP_CONSTEXPR_AFTER_CXX11
|
93
|
+
const _Ep* end() const _NOEXCEPT {return __begin_ + __size_;}
|
83
94
|
};
|
84
95
|
|
85
96
|
template<class _Ep>
|
86
97
|
inline _LIBCPP_INLINE_VISIBILITY
|
98
|
+
_LIBCPP_CONSTEXPR_AFTER_CXX11
|
87
99
|
const _Ep*
|
88
100
|
begin(initializer_list<_Ep> __il) _NOEXCEPT
|
89
101
|
{
|
@@ -92,6 +104,7 @@ begin(initializer_list<_Ep> __il) _NOEXCEPT
|
|
92
104
|
|
93
105
|
template<class _Ep>
|
94
106
|
inline _LIBCPP_INLINE_VISIBILITY
|
107
|
+
_LIBCPP_CONSTEXPR_AFTER_CXX11
|
95
108
|
const _Ep*
|
96
109
|
end(initializer_list<_Ep> __il) _NOEXCEPT
|
97
110
|
{
|
@@ -26,6 +26,17 @@ template <class charT, class moneyT> T8 put_money(const moneyT& mon, bool intl =
|
|
26
26
|
template <class charT> T9 get_time(struct tm* tmb, const charT* fmt);
|
27
27
|
template <class charT> T10 put_time(const struct tm* tmb, const charT* fmt);
|
28
28
|
|
29
|
+
template <class charT>
|
30
|
+
T11 quoted(const charT* s, charT delim=charT('"'), charT escape=charT('\\')); // C++14
|
31
|
+
|
32
|
+
template <class charT, class traits, class Allocator>
|
33
|
+
T12 quoted(const basic_string<charT, traits, Allocator>& s,
|
34
|
+
charT delim=charT('"'), charT escape=charT('\\')); // C++14
|
35
|
+
|
36
|
+
template <class charT, class traits, class Allocator>
|
37
|
+
T13 quoted(basic_string<charT, traits, Allocator>& s,
|
38
|
+
charT delim=charT('"'), charT escape=charT('\\')); // C++14
|
39
|
+
|
29
40
|
} // std
|
30
41
|
|
31
42
|
*/
|
@@ -499,6 +510,142 @@ put_time(const tm* __tm, const _CharT* __fmt)
|
|
499
510
|
return __iom_t10<_CharT>(__tm, __fmt);
|
500
511
|
}
|
501
512
|
|
513
|
+
#if _LIBCPP_STD_VER > 11
|
514
|
+
|
515
|
+
template <class _CharT, class _Traits, class _ForwardIterator>
|
516
|
+
std::basic_ostream<_CharT, _Traits> &
|
517
|
+
__quoted_output ( basic_ostream<_CharT, _Traits> &__os,
|
518
|
+
_ForwardIterator __first, _ForwardIterator __last, _CharT __delim, _CharT __escape )
|
519
|
+
{
|
520
|
+
__os << __delim;
|
521
|
+
for ( ; __first != __last; ++ __first )
|
522
|
+
{
|
523
|
+
if (_Traits::eq (*__first, __escape) || _Traits::eq (*__first, __delim))
|
524
|
+
__os << __escape;
|
525
|
+
__os << *__first;
|
526
|
+
}
|
527
|
+
__os << __delim;
|
528
|
+
return __os;
|
529
|
+
}
|
530
|
+
|
531
|
+
template <class _CharT, class _Traits, class _String>
|
532
|
+
basic_istream<_CharT, _Traits> &
|
533
|
+
__quoted_input ( basic_istream<_CharT, _Traits> &__is, _String & __string, _CharT __delim, _CharT __escape )
|
534
|
+
{
|
535
|
+
__string.clear ();
|
536
|
+
_CharT __c;
|
537
|
+
__is >> __c;
|
538
|
+
if ( __is.fail ())
|
539
|
+
return __is;
|
540
|
+
|
541
|
+
if (!_Traits::eq (__c, __delim)) // no delimiter, read the whole string
|
542
|
+
{
|
543
|
+
__is.unget ();
|
544
|
+
__is >> __string;
|
545
|
+
return __is;
|
546
|
+
}
|
547
|
+
|
548
|
+
__save_flags<_CharT, _Traits> sf(__is);
|
549
|
+
noskipws (__is);
|
550
|
+
while (true)
|
551
|
+
{
|
552
|
+
__is >> __c;
|
553
|
+
if ( __is.fail ())
|
554
|
+
break;
|
555
|
+
if (_Traits::eq (__c, __escape))
|
556
|
+
{
|
557
|
+
__is >> __c;
|
558
|
+
if ( __is.fail ())
|
559
|
+
break;
|
560
|
+
}
|
561
|
+
else if (_Traits::eq (__c, __delim))
|
562
|
+
break;
|
563
|
+
__string.push_back ( __c );
|
564
|
+
}
|
565
|
+
return __is;
|
566
|
+
}
|
567
|
+
|
568
|
+
|
569
|
+
template <class _CharT, class _Iter, class _Traits=char_traits<_CharT>>
|
570
|
+
struct __quoted_output_proxy
|
571
|
+
{
|
572
|
+
_Iter __first;
|
573
|
+
_Iter __last;
|
574
|
+
_CharT __delim;
|
575
|
+
_CharT __escape;
|
576
|
+
|
577
|
+
__quoted_output_proxy(_Iter __f, _Iter __l, _CharT __d, _CharT __e)
|
578
|
+
: __first(__f), __last(__l), __delim(__d), __escape(__e) {}
|
579
|
+
// This would be a nice place for a string_ref
|
580
|
+
};
|
581
|
+
|
582
|
+
template <class _CharT, class _Traits, class _Iter>
|
583
|
+
basic_ostream<_CharT, _Traits>& operator<<(
|
584
|
+
basic_ostream<_CharT, _Traits>& __os,
|
585
|
+
const __quoted_output_proxy<_CharT, _Iter, _Traits> & __proxy)
|
586
|
+
{
|
587
|
+
return __quoted_output (__os, __proxy.__first, __proxy.__last, __proxy.__delim, __proxy.__escape);
|
588
|
+
}
|
589
|
+
|
590
|
+
template <class _CharT, class _Traits, class _Allocator>
|
591
|
+
struct __quoted_proxy
|
592
|
+
{
|
593
|
+
basic_string<_CharT, _Traits, _Allocator> &__string;
|
594
|
+
_CharT __delim;
|
595
|
+
_CharT __escape;
|
596
|
+
|
597
|
+
__quoted_proxy(basic_string<_CharT, _Traits, _Allocator> &__s, _CharT __d, _CharT __e)
|
598
|
+
: __string(__s), __delim(__d), __escape(__e) {}
|
599
|
+
};
|
600
|
+
|
601
|
+
template <class _CharT, class _Traits, class _Allocator>
|
602
|
+
_LIBCPP_INLINE_VISIBILITY
|
603
|
+
basic_ostream<_CharT, _Traits>& operator<<(
|
604
|
+
basic_ostream<_CharT, _Traits>& __os,
|
605
|
+
const __quoted_proxy<_CharT, _Traits, _Allocator> & __proxy)
|
606
|
+
{
|
607
|
+
return __quoted_output (__os, __proxy.string.cbegin (), __proxy.string.cend (), __proxy.__delim, __proxy.__escape);
|
608
|
+
}
|
609
|
+
|
610
|
+
// extractor for non-const basic_string& proxies
|
611
|
+
template <class _CharT, class _Traits, class _Allocator>
|
612
|
+
_LIBCPP_INLINE_VISIBILITY
|
613
|
+
basic_istream<_CharT, _Traits>& operator>>(
|
614
|
+
basic_istream<_CharT, _Traits>& __is,
|
615
|
+
const __quoted_proxy<_CharT, _Traits, _Allocator> & __proxy)
|
616
|
+
{
|
617
|
+
return __quoted_input ( __is, __proxy.__string, __proxy.__delim, __proxy.__escape );
|
618
|
+
}
|
619
|
+
|
620
|
+
|
621
|
+
template <class _CharT>
|
622
|
+
_LIBCPP_INLINE_VISIBILITY
|
623
|
+
__quoted_output_proxy<_CharT, const _CharT *>
|
624
|
+
quoted ( const _CharT *__s, _CharT __delim = _CharT('"'), _CharT __escape =_CharT('\\'))
|
625
|
+
{
|
626
|
+
const _CharT *__end = __s;
|
627
|
+
while ( *__end ) ++__end;
|
628
|
+
return __quoted_output_proxy<_CharT, const _CharT *> ( __s, __end, __delim, __escape );
|
629
|
+
}
|
630
|
+
|
631
|
+
template <class _CharT, class _Traits, class _Allocator>
|
632
|
+
_LIBCPP_INLINE_VISIBILITY
|
633
|
+
__quoted_output_proxy<_CharT, typename basic_string <_CharT, _Traits, _Allocator>::const_iterator>
|
634
|
+
quoted ( const basic_string <_CharT, _Traits, _Allocator> &__s, _CharT __delim = _CharT('"'), _CharT __escape=_CharT('\\'))
|
635
|
+
{
|
636
|
+
return __quoted_output_proxy<_CharT,
|
637
|
+
typename basic_string <_CharT, _Traits, _Allocator>::const_iterator>
|
638
|
+
( __s.cbegin(), __s.cend (), __delim, __escape );
|
639
|
+
}
|
640
|
+
|
641
|
+
template <class _CharT, class _Traits, class _Allocator>
|
642
|
+
__quoted_proxy<_CharT, _Traits, _Allocator>
|
643
|
+
quoted ( basic_string <_CharT, _Traits, _Allocator> &__s, _CharT __delim = _CharT('"'), _CharT __escape=_CharT('\\'))
|
644
|
+
{
|
645
|
+
return __quoted_proxy<_CharT, _Traits, _Allocator>( __s, __delim, __escape );
|
646
|
+
}
|
647
|
+
#endif
|
648
|
+
|
502
649
|
_LIBCPP_END_NAMESPACE_STD
|
503
650
|
|
504
651
|
#endif // _LIBCPP_IOMANIP
|
@@ -203,9 +203,9 @@ enum class io_errc
|
|
203
203
|
};
|
204
204
|
|
205
205
|
concept_map ErrorCodeEnum<io_errc> { };
|
206
|
-
error_code make_error_code(io_errc e);
|
207
|
-
error_condition make_error_condition(io_errc e);
|
208
|
-
storage-class-specifier const error_category& iostream_category;
|
206
|
+
error_code make_error_code(io_errc e) noexcept;
|
207
|
+
error_condition make_error_condition(io_errc e) noexcept;
|
208
|
+
storage-class-specifier const error_category& iostream_category() noexcept;
|
209
209
|
|
210
210
|
} // std
|
211
211
|
|
@@ -216,6 +216,10 @@ storage-class-specifier const error_category& iostream_category;
|
|
216
216
|
#include <__locale>
|
217
217
|
#include <system_error>
|
218
218
|
|
219
|
+
#if __has_feature(cxx_atomic)
|
220
|
+
#include <atomic> // for __xindex_
|
221
|
+
#endif
|
222
|
+
|
219
223
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
220
224
|
#pragma GCC system_header
|
221
225
|
#endif
|
@@ -319,7 +323,7 @@ public:
|
|
319
323
|
_LIBCPP_INLINE_VISIBILITY bool bad() const;
|
320
324
|
|
321
325
|
_LIBCPP_INLINE_VISIBILITY iostate exceptions() const;
|
322
|
-
_LIBCPP_INLINE_VISIBILITY void exceptions(iostate
|
326
|
+
_LIBCPP_INLINE_VISIBILITY void exceptions(iostate __iostate);
|
323
327
|
|
324
328
|
void __set_badbit_and_consider_rethrow();
|
325
329
|
void __set_failbit_and_consider_rethrow();
|
@@ -363,7 +367,11 @@ private:
|
|
363
367
|
int* __index_;
|
364
368
|
size_t __event_size_;
|
365
369
|
size_t __event_cap_;
|
370
|
+
#if __has_feature(cxx_atomic) && !defined(__EMSCRIPTEN__)
|
371
|
+
static atomic<int> __xindex_;
|
372
|
+
#else
|
366
373
|
static int __xindex_;
|
374
|
+
#endif
|
367
375
|
long* __iarray_;
|
368
376
|
size_t __iarray_size_;
|
369
377
|
size_t __iarray_cap_;
|
@@ -380,26 +388,26 @@ _LIBCPP_DECLARE_STRONG_ENUM(io_errc)
|
|
380
388
|
_LIBCPP_DECLARE_STRONG_ENUM_EPILOG(io_errc)
|
381
389
|
|
382
390
|
template <>
|
383
|
-
struct
|
391
|
+
struct _LIBCPP_TYPE_VIS_ONLY is_error_code_enum<io_errc> : public true_type { };
|
384
392
|
|
385
393
|
#ifdef _LIBCPP_HAS_NO_STRONG_ENUMS
|
386
394
|
template <>
|
387
|
-
struct
|
395
|
+
struct _LIBCPP_TYPE_VIS_ONLY is_error_code_enum<io_errc::__lx> : public true_type { };
|
388
396
|
#endif
|
389
397
|
|
390
398
|
_LIBCPP_FUNC_VIS
|
391
|
-
const error_category& iostream_category();
|
399
|
+
const error_category& iostream_category() _NOEXCEPT;
|
392
400
|
|
393
401
|
inline _LIBCPP_INLINE_VISIBILITY
|
394
402
|
error_code
|
395
|
-
make_error_code(io_errc __e)
|
403
|
+
make_error_code(io_errc __e) _NOEXCEPT
|
396
404
|
{
|
397
405
|
return error_code(static_cast<int>(__e), iostream_category());
|
398
406
|
}
|
399
407
|
|
400
408
|
inline _LIBCPP_INLINE_VISIBILITY
|
401
409
|
error_condition
|
402
|
-
make_error_condition(io_errc __e)
|
410
|
+
make_error_condition(io_errc __e) _NOEXCEPT
|
403
411
|
{
|
404
412
|
return error_condition(static_cast<int>(__e), iostream_category());
|
405
413
|
}
|
@@ -527,21 +535,21 @@ inline _LIBCPP_INLINE_VISIBILITY
|
|
527
535
|
bool
|
528
536
|
ios_base::eof() const
|
529
537
|
{
|
530
|
-
return __rdstate_ & eofbit;
|
538
|
+
return (__rdstate_ & eofbit) != 0;
|
531
539
|
}
|
532
540
|
|
533
541
|
inline _LIBCPP_INLINE_VISIBILITY
|
534
542
|
bool
|
535
543
|
ios_base::fail() const
|
536
544
|
{
|
537
|
-
return __rdstate_ & (failbit | badbit);
|
545
|
+
return (__rdstate_ & (failbit | badbit)) != 0;
|
538
546
|
}
|
539
547
|
|
540
548
|
inline _LIBCPP_INLINE_VISIBILITY
|
541
549
|
bool
|
542
550
|
ios_base::bad() const
|
543
551
|
{
|
544
|
-
return __rdstate_ & badbit;
|
552
|
+
return (__rdstate_ & badbit) != 0;
|
545
553
|
}
|
546
554
|
|
547
555
|
inline _LIBCPP_INLINE_VISIBILITY
|
@@ -553,14 +561,14 @@ ios_base::exceptions() const
|
|
553
561
|
|
554
562
|
inline _LIBCPP_INLINE_VISIBILITY
|
555
563
|
void
|
556
|
-
ios_base::exceptions(iostate
|
564
|
+
ios_base::exceptions(iostate __iostate)
|
557
565
|
{
|
558
|
-
__exceptions_ =
|
566
|
+
__exceptions_ = __iostate;
|
559
567
|
clear(__rdstate_);
|
560
568
|
}
|
561
569
|
|
562
570
|
template <class _CharT, class _Traits>
|
563
|
-
class
|
571
|
+
class _LIBCPP_TYPE_VIS_ONLY basic_ios
|
564
572
|
: public ios_base
|
565
573
|
{
|
566
574
|
public:
|
@@ -585,7 +593,7 @@ public:
|
|
585
593
|
_LIBCPP_ALWAYS_INLINE bool bad() const {return ios_base::bad();}
|
586
594
|
|
587
595
|
_LIBCPP_ALWAYS_INLINE iostate exceptions() const {return ios_base::exceptions();}
|
588
|
-
_LIBCPP_ALWAYS_INLINE void exceptions(iostate
|
596
|
+
_LIBCPP_ALWAYS_INLINE void exceptions(iostate __iostate) {ios_base::exceptions(__iostate);}
|
589
597
|
|
590
598
|
// 27.5.4.1 Constructor/destructor:
|
591
599
|
_LIBCPP_INLINE_VISIBILITY
|