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
@@ -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
|