@@ -2738,9 +2738,7 @@ __val_expr<_ValExpr>::operator valarray<__val_expr::result_type>() const
2738
2738
if (__n)
2739
2739
{
2740
2740
__r.__begin_ =
2741
- __r.__end_ =
2742
- static_cast <result_type*>(
2743
- _VSTD::__libcpp_allocate (__n * sizeof (result_type), _LIBCPP_ALIGNOF (result_type)));
2741
+ __r.__end_ = allocator<result_type>().allocate (__n);
2744
2742
for (size_t __i = 0 ; __i != __n; ++__r.__end_ , ++__i)
2745
2743
::new (__r.__end_ ) result_type (__expr_[__i]);
2746
2744
}
@@ -2757,8 +2755,7 @@ valarray<_Tp>::valarray(size_t __n)
2757
2755
{
2758
2756
if (__n)
2759
2757
{
2760
- __begin_ = __end_ = static_cast <value_type*>(
2761
- _VSTD::__libcpp_allocate (__n * sizeof (value_type), _LIBCPP_ALIGNOF (value_type)));
2758
+ __begin_ = __end_ = allocator<value_type>().allocate (__n);
2762
2759
#ifndef _LIBCPP_NO_EXCEPTIONS
2763
2760
try
2764
2761
{
@@ -2792,8 +2789,7 @@ valarray<_Tp>::valarray(const value_type* __p, size_t __n)
2792
2789
{
2793
2790
if (__n)
2794
2791
{
2795
- __begin_ = __end_ = static_cast <value_type*>(
2796
- _VSTD::__libcpp_allocate (__n * sizeof (value_type), _LIBCPP_ALIGNOF (value_type)));
2792
+ __begin_ = __end_ = allocator<value_type>().allocate (__n);
2797
2793
#ifndef _LIBCPP_NO_EXCEPTIONS
2798
2794
try
2799
2795
{
@@ -2818,8 +2814,7 @@ valarray<_Tp>::valarray(const valarray& __v)
2818
2814
{
2819
2815
if (__v.size ())
2820
2816
{
2821
- __begin_ = __end_ = static_cast <value_type*>(
2822
- _VSTD::__libcpp_allocate (__v.size () * sizeof (value_type), _LIBCPP_ALIGNOF (value_type)));
2817
+ __begin_ = __end_ = allocator<value_type>().allocate (__v.size ());
2823
2818
#ifndef _LIBCPP_NO_EXCEPTIONS
2824
2819
try
2825
2820
{
@@ -2856,8 +2851,7 @@ valarray<_Tp>::valarray(initializer_list<value_type> __il)
2856
2851
const size_t __n = __il.size ();
2857
2852
if (__n)
2858
2853
{
2859
- __begin_ = __end_ = static_cast <value_type*>(
2860
- _VSTD::__libcpp_allocate (__n * sizeof (value_type), _LIBCPP_ALIGNOF (value_type)));
2854
+ __begin_ = __end_ = allocator<value_type>().allocate (__n);
2861
2855
#ifndef _LIBCPP_NO_EXCEPTIONS
2862
2856
try
2863
2857
{
@@ -2886,8 +2880,7 @@ valarray<_Tp>::valarray(const slice_array<value_type>& __sa)
2886
2880
const size_t __n = __sa.__size_ ;
2887
2881
if (__n)
2888
2882
{
2889
- __begin_ = __end_ = static_cast <value_type*>(
2890
- _VSTD::__libcpp_allocate (__n * sizeof (value_type), _LIBCPP_ALIGNOF (value_type)));
2883
+ __begin_ = __end_ = allocator<value_type>().allocate (__n);
2891
2884
#ifndef _LIBCPP_NO_EXCEPTIONS
2892
2885
try
2893
2886
{
@@ -2914,8 +2907,7 @@ valarray<_Tp>::valarray(const gslice_array<value_type>& __ga)
2914
2907
const size_t __n = __ga.__1d_ .size ();
2915
2908
if (__n)
2916
2909
{
2917
- __begin_ = __end_ = static_cast <value_type*>(
2918
- _VSTD::__libcpp_allocate (__n * sizeof (value_type), _LIBCPP_ALIGNOF (value_type)));
2910
+ __begin_ = __end_ = allocator<value_type>().allocate (__n);
2919
2911
#ifndef _LIBCPP_NO_EXCEPTIONS
2920
2912
try
2921
2913
{
@@ -2944,8 +2936,7 @@ valarray<_Tp>::valarray(const mask_array<value_type>& __ma)
2944
2936
const size_t __n = __ma.__1d_ .size ();
2945
2937
if (__n)
2946
2938
{
2947
- __begin_ = __end_ = static_cast <value_type*>(
2948
- _VSTD::__libcpp_allocate (__n * sizeof (value_type), _LIBCPP_ALIGNOF (value_type)));
2939
+ __begin_ = __end_ = allocator<value_type>().allocate (__n);
2949
2940
#ifndef _LIBCPP_NO_EXCEPTIONS
2950
2941
try
2951
2942
{
@@ -2974,8 +2965,7 @@ valarray<_Tp>::valarray(const indirect_array<value_type>& __ia)
2974
2965
const size_t __n = __ia.__1d_ .size ();
2975
2966
if (__n)
2976
2967
{
2977
- __begin_ = __end_ = static_cast <value_type*>(
2978
- _VSTD::__libcpp_allocate (__n * sizeof (value_type), _LIBCPP_ALIGNOF (value_type)));
2968
+ __begin_ = __end_ = allocator<value_type>().allocate (__n);
2979
2969
#ifndef _LIBCPP_NO_EXCEPTIONS
2980
2970
try
2981
2971
{
@@ -3011,8 +3001,7 @@ valarray<_Tp>::__assign_range(const value_type* __f, const value_type* __l)
3011
3001
if (size () != __n)
3012
3002
{
3013
3003
__clear (size ());
3014
- __begin_ = static_cast <value_type*>(
3015
- _VSTD::__libcpp_allocate (__n * sizeof (value_type), _LIBCPP_ALIGNOF (value_type)));
3004
+ __begin_ = allocator<value_type>().allocate (__n);
3016
3005
__end_ = __begin_ + __n;
3017
3006
_VSTD::uninitialized_copy (__f, __l, __begin_);
3018
3007
} else {
@@ -3265,10 +3254,7 @@ valarray<_Tp>::operator+() const
3265
3254
size_t __n = size ();
3266
3255
if (__n)
3267
3256
{
3268
- __r.__begin_ =
3269
- __r.__end_ =
3270
- static_cast <value_type*>(
3271
- _VSTD::__libcpp_allocate (__n * sizeof (value_type), _LIBCPP_ALIGNOF (value_type)));
3257
+ __r.__begin_ = __r.__end_ = allocator<value_type>().allocate (__n);
3272
3258
for (const value_type* __p = __begin_; __n; ++__r.__end_ , ++__p, --__n)
3273
3259
::new (__r.__end_ ) value_type (+*__p);
3274
3260
}
@@ -3283,10 +3269,7 @@ valarray<_Tp>::operator-() const
3283
3269
size_t __n = size ();
3284
3270
if (__n)
3285
3271
{
3286
- __r.__begin_ =
3287
- __r.__end_ =
3288
- static_cast <value_type*>(
3289
- _VSTD::__libcpp_allocate (__n * sizeof (value_type), _LIBCPP_ALIGNOF (value_type)));
3272
+ __r.__begin_ = __r.__end_ = allocator<value_type>().allocate (__n);
3290
3273
for (const value_type* __p = __begin_; __n; ++__r.__end_ , ++__p, --__n)
3291
3274
::new (__r.__end_ ) value_type (-*__p);
3292
3275
}
@@ -3301,10 +3284,7 @@ valarray<_Tp>::operator~() const
3301
3284
size_t __n = size ();
3302
3285
if (__n)
3303
3286
{
3304
- __r.__begin_ =
3305
- __r.__end_ =
3306
- static_cast <value_type*>(
3307
- _VSTD::__libcpp_allocate (__n * sizeof (value_type), _LIBCPP_ALIGNOF (value_type)));
3287
+ __r.__begin_ = __r.__end_ = allocator<value_type>().allocate (__n);
3308
3288
for (const value_type* __p = __begin_; __n; ++__r.__end_ , ++__p, --__n)
3309
3289
::new (__r.__end_ ) value_type (~*__p);
3310
3290
}
@@ -3319,9 +3299,7 @@ valarray<_Tp>::operator!() const
3319
3299
size_t __n = size ();
3320
3300
if (__n)
3321
3301
{
3322
- __r.__begin_ =
3323
- __r.__end_ =
3324
- static_cast <bool *>(_VSTD::__libcpp_allocate (__n * sizeof (bool ), _LIBCPP_ALIGNOF (bool )));
3302
+ __r.__begin_ = __r.__end_ = allocator<bool >().allocate (__n);
3325
3303
for (const value_type* __p = __begin_; __n; ++__r.__end_ , ++__p, --__n)
3326
3304
::new (__r.__end_ ) bool (!*__p);
3327
3305
}
@@ -3639,10 +3617,7 @@ valarray<_Tp>::shift(int __i) const
3639
3617
size_t __n = size ();
3640
3618
if (__n)
3641
3619
{
3642
- __r.__begin_ =
3643
- __r.__end_ =
3644
- static_cast <value_type*>(
3645
- _VSTD::__libcpp_allocate (__n * sizeof (value_type), _LIBCPP_ALIGNOF (value_type)));
3620
+ __r.__begin_ = __r.__end_ = allocator<value_type>().allocate (__n);
3646
3621
const value_type* __sb;
3647
3622
value_type* __tb;
3648
3623
value_type* __te;
@@ -3678,10 +3653,7 @@ valarray<_Tp>::cshift(int __i) const
3678
3653
size_t __n = size ();
3679
3654
if (__n)
3680
3655
{
3681
- __r.__begin_ =
3682
- __r.__end_ =
3683
- static_cast <value_type*>(
3684
- _VSTD::__libcpp_allocate (__n * sizeof (value_type), _LIBCPP_ALIGNOF (value_type)));
3656
+ __r.__begin_ = __r.__end_ = allocator<value_type>().allocate (__n);
3685
3657
__i %= static_cast <int >(__n);
3686
3658
const value_type* __m = __i >= 0 ? __begin_ + __i : __end_ + __i;
3687
3659
for (const value_type* __s = __m; __s != __end_; ++__r.__end_ , ++__s)
@@ -3700,10 +3672,7 @@ valarray<_Tp>::apply(value_type __f(value_type)) const
3700
3672
size_t __n = size ();
3701
3673
if (__n)
3702
3674
{
3703
- __r.__begin_ =
3704
- __r.__end_ =
3705
- static_cast <value_type*>(
3706
- _VSTD::__libcpp_allocate (__n * sizeof (value_type), _LIBCPP_ALIGNOF (value_type)));
3675
+ __r.__begin_ = __r.__end_ = allocator<value_type>().allocate (__n);
3707
3676
for (const value_type* __p = __begin_; __n; ++__r.__end_ , ++__p, --__n)
3708
3677
::new (__r.__end_ ) value_type (__f (*__p));
3709
3678
}
@@ -3718,10 +3687,7 @@ valarray<_Tp>::apply(value_type __f(const value_type&)) const
3718
3687
size_t __n = size ();
3719
3688
if (__n)
3720
3689
{
3721
- __r.__begin_ =
3722
- __r.__end_ =
3723
- static_cast <value_type*>(
3724
- _VSTD::__libcpp_allocate (__n * sizeof (value_type), _LIBCPP_ALIGNOF (value_type)));
3690
+ __r.__begin_ = __r.__end_ = allocator<value_type>().allocate (__n);
3725
3691
for (const value_type* __p = __begin_; __n; ++__r.__end_ , ++__p, --__n)
3726
3692
::new (__r.__end_ ) value_type (__f (*__p));
3727
3693
}
@@ -3736,7 +3702,7 @@ void valarray<_Tp>::__clear(size_t __capacity)
3736
3702
{
3737
3703
while (__end_ != __begin_)
3738
3704
(--__end_)->~value_type ();
3739
- _VSTD::__libcpp_deallocate ( __begin_, __capacity * sizeof (value_type), _LIBCPP_ALIGNOF (value_type) );
3705
+ allocator<value_type>(). deallocate ( __begin_, __capacity);
3740
3706
__begin_ = __end_ = nullptr ;
3741
3707
}
3742
3708
}
@@ -3748,8 +3714,7 @@ valarray<_Tp>::resize(size_t __n, value_type __x)
3748
3714
__clear (size ());
3749
3715
if (__n)
3750
3716
{
3751
- __begin_ = __end_ = static_cast <value_type*>(
3752
- _VSTD::__libcpp_allocate (__n * sizeof (value_type), _LIBCPP_ALIGNOF (value_type)));
3717
+ __begin_ = __end_ = allocator<value_type>().allocate (__n);
3753
3718
#ifndef _LIBCPP_NO_EXCEPTIONS
3754
3719
try
3755
3720
{
0 commit comments