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
@@ -38,6 +38,7 @@ public:
|
|
38
38
|
noexcept(is_nothrow_default_constructible<allocator_type>::value);
|
39
39
|
explicit vector(const allocator_type&);
|
40
40
|
explicit vector(size_type n);
|
41
|
+
explicit vector(size_type n, const allocator_type&); // C++14
|
41
42
|
vector(size_type n, const value_type& value, const allocator_type& = allocator_type());
|
42
43
|
template <class InputIterator>
|
43
44
|
vector(InputIterator first, InputIterator last, const allocator_type& = allocator_type());
|
@@ -161,7 +162,8 @@ public:
|
|
161
162
|
vector()
|
162
163
|
noexcept(is_nothrow_default_constructible<allocator_type>::value);
|
163
164
|
explicit vector(const allocator_type&);
|
164
|
-
explicit vector(size_type n, const
|
165
|
+
explicit vector(size_type n, const allocator_type& a = allocator_type()); // C++14
|
166
|
+
vector(size_type n, const value_type& value, const allocator_type& = allocator_type());
|
165
167
|
template <class InputIterator>
|
166
168
|
vector(InputIterator first, InputIterator last, const allocator_type& = allocator_type());
|
167
169
|
vector(const vector& x);
|
@@ -216,8 +218,10 @@ public:
|
|
216
218
|
const_reference back() const;
|
217
219
|
|
218
220
|
void push_back(const value_type& x);
|
221
|
+
template <class... Args> void emplace_back(Args&&... args); // C++14
|
219
222
|
void pop_back();
|
220
223
|
|
224
|
+
template <class... Args> iterator emplace(const_iterator position, Args&&... args); // C++14
|
221
225
|
iterator insert(const_iterator position, const value_type& x);
|
222
226
|
iterator insert(const_iterator position, size_type n, const value_type& x);
|
223
227
|
template <class InputIterator>
|
@@ -272,7 +276,7 @@ void swap(vector<T,Allocator>& x, vector<T,Allocator>& y)
|
|
272
276
|
|
273
277
|
#include <__undef_min_max>
|
274
278
|
|
275
|
-
#ifdef
|
279
|
+
#ifdef _LIBCPP_DEBUG
|
276
280
|
# include <__debug>
|
277
281
|
#else
|
278
282
|
# define _LIBCPP_ASSERT(x, m) ((void)0)
|
@@ -319,7 +323,7 @@ __vector_base_common<__b>::__throw_out_of_range() const
|
|
319
323
|
#pragma warning( push )
|
320
324
|
#pragma warning( disable: 4231 )
|
321
325
|
#endif // _LIBCPP_MSVC
|
322
|
-
_LIBCPP_EXTERN_TEMPLATE(class __vector_base_common<true>)
|
326
|
+
_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_TYPE_VIS __vector_base_common<true>)
|
323
327
|
#ifdef _LIBCPP_MSVC
|
324
328
|
#pragma warning( pop )
|
325
329
|
#endif // _LIBCPP_MSVC
|
@@ -436,7 +440,7 @@ private:
|
|
436
440
|
};
|
437
441
|
|
438
442
|
template <class _Tp, class _Allocator>
|
439
|
-
_LIBCPP_INLINE_VISIBILITY
|
443
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
440
444
|
void
|
441
445
|
__vector_base<_Tp, _Allocator>::__destruct_at_end(pointer __new_last) _NOEXCEPT
|
442
446
|
{
|
@@ -445,7 +449,7 @@ __vector_base<_Tp, _Allocator>::__destruct_at_end(pointer __new_last) _NOEXCEPT
|
|
445
449
|
}
|
446
450
|
|
447
451
|
template <class _Tp, class _Allocator>
|
448
|
-
_LIBCPP_INLINE_VISIBILITY
|
452
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
449
453
|
__vector_base<_Tp, _Allocator>::__vector_base()
|
450
454
|
_NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
|
451
455
|
: __begin_(nullptr),
|
@@ -455,7 +459,7 @@ __vector_base<_Tp, _Allocator>::__vector_base()
|
|
455
459
|
}
|
456
460
|
|
457
461
|
template <class _Tp, class _Allocator>
|
458
|
-
_LIBCPP_INLINE_VISIBILITY
|
462
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
459
463
|
__vector_base<_Tp, _Allocator>::__vector_base(const allocator_type& __a)
|
460
464
|
: __begin_(nullptr),
|
461
465
|
__end_(nullptr),
|
@@ -474,7 +478,7 @@ __vector_base<_Tp, _Allocator>::~__vector_base()
|
|
474
478
|
}
|
475
479
|
|
476
480
|
template <class _Tp, class _Allocator = allocator<_Tp> >
|
477
|
-
class
|
481
|
+
class _LIBCPP_TYPE_VIS_ONLY vector
|
478
482
|
: private __vector_base<_Tp, _Allocator>
|
479
483
|
{
|
480
484
|
private:
|
@@ -514,15 +518,19 @@ public:
|
|
514
518
|
#endif
|
515
519
|
}
|
516
520
|
explicit vector(size_type __n);
|
521
|
+
#if _LIBCPP_STD_VER > 11
|
522
|
+
explicit vector(size_type __n, const allocator_type& __a);
|
523
|
+
#endif
|
517
524
|
vector(size_type __n, const_reference __x);
|
518
525
|
vector(size_type __n, const_reference __x, const allocator_type& __a);
|
519
526
|
template <class _InputIterator>
|
520
|
-
vector(_InputIterator __first,
|
527
|
+
vector(_InputIterator __first,
|
521
528
|
typename enable_if<__is_input_iterator <_InputIterator>::value &&
|
522
529
|
!__is_forward_iterator<_InputIterator>::value &&
|
523
530
|
is_constructible<
|
524
531
|
value_type,
|
525
|
-
typename iterator_traits<_InputIterator>::reference>::value
|
532
|
+
typename iterator_traits<_InputIterator>::reference>::value,
|
533
|
+
_InputIterator>::type __last);
|
526
534
|
template <class _InputIterator>
|
527
535
|
vector(_InputIterator __first, _InputIterator __last, const allocator_type& __a,
|
528
536
|
typename enable_if<__is_input_iterator <_InputIterator>::value &&
|
@@ -531,11 +539,12 @@ public:
|
|
531
539
|
value_type,
|
532
540
|
typename iterator_traits<_InputIterator>::reference>::value>::type* = 0);
|
533
541
|
template <class _ForwardIterator>
|
534
|
-
vector(_ForwardIterator __first,
|
542
|
+
vector(_ForwardIterator __first,
|
535
543
|
typename enable_if<__is_forward_iterator<_ForwardIterator>::value &&
|
536
544
|
is_constructible<
|
537
545
|
value_type,
|
538
|
-
typename iterator_traits<_ForwardIterator>::reference>::value
|
546
|
+
typename iterator_traits<_ForwardIterator>::reference>::value,
|
547
|
+
_ForwardIterator>::type __last);
|
539
548
|
template <class _ForwardIterator>
|
540
549
|
vector(_ForwardIterator __first, _ForwardIterator __last, const allocator_type& __a,
|
541
550
|
typename enable_if<__is_forward_iterator<_ForwardIterator>::value &&
|
@@ -888,7 +897,7 @@ vector<_Tp, _Allocator>::max_size() const _NOEXCEPT
|
|
888
897
|
|
889
898
|
// Precondition: __new_size > capacity()
|
890
899
|
template <class _Tp, class _Allocator>
|
891
|
-
_LIBCPP_INLINE_VISIBILITY
|
900
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
892
901
|
typename vector<_Tp, _Allocator>::size_type
|
893
902
|
vector<_Tp, _Allocator>::__recommend(size_type __new_size) const
|
894
903
|
{
|
@@ -926,7 +935,7 @@ vector<_Tp, _Allocator>::__construct_at_end(size_type __n)
|
|
926
935
|
// Postcondition: size() == old size() + __n
|
927
936
|
// Postcondition: [i] == __x for all i in [size() - __n, __n)
|
928
937
|
template <class _Tp, class _Allocator>
|
929
|
-
_LIBCPP_INLINE_VISIBILITY
|
938
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
930
939
|
void
|
931
940
|
vector<_Tp, _Allocator>::__construct_at_end(size_type __n, const_reference __x)
|
932
941
|
{
|
@@ -1020,6 +1029,22 @@ vector<_Tp, _Allocator>::vector(size_type __n)
|
|
1020
1029
|
}
|
1021
1030
|
}
|
1022
1031
|
|
1032
|
+
#if _LIBCPP_STD_VER > 11
|
1033
|
+
template <class _Tp, class _Allocator>
|
1034
|
+
vector<_Tp, _Allocator>::vector(size_type __n, const allocator_type& __a)
|
1035
|
+
: __base(__a)
|
1036
|
+
{
|
1037
|
+
#if _LIBCPP_DEBUG_LEVEL >= 2
|
1038
|
+
__get_db()->__insert_c(this);
|
1039
|
+
#endif
|
1040
|
+
if (__n > 0)
|
1041
|
+
{
|
1042
|
+
allocate(__n);
|
1043
|
+
__construct_at_end(__n);
|
1044
|
+
}
|
1045
|
+
}
|
1046
|
+
#endif
|
1047
|
+
|
1023
1048
|
template <class _Tp, class _Allocator>
|
1024
1049
|
vector<_Tp, _Allocator>::vector(size_type __n, const_reference __x)
|
1025
1050
|
{
|
@@ -1049,12 +1074,13 @@ vector<_Tp, _Allocator>::vector(size_type __n, const_reference __x, const alloca
|
|
1049
1074
|
|
1050
1075
|
template <class _Tp, class _Allocator>
|
1051
1076
|
template <class _InputIterator>
|
1052
|
-
vector<_Tp, _Allocator>::vector(_InputIterator __first,
|
1077
|
+
vector<_Tp, _Allocator>::vector(_InputIterator __first,
|
1053
1078
|
typename enable_if<__is_input_iterator <_InputIterator>::value &&
|
1054
1079
|
!__is_forward_iterator<_InputIterator>::value &&
|
1055
1080
|
is_constructible<
|
1056
1081
|
value_type,
|
1057
|
-
typename iterator_traits<_InputIterator>::reference>::value
|
1082
|
+
typename iterator_traits<_InputIterator>::reference>::value,
|
1083
|
+
_InputIterator>::type __last)
|
1058
1084
|
{
|
1059
1085
|
#if _LIBCPP_DEBUG_LEVEL >= 2
|
1060
1086
|
__get_db()->__insert_c(this);
|
@@ -1082,11 +1108,12 @@ vector<_Tp, _Allocator>::vector(_InputIterator __first, _InputIterator __last, c
|
|
1082
1108
|
|
1083
1109
|
template <class _Tp, class _Allocator>
|
1084
1110
|
template <class _ForwardIterator>
|
1085
|
-
vector<_Tp, _Allocator>::vector(_ForwardIterator __first,
|
1111
|
+
vector<_Tp, _Allocator>::vector(_ForwardIterator __first,
|
1086
1112
|
typename enable_if<__is_forward_iterator<_ForwardIterator>::value &&
|
1087
1113
|
is_constructible<
|
1088
1114
|
value_type,
|
1089
|
-
typename iterator_traits<_ForwardIterator>::reference>::value
|
1115
|
+
typename iterator_traits<_ForwardIterator>::reference>::value,
|
1116
|
+
_ForwardIterator>::type __last)
|
1090
1117
|
{
|
1091
1118
|
#if _LIBCPP_DEBUG_LEVEL >= 2
|
1092
1119
|
__get_db()->__insert_c(this);
|
@@ -1152,7 +1179,7 @@ vector<_Tp, _Allocator>::vector(const vector& __x, const allocator_type& __a)
|
|
1152
1179
|
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
1153
1180
|
|
1154
1181
|
template <class _Tp, class _Allocator>
|
1155
|
-
_LIBCPP_INLINE_VISIBILITY
|
1182
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1156
1183
|
vector<_Tp, _Allocator>::vector(vector&& __x)
|
1157
1184
|
_NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value)
|
1158
1185
|
: __base(_VSTD::move(__x.__alloc()))
|
@@ -1168,7 +1195,7 @@ vector<_Tp, _Allocator>::vector(vector&& __x)
|
|
1168
1195
|
}
|
1169
1196
|
|
1170
1197
|
template <class _Tp, class _Allocator>
|
1171
|
-
_LIBCPP_INLINE_VISIBILITY
|
1198
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1172
1199
|
vector<_Tp, _Allocator>::vector(vector&& __x, const allocator_type& __a)
|
1173
1200
|
: __base(__a)
|
1174
1201
|
{
|
@@ -1195,7 +1222,7 @@ vector<_Tp, _Allocator>::vector(vector&& __x, const allocator_type& __a)
|
|
1195
1222
|
#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
|
1196
1223
|
|
1197
1224
|
template <class _Tp, class _Allocator>
|
1198
|
-
_LIBCPP_INLINE_VISIBILITY
|
1225
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1199
1226
|
vector<_Tp, _Allocator>::vector(initializer_list<value_type> __il)
|
1200
1227
|
{
|
1201
1228
|
#if _LIBCPP_DEBUG_LEVEL >= 2
|
@@ -1209,7 +1236,7 @@ vector<_Tp, _Allocator>::vector(initializer_list<value_type> __il)
|
|
1209
1236
|
}
|
1210
1237
|
|
1211
1238
|
template <class _Tp, class _Allocator>
|
1212
|
-
_LIBCPP_INLINE_VISIBILITY
|
1239
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1213
1240
|
vector<_Tp, _Allocator>::vector(initializer_list<value_type> __il, const allocator_type& __a)
|
1214
1241
|
: __base(__a)
|
1215
1242
|
{
|
@@ -1226,7 +1253,7 @@ vector<_Tp, _Allocator>::vector(initializer_list<value_type> __il, const allocat
|
|
1226
1253
|
#endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
|
1227
1254
|
|
1228
1255
|
template <class _Tp, class _Allocator>
|
1229
|
-
_LIBCPP_INLINE_VISIBILITY
|
1256
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1230
1257
|
vector<_Tp, _Allocator>&
|
1231
1258
|
vector<_Tp, _Allocator>::operator=(vector&& __x)
|
1232
1259
|
_NOEXCEPT_(
|
@@ -1270,7 +1297,7 @@ vector<_Tp, _Allocator>::__move_assign(vector& __c, true_type)
|
|
1270
1297
|
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
1271
1298
|
|
1272
1299
|
template <class _Tp, class _Allocator>
|
1273
|
-
_LIBCPP_INLINE_VISIBILITY
|
1300
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1274
1301
|
vector<_Tp, _Allocator>&
|
1275
1302
|
vector<_Tp, _Allocator>::operator=(const vector& __x)
|
1276
1303
|
{
|
@@ -1359,7 +1386,7 @@ vector<_Tp, _Allocator>::assign(size_type __n, const_reference __u)
|
|
1359
1386
|
}
|
1360
1387
|
|
1361
1388
|
template <class _Tp, class _Allocator>
|
1362
|
-
_LIBCPP_INLINE_VISIBILITY
|
1389
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1363
1390
|
typename vector<_Tp, _Allocator>::iterator
|
1364
1391
|
vector<_Tp, _Allocator>::__make_iter(pointer __p) _NOEXCEPT
|
1365
1392
|
{
|
@@ -1371,7 +1398,7 @@ vector<_Tp, _Allocator>::__make_iter(pointer __p) _NOEXCEPT
|
|
1371
1398
|
}
|
1372
1399
|
|
1373
1400
|
template <class _Tp, class _Allocator>
|
1374
|
-
_LIBCPP_INLINE_VISIBILITY
|
1401
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1375
1402
|
typename vector<_Tp, _Allocator>::const_iterator
|
1376
1403
|
vector<_Tp, _Allocator>::__make_iter(const_pointer __p) const _NOEXCEPT
|
1377
1404
|
{
|
@@ -1383,7 +1410,7 @@ vector<_Tp, _Allocator>::__make_iter(const_pointer __p) const _NOEXCEPT
|
|
1383
1410
|
}
|
1384
1411
|
|
1385
1412
|
template <class _Tp, class _Allocator>
|
1386
|
-
_LIBCPP_INLINE_VISIBILITY
|
1413
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1387
1414
|
typename vector<_Tp, _Allocator>::iterator
|
1388
1415
|
vector<_Tp, _Allocator>::begin() _NOEXCEPT
|
1389
1416
|
{
|
@@ -1391,7 +1418,7 @@ vector<_Tp, _Allocator>::begin() _NOEXCEPT
|
|
1391
1418
|
}
|
1392
1419
|
|
1393
1420
|
template <class _Tp, class _Allocator>
|
1394
|
-
_LIBCPP_INLINE_VISIBILITY
|
1421
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1395
1422
|
typename vector<_Tp, _Allocator>::const_iterator
|
1396
1423
|
vector<_Tp, _Allocator>::begin() const _NOEXCEPT
|
1397
1424
|
{
|
@@ -1399,7 +1426,7 @@ vector<_Tp, _Allocator>::begin() const _NOEXCEPT
|
|
1399
1426
|
}
|
1400
1427
|
|
1401
1428
|
template <class _Tp, class _Allocator>
|
1402
|
-
_LIBCPP_INLINE_VISIBILITY
|
1429
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1403
1430
|
typename vector<_Tp, _Allocator>::iterator
|
1404
1431
|
vector<_Tp, _Allocator>::end() _NOEXCEPT
|
1405
1432
|
{
|
@@ -1407,7 +1434,7 @@ vector<_Tp, _Allocator>::end() _NOEXCEPT
|
|
1407
1434
|
}
|
1408
1435
|
|
1409
1436
|
template <class _Tp, class _Allocator>
|
1410
|
-
_LIBCPP_INLINE_VISIBILITY
|
1437
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1411
1438
|
typename vector<_Tp, _Allocator>::const_iterator
|
1412
1439
|
vector<_Tp, _Allocator>::end() const _NOEXCEPT
|
1413
1440
|
{
|
@@ -1415,7 +1442,7 @@ vector<_Tp, _Allocator>::end() const _NOEXCEPT
|
|
1415
1442
|
}
|
1416
1443
|
|
1417
1444
|
template <class _Tp, class _Allocator>
|
1418
|
-
_LIBCPP_INLINE_VISIBILITY
|
1445
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1419
1446
|
typename vector<_Tp, _Allocator>::reference
|
1420
1447
|
vector<_Tp, _Allocator>::operator[](size_type __n)
|
1421
1448
|
{
|
@@ -1424,7 +1451,7 @@ vector<_Tp, _Allocator>::operator[](size_type __n)
|
|
1424
1451
|
}
|
1425
1452
|
|
1426
1453
|
template <class _Tp, class _Allocator>
|
1427
|
-
_LIBCPP_INLINE_VISIBILITY
|
1454
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1428
1455
|
typename vector<_Tp, _Allocator>::const_reference
|
1429
1456
|
vector<_Tp, _Allocator>::operator[](size_type __n) const
|
1430
1457
|
{
|
@@ -1502,7 +1529,7 @@ vector<_Tp, _Allocator>::__push_back_slow_path(_Up& __x)
|
|
1502
1529
|
}
|
1503
1530
|
|
1504
1531
|
template <class _Tp, class _Allocator>
|
1505
|
-
_LIBCPP_INLINE_VISIBILITY
|
1532
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1506
1533
|
void
|
1507
1534
|
vector<_Tp, _Allocator>::push_back(const_reference __x)
|
1508
1535
|
{
|
@@ -1519,7 +1546,7 @@ vector<_Tp, _Allocator>::push_back(const_reference __x)
|
|
1519
1546
|
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
1520
1547
|
|
1521
1548
|
template <class _Tp, class _Allocator>
|
1522
|
-
_LIBCPP_INLINE_VISIBILITY
|
1549
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1523
1550
|
void
|
1524
1551
|
vector<_Tp, _Allocator>::push_back(value_type&& __x)
|
1525
1552
|
{
|
@@ -1551,7 +1578,7 @@ vector<_Tp, _Allocator>::__emplace_back_slow_path(_Args&&... __args)
|
|
1551
1578
|
|
1552
1579
|
template <class _Tp, class _Allocator>
|
1553
1580
|
template <class... _Args>
|
1554
|
-
_LIBCPP_INLINE_VISIBILITY
|
1581
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1555
1582
|
void
|
1556
1583
|
vector<_Tp, _Allocator>::emplace_back(_Args&&... __args)
|
1557
1584
|
{
|
@@ -1570,7 +1597,7 @@ vector<_Tp, _Allocator>::emplace_back(_Args&&... __args)
|
|
1570
1597
|
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
1571
1598
|
|
1572
1599
|
template <class _Tp, class _Allocator>
|
1573
|
-
_LIBCPP_INLINE_VISIBILITY
|
1600
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1574
1601
|
void
|
1575
1602
|
vector<_Tp, _Allocator>::pop_back()
|
1576
1603
|
{
|
@@ -1579,7 +1606,7 @@ vector<_Tp, _Allocator>::pop_back()
|
|
1579
1606
|
}
|
1580
1607
|
|
1581
1608
|
template <class _Tp, class _Allocator>
|
1582
|
-
_LIBCPP_INLINE_VISIBILITY
|
1609
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1583
1610
|
typename vector<_Tp, _Allocator>::iterator
|
1584
1611
|
vector<_Tp, _Allocator>::erase(const_iterator __position)
|
1585
1612
|
{
|
@@ -1989,7 +2016,7 @@ vector<_Tp, _Allocator>::__subscriptable(const const_iterator* __i, ptrdiff_t __
|
|
1989
2016
|
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
1990
2017
|
|
1991
2018
|
template <class _Tp, class _Allocator>
|
1992
|
-
_LIBCPP_INLINE_VISIBILITY
|
2019
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
1993
2020
|
void
|
1994
2021
|
vector<_Tp, _Allocator>::__invalidate_all_iterators()
|
1995
2022
|
{
|
@@ -2011,7 +2038,7 @@ struct __has_storage_type<vector<bool, _Allocator> >
|
|
2011
2038
|
};
|
2012
2039
|
|
2013
2040
|
template <class _Allocator>
|
2014
|
-
class
|
2041
|
+
class _LIBCPP_TYPE_VIS_ONLY vector<bool, _Allocator>
|
2015
2042
|
: private __vector_base_common<true>
|
2016
2043
|
{
|
2017
2044
|
public:
|
@@ -2024,21 +2051,8 @@ public:
|
|
2024
2051
|
typedef size_type __storage_type;
|
2025
2052
|
typedef __bit_iterator<vector, false> pointer;
|
2026
2053
|
typedef __bit_iterator<vector, true> const_pointer;
|
2027
|
-
#ifdef _LIBCPP_DEBUG
|
2028
|
-
typedef __debug_iter<vector, pointer> iterator;
|
2029
|
-
typedef __debug_iter<vector, const_pointer> const_iterator;
|
2030
|
-
|
2031
|
-
friend class __debug_iter<vector, pointer>;
|
2032
|
-
friend class __debug_iter<vector, const_pointer>;
|
2033
|
-
|
2034
|
-
pair<iterator*, const_iterator*> __iterator_list_;
|
2035
|
-
|
2036
|
-
_LIBCPP_INLINE_VISIBILITY iterator*& __get_iterator_list(iterator*) {return __iterator_list_.first;}
|
2037
|
-
_LIBCPP_INLINE_VISIBILITY const_iterator*& __get_iterator_list(const_iterator*) {return __iterator_list_.second;}
|
2038
|
-
#else // _LIBCPP_DEBUG
|
2039
2054
|
typedef pointer iterator;
|
2040
2055
|
typedef const_pointer const_iterator;
|
2041
|
-
#endif // _LIBCPP_DEBUG
|
2042
2056
|
typedef _VSTD::reverse_iterator<iterator> reverse_iterator;
|
2043
2057
|
typedef _VSTD::reverse_iterator<const_iterator> const_reverse_iterator;
|
2044
2058
|
|
@@ -2090,6 +2104,9 @@ public:
|
|
2090
2104
|
_LIBCPP_INLINE_VISIBILITY explicit vector(const allocator_type& __a);
|
2091
2105
|
~vector();
|
2092
2106
|
explicit vector(size_type __n);
|
2107
|
+
#if _LIBCPP_STD_VER > 11
|
2108
|
+
explicit vector(size_type __n, const allocator_type& __a);
|
2109
|
+
#endif
|
2093
2110
|
vector(size_type __n, const value_type& __v);
|
2094
2111
|
vector(size_type __n, const value_type& __v, const allocator_type& __a);
|
2095
2112
|
template <class _InputIterator>
|
@@ -2221,8 +2238,20 @@ public:
|
|
2221
2238
|
_LIBCPP_INLINE_VISIBILITY const_reference back() const {return __make_ref(__size_ - 1);}
|
2222
2239
|
|
2223
2240
|
void push_back(const value_type& __x);
|
2241
|
+
#if _LIBCPP_STD_VER > 11
|
2242
|
+
template <class... _Args>
|
2243
|
+
_LIBCPP_INLINE_VISIBILITY void emplace_back(_Args&&... __args)
|
2244
|
+
{ push_back ( value_type ( _VSTD::forward<_Args>(__args)... )); }
|
2245
|
+
#endif
|
2246
|
+
|
2224
2247
|
_LIBCPP_INLINE_VISIBILITY void pop_back() {--__size_;}
|
2225
2248
|
|
2249
|
+
#if _LIBCPP_STD_VER > 11
|
2250
|
+
template <class... _Args>
|
2251
|
+
_LIBCPP_INLINE_VISIBILITY iterator emplace(const_iterator position, _Args&&... __args)
|
2252
|
+
{ return insert ( position, value_type ( _VSTD::forward<_Args>(__args)... )); }
|
2253
|
+
#endif
|
2254
|
+
|
2226
2255
|
iterator insert(const_iterator __position, const value_type& __x);
|
2227
2256
|
iterator insert(const_iterator __position, size_type __n, const value_type& __x);
|
2228
2257
|
iterator insert(const_iterator __position, size_type __n, const_reference __x);
|
@@ -2267,7 +2296,7 @@ private:
|
|
2267
2296
|
void allocate(size_type __n);
|
2268
2297
|
void deallocate() _NOEXCEPT;
|
2269
2298
|
_LIBCPP_INLINE_VISIBILITY
|
2270
|
-
static size_type
|
2299
|
+
static size_type __align_it(size_type __new_size) _NOEXCEPT
|
2271
2300
|
{return __new_size + (__bits_per_word-1) & ~(__bits_per_word-1);};
|
2272
2301
|
_LIBCPP_INLINE_VISIBILITY size_type __recommend(size_type __new_size) const;
|
2273
2302
|
_LIBCPP_INLINE_VISIBILITY void __construct_at_end(size_type __n, bool __x);
|
@@ -2285,14 +2314,6 @@ private:
|
|
2285
2314
|
_LIBCPP_INLINE_VISIBILITY
|
2286
2315
|
const_reference __make_ref(size_type __pos) const _NOEXCEPT
|
2287
2316
|
{return const_reference(__begin_ + __pos / __bits_per_word, __storage_type(1) << __pos % __bits_per_word);}
|
2288
|
-
#ifdef _LIBCPP_DEBUG
|
2289
|
-
_LIBCPP_INLINE_VISIBILITY iterator __make_iter(size_type __pos)
|
2290
|
-
{return iterator(this, pointer(__begin_ + __pos / __bits_per_word, static_cast<unsigned>(__pos % __bits_per_word)));}
|
2291
|
-
_LIBCPP_INLINE_VISIBILITY const_iterator __make_iter(size_type __pos) const
|
2292
|
-
{return const_iterator(this, const_pointer(__begin_ + __pos / __bits_per_word, static_cast<unsigned>(__pos % __bits_per_word)));}
|
2293
|
-
_LIBCPP_INLINE_VISIBILITY iterator __const_iterator_cast(const_iterator __p)
|
2294
|
-
{return iterator(this, pointer(const_cast<__storage_pointer>(__p.base().__seg_), __p.base().__ctz_));}
|
2295
|
-
#else // _LIBCPP_DEBUG
|
2296
2317
|
_LIBCPP_INLINE_VISIBILITY
|
2297
2318
|
iterator __make_iter(size_type __pos) _NOEXCEPT
|
2298
2319
|
{return iterator(__begin_ + __pos / __bits_per_word, static_cast<unsigned>(__pos % __bits_per_word));}
|
@@ -2302,7 +2323,6 @@ private:
|
|
2302
2323
|
_LIBCPP_INLINE_VISIBILITY
|
2303
2324
|
iterator __const_iterator_cast(const_iterator __p) _NOEXCEPT
|
2304
2325
|
{return begin() + (__p - cbegin());}
|
2305
|
-
#endif // _LIBCPP_DEBUG
|
2306
2326
|
|
2307
2327
|
_LIBCPP_INLINE_VISIBILITY
|
2308
2328
|
void __copy_assign_alloc(const vector& __v)
|
@@ -2369,20 +2389,14 @@ private:
|
|
2369
2389
|
friend class __bit_iterator<vector, false>;
|
2370
2390
|
friend class __bit_iterator<vector, true>;
|
2371
2391
|
friend struct __bit_array<vector>;
|
2372
|
-
friend struct
|
2392
|
+
friend struct _LIBCPP_TYPE_VIS_ONLY hash<vector>;
|
2373
2393
|
};
|
2374
2394
|
|
2375
2395
|
template <class _Allocator>
|
2376
|
-
|
2377
|
-
_LIBCPP_INLINE_VISIBILITY inline
|
2378
|
-
#endif
|
2396
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
2379
2397
|
void
|
2380
2398
|
vector<bool, _Allocator>::__invalidate_all_iterators()
|
2381
2399
|
{
|
2382
|
-
#ifdef _LIBCPP_DEBUG
|
2383
|
-
iterator::__remove_all(this);
|
2384
|
-
const_iterator::__remove_all(this);
|
2385
|
-
#endif // _LIBCPP_DEBUG
|
2386
2400
|
}
|
2387
2401
|
|
2388
2402
|
// Allocate space for __n objects
|
@@ -2430,7 +2444,7 @@ vector<bool, _Allocator>::max_size() const _NOEXCEPT
|
|
2430
2444
|
|
2431
2445
|
// Precondition: __new_size > capacity()
|
2432
2446
|
template <class _Allocator>
|
2433
|
-
_LIBCPP_INLINE_VISIBILITY
|
2447
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
2434
2448
|
typename vector<bool, _Allocator>::size_type
|
2435
2449
|
vector<bool, _Allocator>::__recommend(size_type __new_size) const
|
2436
2450
|
{
|
@@ -2440,7 +2454,7 @@ vector<bool, _Allocator>::__recommend(size_type __new_size) const
|
|
2440
2454
|
const size_type __cap = capacity();
|
2441
2455
|
if (__cap >= __ms / 2)
|
2442
2456
|
return __ms;
|
2443
|
-
return _VSTD::max(2*__cap,
|
2457
|
+
return _VSTD::max(2*__cap, __align_it(__new_size));
|
2444
2458
|
}
|
2445
2459
|
|
2446
2460
|
// Default constructs __n objects starting at __end_
|
@@ -2448,7 +2462,7 @@ vector<bool, _Allocator>::__recommend(size_type __new_size) const
|
|
2448
2462
|
// Precondition: size() + __n <= capacity()
|
2449
2463
|
// Postcondition: size() == size() + __n
|
2450
2464
|
template <class _Allocator>
|
2451
|
-
_LIBCPP_INLINE_VISIBILITY
|
2465
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
2452
2466
|
void
|
2453
2467
|
vector<bool, _Allocator>::__construct_at_end(size_type __n, bool __x)
|
2454
2468
|
{
|
@@ -2472,7 +2486,7 @@ vector<bool, _Allocator>::__construct_at_end(_ForwardIterator __first, _ForwardI
|
|
2472
2486
|
}
|
2473
2487
|
|
2474
2488
|
template <class _Allocator>
|
2475
|
-
_LIBCPP_INLINE_VISIBILITY
|
2489
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
2476
2490
|
vector<bool, _Allocator>::vector()
|
2477
2491
|
_NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
|
2478
2492
|
: __begin_(nullptr),
|
@@ -2482,7 +2496,7 @@ vector<bool, _Allocator>::vector()
|
|
2482
2496
|
}
|
2483
2497
|
|
2484
2498
|
template <class _Allocator>
|
2485
|
-
_LIBCPP_INLINE_VISIBILITY
|
2499
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
2486
2500
|
vector<bool, _Allocator>::vector(const allocator_type& __a)
|
2487
2501
|
: __begin_(nullptr),
|
2488
2502
|
__size_(0),
|
@@ -2503,6 +2517,21 @@ vector<bool, _Allocator>::vector(size_type __n)
|
|
2503
2517
|
}
|
2504
2518
|
}
|
2505
2519
|
|
2520
|
+
#if _LIBCPP_STD_VER > 11
|
2521
|
+
template <class _Allocator>
|
2522
|
+
vector<bool, _Allocator>::vector(size_type __n, const allocator_type& __a)
|
2523
|
+
: __begin_(nullptr),
|
2524
|
+
__size_(0),
|
2525
|
+
__cap_alloc_(0, static_cast<__storage_allocator>(__a))
|
2526
|
+
{
|
2527
|
+
if (__n > 0)
|
2528
|
+
{
|
2529
|
+
allocate(__n);
|
2530
|
+
__construct_at_end(__n, false);
|
2531
|
+
}
|
2532
|
+
}
|
2533
|
+
#endif
|
2534
|
+
|
2506
2535
|
template <class _Allocator>
|
2507
2536
|
vector<bool, _Allocator>::vector(size_type __n, const value_type& __x)
|
2508
2537
|
: __begin_(nullptr),
|
@@ -2652,9 +2681,7 @@ vector<bool, _Allocator>::~vector()
|
|
2652
2681
|
{
|
2653
2682
|
if (__begin_ != nullptr)
|
2654
2683
|
__storage_traits::deallocate(__alloc(), __begin_, __cap());
|
2655
|
-
#ifdef _LIBCPP_DEBUG
|
2656
2684
|
__invalidate_all_iterators();
|
2657
|
-
#endif
|
2658
2685
|
}
|
2659
2686
|
|
2660
2687
|
template <class _Allocator>
|
@@ -2707,7 +2734,7 @@ vector<bool, _Allocator>::operator=(const vector& __v)
|
|
2707
2734
|
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
2708
2735
|
|
2709
2736
|
template <class _Allocator>
|
2710
|
-
_LIBCPP_INLINE_VISIBILITY
|
2737
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
2711
2738
|
vector<bool, _Allocator>::vector(vector&& __v)
|
2712
2739
|
_NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value)
|
2713
2740
|
: __begin_(__v.__begin_),
|
@@ -2741,7 +2768,7 @@ vector<bool, _Allocator>::vector(vector&& __v, const allocator_type& __a)
|
|
2741
2768
|
}
|
2742
2769
|
|
2743
2770
|
template <class _Allocator>
|
2744
|
-
_LIBCPP_INLINE_VISIBILITY
|
2771
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
2745
2772
|
vector<bool, _Allocator>&
|
2746
2773
|
vector<bool, _Allocator>::operator=(vector&& __v)
|
2747
2774
|
_NOEXCEPT_(
|
@@ -3028,7 +3055,7 @@ vector<bool, _Allocator>::insert(const_iterator __position, _ForwardIterator __f
|
|
3028
3055
|
}
|
3029
3056
|
|
3030
3057
|
template <class _Allocator>
|
3031
|
-
_LIBCPP_INLINE_VISIBILITY
|
3058
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
3032
3059
|
typename vector<bool, _Allocator>::iterator
|
3033
3060
|
vector<bool, _Allocator>::erase(const_iterator __position)
|
3034
3061
|
{
|
@@ -3059,10 +3086,6 @@ vector<bool, _Allocator>::swap(vector& __x)
|
|
3059
3086
|
_VSTD::swap(this->__size_, __x.__size_);
|
3060
3087
|
_VSTD::swap(this->__cap(), __x.__cap());
|
3061
3088
|
__swap_alloc(this->__alloc(), __x.__alloc());
|
3062
|
-
#ifdef _LIBCPP_DEBUG
|
3063
|
-
iterator::swap(this, &__x);
|
3064
|
-
const_iterator::swap(this, &__x);
|
3065
|
-
#endif // _LIBCPP_DEBUG
|
3066
3089
|
}
|
3067
3090
|
|
3068
3091
|
template <class _Allocator>
|
@@ -3152,7 +3175,7 @@ vector<bool, _Allocator>::__hash_code() const _NOEXCEPT
|
|
3152
3175
|
}
|
3153
3176
|
|
3154
3177
|
template <class _Allocator>
|
3155
|
-
struct
|
3178
|
+
struct _LIBCPP_TYPE_VIS_ONLY hash<vector<bool, _Allocator> >
|
3156
3179
|
: public unary_function<vector<bool, _Allocator>, size_t>
|
3157
3180
|
{
|
3158
3181
|
_LIBCPP_INLINE_VISIBILITY
|
@@ -3161,7 +3184,7 @@ struct _LIBCPP_TYPE_VIS hash<vector<bool, _Allocator> >
|
|
3161
3184
|
};
|
3162
3185
|
|
3163
3186
|
template <class _Tp, class _Allocator>
|
3164
|
-
_LIBCPP_INLINE_VISIBILITY
|
3187
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
3165
3188
|
bool
|
3166
3189
|
operator==(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y)
|
3167
3190
|
{
|
@@ -3170,7 +3193,7 @@ operator==(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __
|
|
3170
3193
|
}
|
3171
3194
|
|
3172
3195
|
template <class _Tp, class _Allocator>
|
3173
|
-
_LIBCPP_INLINE_VISIBILITY
|
3196
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
3174
3197
|
bool
|
3175
3198
|
operator!=(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y)
|
3176
3199
|
{
|
@@ -3178,7 +3201,7 @@ operator!=(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __
|
|
3178
3201
|
}
|
3179
3202
|
|
3180
3203
|
template <class _Tp, class _Allocator>
|
3181
|
-
_LIBCPP_INLINE_VISIBILITY
|
3204
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
3182
3205
|
bool
|
3183
3206
|
operator< (const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y)
|
3184
3207
|
{
|
@@ -3186,7 +3209,7 @@ operator< (const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __
|
|
3186
3209
|
}
|
3187
3210
|
|
3188
3211
|
template <class _Tp, class _Allocator>
|
3189
|
-
_LIBCPP_INLINE_VISIBILITY
|
3212
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
3190
3213
|
bool
|
3191
3214
|
operator> (const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y)
|
3192
3215
|
{
|
@@ -3194,7 +3217,7 @@ operator> (const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __
|
|
3194
3217
|
}
|
3195
3218
|
|
3196
3219
|
template <class _Tp, class _Allocator>
|
3197
|
-
_LIBCPP_INLINE_VISIBILITY
|
3220
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
3198
3221
|
bool
|
3199
3222
|
operator>=(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y)
|
3200
3223
|
{
|
@@ -3202,7 +3225,7 @@ operator>=(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __
|
|
3202
3225
|
}
|
3203
3226
|
|
3204
3227
|
template <class _Tp, class _Allocator>
|
3205
|
-
_LIBCPP_INLINE_VISIBILITY
|
3228
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
3206
3229
|
bool
|
3207
3230
|
operator<=(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y)
|
3208
3231
|
{
|
@@ -3210,7 +3233,7 @@ operator<=(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __
|
|
3210
3233
|
}
|
3211
3234
|
|
3212
3235
|
template <class _Tp, class _Allocator>
|
3213
|
-
_LIBCPP_INLINE_VISIBILITY
|
3236
|
+
inline _LIBCPP_INLINE_VISIBILITY
|
3214
3237
|
void
|
3215
3238
|
swap(vector<_Tp, _Allocator>& __x, vector<_Tp, _Allocator>& __y)
|
3216
3239
|
_NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))
|