]>
Commit | Line | Data |
---|---|---|
4ada39a3 AM |
1 | --- gcc/libstdc++-v3/include/bits/valarray_array.h (revision 110087) |
2 | +++ gcc/libstdc++-v3/include/bits/valarray_array.h (working copy) | |
3 | @@ -428,8 +428,24 @@ | |
4 | _Tp* const __restrict__ _M_data; | |
5 | }; | |
6 | ||
7 | + | |
8 | + // Copy-construct plain array __b[<__n>] from indexed array __a[__i[<__n>]] | |
9 | template<typename _Tp> | |
10 | inline void | |
11 | + __valarray_copy_construct(_Array<_Tp> __a, _Array<size_t> __i, | |
12 | + _Array<_Tp> __b, size_t __n) | |
13 | + { std::__valarray_copy_construct(__a._M_data, __i._M_data, | |
14 | + __b._M_data, __n); } | |
15 | + | |
16 | + // Copy-construct plain array __b[<__n>] from strided array __a[<__n : __s>] | |
17 | + template<typename _Tp> | |
18 | + inline void | |
19 | + __valarray_copy_construct(_Array<_Tp> __a, size_t __n, size_t __s, | |
20 | + _Array<_Tp> __b) | |
21 | + { std::__valarray_copy_construct(__a._M_data, __n, __s, __b._M_data); } | |
22 | + | |
23 | + template<typename _Tp> | |
24 | + inline void | |
25 | __valarray_fill (_Array<_Tp> __a, size_t __n, const _Tp& __t) | |
26 | { std::__valarray_fill(__a._M_data, __n, __t); } | |
27 | ||
28 | --- gcc/libstdc++-v3/include/std/std_valarray.h (revision 110087) | |
29 | +++ gcc/libstdc++-v3/include/std/std_valarray.h (working copy) | |
30 | @@ -584,7 +584,7 @@ | |
31 | valarray<_Tp>::valarray(const slice_array<_Tp>& __sa) | |
32 | : _M_size(__sa._M_sz), _M_data(__valarray_get_storage<_Tp>(__sa._M_sz)) | |
33 | { | |
34 | - std::__valarray_copy | |
35 | + std::__valarray_copy_construct | |
36 | (__sa._M_array, __sa._M_sz, __sa._M_stride, _Array<_Tp>(_M_data)); | |
37 | } | |
38 | ||
39 | @@ -594,7 +594,7 @@ | |
40 | : _M_size(__ga._M_index.size()), | |
41 | _M_data(__valarray_get_storage<_Tp>(_M_size)) | |
42 | { | |
43 | - std::__valarray_copy | |
44 | + std::__valarray_copy_construct | |
45 | (__ga._M_array, _Array<size_t>(__ga._M_index), | |
46 | _Array<_Tp>(_M_data), _M_size); | |
47 | } | |
48 | @@ -604,7 +604,7 @@ | |
49 | valarray<_Tp>::valarray(const mask_array<_Tp>& __ma) | |
50 | : _M_size(__ma._M_sz), _M_data(__valarray_get_storage<_Tp>(__ma._M_sz)) | |
51 | { | |
52 | - std::__valarray_copy | |
53 | + std::__valarray_copy_construct | |
54 | (__ma._M_array, __ma._M_mask, _Array<_Tp>(_M_data), _M_size); | |
55 | } | |
56 | ||
57 | @@ -613,7 +613,7 @@ | |
58 | valarray<_Tp>::valarray(const indirect_array<_Tp>& __ia) | |
59 | : _M_size(__ia._M_sz), _M_data(__valarray_get_storage<_Tp>(__ia._M_sz)) | |
60 | { | |
61 | - std::__valarray_copy | |
62 | + std::__valarray_copy_construct | |
63 | (__ia._M_array, __ia._M_index, _Array<_Tp>(_M_data), _M_size); | |
64 | } | |
65 | ||
66 | @@ -621,7 +621,7 @@ | |
67 | inline | |
68 | valarray<_Tp>::valarray(const _Expr<_Dom, _Tp>& __e) | |
69 | : _M_size(__e.size()), _M_data(__valarray_get_storage<_Tp>(_M_size)) | |
70 | - { std::__valarray_copy(__e, _M_size, _Array<_Tp>(_M_data)); } | |
71 | + { std::__valarray_copy_construct(__e, _M_size, _Array<_Tp>(_M_data)); } | |
72 | ||
73 | template<typename _Tp> | |
74 | inline |