@@ -423,11 +423,36 @@ public:
423
423
#endif
424
424
: __end_cap_(nullptr , __a) {
425
425
}
426
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI explicit vector (size_type __n);
426
+
427
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI explicit vector (size_type __n) {
428
+ auto __guard = std::__make_exception_guard (__destroy_vector (*this ));
429
+ if (__n > 0 ) {
430
+ __vallocate (__n);
431
+ __construct_at_end (__n);
432
+ }
433
+ __guard.__complete ();
434
+ }
435
+
427
436
#if _LIBCPP_STD_VER >= 14
428
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI explicit vector (size_type __n, const allocator_type& __a);
437
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI explicit vector (size_type __n, const allocator_type& __a)
438
+ : __end_cap_(nullptr , __a) {
439
+ auto __guard = std::__make_exception_guard (__destroy_vector (*this ));
440
+ if (__n > 0 ) {
441
+ __vallocate (__n);
442
+ __construct_at_end (__n);
443
+ }
444
+ __guard.__complete ();
445
+ }
429
446
#endif
430
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI vector (size_type __n, const value_type& __x);
447
+
448
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI vector (size_type __n, const value_type& __x) {
449
+ auto __guard = std::__make_exception_guard (__destroy_vector (*this ));
450
+ if (__n > 0 ) {
451
+ __vallocate (__n);
452
+ __construct_at_end (__n, __x);
453
+ }
454
+ __guard.__complete ();
455
+ }
431
456
432
457
template <__enable_if_t <__is_allocator<_Allocator>::value, int > = 0 >
433
458
_LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI
@@ -1132,39 +1157,6 @@ _LIBCPP_CONSTEXPR_SINCE_CXX20 void vector<_Tp, _Allocator>::__append(size_type _
1132
1157
}
1133
1158
}
1134
1159
1135
- template <class _Tp , class _Allocator >
1136
- _LIBCPP_CONSTEXPR_SINCE_CXX20 vector<_Tp, _Allocator>::vector(size_type __n) {
1137
- auto __guard = std::__make_exception_guard (__destroy_vector (*this ));
1138
- if (__n > 0 ) {
1139
- __vallocate (__n);
1140
- __construct_at_end (__n);
1141
- }
1142
- __guard.__complete ();
1143
- }
1144
-
1145
- #if _LIBCPP_STD_VER >= 14
1146
- template <class _Tp , class _Allocator >
1147
- _LIBCPP_CONSTEXPR_SINCE_CXX20 vector<_Tp, _Allocator>::vector(size_type __n, const allocator_type& __a)
1148
- : __end_cap_(nullptr , __a) {
1149
- auto __guard = std::__make_exception_guard (__destroy_vector (*this ));
1150
- if (__n > 0 ) {
1151
- __vallocate (__n);
1152
- __construct_at_end (__n);
1153
- }
1154
- __guard.__complete ();
1155
- }
1156
- #endif
1157
-
1158
- template <class _Tp , class _Allocator >
1159
- _LIBCPP_CONSTEXPR_SINCE_CXX20 vector<_Tp, _Allocator>::vector(size_type __n, const value_type& __x) {
1160
- auto __guard = std::__make_exception_guard (__destroy_vector (*this ));
1161
- if (__n > 0 ) {
1162
- __vallocate (__n);
1163
- __construct_at_end (__n, __x);
1164
- }
1165
- __guard.__complete ();
1166
- }
1167
-
1168
1160
template <class _Tp , class _Allocator >
1169
1161
template <class _InputIterator ,
1170
1162
__enable_if_t <__has_exactly_input_iterator_category<_InputIterator>::value &&
0 commit comments