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
@@ -206,7 +206,11 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
|
|
206
206
|
#include <ext/__hash>
|
207
207
|
|
208
208
|
#if __DEPRECATED
|
209
|
-
#
|
209
|
+
#if defined(_MSC_VER) && ! defined(__clang__)
|
210
|
+
_LIBCPP_WARNING("Use of the header <ext/hash_map> is deprecated. Migrate to <unordered_map>")
|
211
|
+
#else
|
212
|
+
# warning Use of the header <ext/hash_map> is deprecated. Migrate to <unordered_map>
|
213
|
+
#endif
|
210
214
|
#endif
|
211
215
|
|
212
216
|
#pragma GCC system_header
|
@@ -361,7 +365,7 @@ public:
|
|
361
365
|
};
|
362
366
|
|
363
367
|
template <class _HashIterator>
|
364
|
-
class
|
368
|
+
class _LIBCPP_TYPE_VIS_ONLY __hash_map_iterator
|
365
369
|
{
|
366
370
|
_HashIterator __i_;
|
367
371
|
|
@@ -404,15 +408,15 @@ public:
|
|
404
408
|
bool operator!=(const __hash_map_iterator& __x, const __hash_map_iterator& __y)
|
405
409
|
{return __x.__i_ != __y.__i_;}
|
406
410
|
|
407
|
-
template <class, class, class, class, class> friend class
|
408
|
-
template <class, class, class, class, class> friend class
|
409
|
-
template <class> friend class
|
410
|
-
template <class> friend class
|
411
|
-
template <class> friend class
|
411
|
+
template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY hash_map;
|
412
|
+
template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY hash_multimap;
|
413
|
+
template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator;
|
414
|
+
template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator;
|
415
|
+
template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator;
|
412
416
|
};
|
413
417
|
|
414
418
|
template <class _HashIterator>
|
415
|
-
class
|
419
|
+
class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator
|
416
420
|
{
|
417
421
|
_HashIterator __i_;
|
418
422
|
|
@@ -463,15 +467,15 @@ public:
|
|
463
467
|
bool operator!=(const __hash_map_const_iterator& __x, const __hash_map_const_iterator& __y)
|
464
468
|
{return __x.__i_ != __y.__i_;}
|
465
469
|
|
466
|
-
template <class, class, class, class, class> friend class
|
467
|
-
template <class, class, class, class, class> friend class
|
468
|
-
template <class> friend class
|
469
|
-
template <class> friend class
|
470
|
+
template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY hash_map;
|
471
|
+
template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY hash_multimap;
|
472
|
+
template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator;
|
473
|
+
template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator;
|
470
474
|
};
|
471
475
|
|
472
476
|
template <class _Key, class _Tp, class _Hash = hash<_Key>, class _Pred = equal_to<_Key>,
|
473
477
|
class _Alloc = allocator<pair<const _Key, _Tp> > >
|
474
|
-
class
|
478
|
+
class _LIBCPP_TYPE_VIS_ONLY hash_map
|
475
479
|
{
|
476
480
|
public:
|
477
481
|
// types
|
@@ -684,7 +688,7 @@ hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::__construct_node(const key_type& __k)
|
|
684
688
|
__h.get_deleter().__first_constructed = true;
|
685
689
|
__node_traits::construct(__na, _VSTD::addressof(__h->__value_.second));
|
686
690
|
__h.get_deleter().__second_constructed = true;
|
687
|
-
return _VSTD::move(__h);
|
691
|
+
return _VSTD::move(__h); // explicitly moved for C++03
|
688
692
|
}
|
689
693
|
|
690
694
|
template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
|
@@ -750,7 +754,7 @@ operator!=(const hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,
|
|
750
754
|
|
751
755
|
template <class _Key, class _Tp, class _Hash = hash<_Key>, class _Pred = equal_to<_Key>,
|
752
756
|
class _Alloc = allocator<pair<const _Key, _Tp> > >
|
753
|
-
class
|
757
|
+
class _LIBCPP_TYPE_VIS_ONLY hash_multimap
|
754
758
|
{
|
755
759
|
public:
|
756
760
|
// types
|
@@ -199,7 +199,11 @@ template <class Value, class Hash, class Pred, class Alloc>
|
|
199
199
|
#include <ext/__hash>
|
200
200
|
|
201
201
|
#if __DEPRECATED
|
202
|
-
#
|
202
|
+
#if defined(_MSC_VER) && ! defined(__clang__)
|
203
|
+
_LIBCPP_WARNING("Use of the header <ext/hash_set> is deprecated. Migrate to <unordered_set>")
|
204
|
+
#else
|
205
|
+
# warning Use of the header <ext/hash_set> is deprecated. Migrate to <unordered_set>
|
206
|
+
#endif
|
203
207
|
#endif
|
204
208
|
|
205
209
|
namespace __gnu_cxx {
|
@@ -208,7 +212,7 @@ using namespace std;
|
|
208
212
|
|
209
213
|
template <class _Value, class _Hash = hash<_Value>, class _Pred = equal_to<_Value>,
|
210
214
|
class _Alloc = allocator<_Value> >
|
211
|
-
class
|
215
|
+
class _LIBCPP_TYPE_VIS_ONLY hash_set
|
212
216
|
{
|
213
217
|
public:
|
214
218
|
// types
|
@@ -429,7 +433,7 @@ operator!=(const hash_set<_Value, _Hash, _Pred, _Alloc>& __x,
|
|
429
433
|
|
430
434
|
template <class _Value, class _Hash = hash<_Value>, class _Pred = equal_to<_Value>,
|
431
435
|
class _Alloc = allocator<_Value> >
|
432
|
-
class
|
436
|
+
class _LIBCPP_TYPE_VIS_ONLY hash_multiset
|
433
437
|
{
|
434
438
|
public:
|
435
439
|
// types
|
@@ -38,6 +38,7 @@ public:
|
|
38
38
|
noexcept(is_nothrow_default_constructible<allocator_type>::value);
|
39
39
|
explicit forward_list(const allocator_type& a);
|
40
40
|
explicit forward_list(size_type n);
|
41
|
+
explicit forward_list(size_type n, const allocator_type& a); // C++14
|
41
42
|
forward_list(size_type n, const value_type& v);
|
42
43
|
forward_list(size_type n, const value_type& v, const allocator_type& a);
|
43
44
|
template <class InputIterator>
|
@@ -212,11 +213,11 @@ struct __forward_list_node
|
|
212
213
|
value_type __value_;
|
213
214
|
};
|
214
215
|
|
215
|
-
template<class _Tp, class _Alloc> class
|
216
|
-
template<class _NodeConstPtr> class
|
216
|
+
template<class _Tp, class _Alloc> class _LIBCPP_TYPE_VIS_ONLY forward_list;
|
217
|
+
template<class _NodeConstPtr> class _LIBCPP_TYPE_VIS_ONLY __forward_list_const_iterator;
|
217
218
|
|
218
219
|
template <class _NodePtr>
|
219
|
-
class
|
220
|
+
class _LIBCPP_TYPE_VIS_ONLY __forward_list_iterator
|
220
221
|
{
|
221
222
|
typedef _NodePtr __node_pointer;
|
222
223
|
|
@@ -225,8 +226,8 @@ class _LIBCPP_TYPE_VIS __forward_list_iterator
|
|
225
226
|
_LIBCPP_INLINE_VISIBILITY
|
226
227
|
explicit __forward_list_iterator(__node_pointer __p) _NOEXCEPT : __ptr_(__p) {}
|
227
228
|
|
228
|
-
template<class, class> friend class
|
229
|
-
template<class> friend class
|
229
|
+
template<class, class> friend class _LIBCPP_TYPE_VIS_ONLY forward_list;
|
230
|
+
template<class> friend class _LIBCPP_TYPE_VIS_ONLY __forward_list_const_iterator;
|
230
231
|
|
231
232
|
public:
|
232
233
|
typedef forward_iterator_tag iterator_category;
|
@@ -276,7 +277,7 @@ public:
|
|
276
277
|
};
|
277
278
|
|
278
279
|
template <class _NodeConstPtr>
|
279
|
-
class
|
280
|
+
class _LIBCPP_TYPE_VIS_ONLY __forward_list_const_iterator
|
280
281
|
{
|
281
282
|
typedef _NodeConstPtr __node_const_pointer;
|
282
283
|
|
@@ -542,7 +543,7 @@ __forward_list_base<_Tp, _Alloc>::clear() _NOEXCEPT
|
|
542
543
|
}
|
543
544
|
|
544
545
|
template <class _Tp, class _Alloc = allocator<_Tp> >
|
545
|
-
class
|
546
|
+
class _LIBCPP_TYPE_VIS_ONLY forward_list
|
546
547
|
: private __forward_list_base<_Tp, _Alloc>
|
547
548
|
{
|
548
549
|
typedef __forward_list_base<_Tp, _Alloc> base;
|
@@ -571,6 +572,9 @@ public:
|
|
571
572
|
{} // = default;
|
572
573
|
explicit forward_list(const allocator_type& __a);
|
573
574
|
explicit forward_list(size_type __n);
|
575
|
+
#if _LIBCPP_STD_VER > 11
|
576
|
+
explicit forward_list(size_type __n, const allocator_type& __a);
|
577
|
+
#endif
|
574
578
|
forward_list(size_type __n, const value_type& __v);
|
575
579
|
forward_list(size_type __n, const value_type& __v, const allocator_type& __a);
|
576
580
|
template <class _InputIterator>
|
@@ -794,6 +798,28 @@ forward_list<_Tp, _Alloc>::forward_list(size_type __n)
|
|
794
798
|
}
|
795
799
|
}
|
796
800
|
|
801
|
+
#if _LIBCPP_STD_VER > 11
|
802
|
+
template <class _Tp, class _Alloc>
|
803
|
+
forward_list<_Tp, _Alloc>::forward_list(size_type __n, const allocator_type& __a)
|
804
|
+
: base ( __a )
|
805
|
+
{
|
806
|
+
if (__n > 0)
|
807
|
+
{
|
808
|
+
__node_allocator& __a = base::__alloc();
|
809
|
+
typedef __allocator_destructor<__node_allocator> _Dp;
|
810
|
+
unique_ptr<__node, _Dp> __h(nullptr, _Dp(__a, 1));
|
811
|
+
for (__node_pointer __p = base::__before_begin(); __n > 0; --__n,
|
812
|
+
__p = __p->__next_)
|
813
|
+
{
|
814
|
+
__h.reset(__node_traits::allocate(__a, 1));
|
815
|
+
__node_traits::construct(__a, _VSTD::addressof(__h->__value_));
|
816
|
+
__h->__next_ = nullptr;
|
817
|
+
__p->__next_ = __h.release();
|
818
|
+
}
|
819
|
+
}
|
820
|
+
}
|
821
|
+
#endif
|
822
|
+
|
797
823
|
template <class _Tp, class _Alloc>
|
798
824
|
forward_list<_Tp, _Alloc>::forward_list(size_type __n, const value_type& __v)
|
799
825
|
{
|
@@ -180,7 +180,7 @@ typedef basic_fstream<wchar_t> wfstream;
|
|
180
180
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
181
181
|
|
182
182
|
template <class _CharT, class _Traits>
|
183
|
-
class
|
183
|
+
class _LIBCPP_TYPE_VIS_ONLY basic_filebuf
|
184
184
|
: public basic_streambuf<_CharT, _Traits>
|
185
185
|
{
|
186
186
|
public:
|
@@ -994,7 +994,7 @@ basic_filebuf<_CharT, _Traits>::__write_mode()
|
|
994
994
|
// basic_ifstream
|
995
995
|
|
996
996
|
template <class _CharT, class _Traits>
|
997
|
-
class
|
997
|
+
class _LIBCPP_TYPE_VIS_ONLY basic_ifstream
|
998
998
|
: public basic_istream<_CharT, _Traits>
|
999
999
|
{
|
1000
1000
|
public:
|
@@ -1139,7 +1139,7 @@ basic_ifstream<_CharT, _Traits>::close()
|
|
1139
1139
|
// basic_ofstream
|
1140
1140
|
|
1141
1141
|
template <class _CharT, class _Traits>
|
1142
|
-
class
|
1142
|
+
class _LIBCPP_TYPE_VIS_ONLY basic_ofstream
|
1143
1143
|
: public basic_ostream<_CharT, _Traits>
|
1144
1144
|
{
|
1145
1145
|
public:
|
@@ -1284,7 +1284,7 @@ basic_ofstream<_CharT, _Traits>::close()
|
|
1284
1284
|
// basic_fstream
|
1285
1285
|
|
1286
1286
|
template <class _CharT, class _Traits>
|
1287
|
-
class
|
1287
|
+
class _LIBCPP_TYPE_VIS_ONLY basic_fstream
|
1288
1288
|
: public basic_iostream<_CharT, _Traits>
|
1289
1289
|
{
|
1290
1290
|
public:
|