1*644f68edSzoecarver //===----------------------------------------------------------------------===// 2*644f68edSzoecarver // 3*644f68edSzoecarver // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*644f68edSzoecarver // See https://llvm.org/LICENSE.txt for license information. 5*644f68edSzoecarver // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*644f68edSzoecarver // 7*644f68edSzoecarver //===----------------------------------------------------------------------===// 8*644f68edSzoecarver 9*644f68edSzoecarver // <valarray> 10*644f68edSzoecarver 11*644f68edSzoecarver // template <class T> class slice_array 12*644f68edSzoecarver 13*644f68edSzoecarver // void operator=(const T& value) const; 14*644f68edSzoecarver 15*644f68edSzoecarver #include <valarray> 16*644f68edSzoecarver #include <cassert> 17*644f68edSzoecarver 18*644f68edSzoecarver #include "test_macros.h" 19*644f68edSzoecarver main(int,char **)20*644f68edSzoecarverint main(int, char**) 21*644f68edSzoecarver { 22*644f68edSzoecarver double a[] = { 0, 0, 0 }; 23*644f68edSzoecarver std::valarray<double> m(a, sizeof(a)/sizeof(a[0])); 24*644f68edSzoecarver std::slice_array<double> s = m[std::slice(0, 3, 1)]; 25*644f68edSzoecarver s = 42; 26*644f68edSzoecarver assert(m[0] == 42); 27*644f68edSzoecarver assert(m[1] == 42); 28*644f68edSzoecarver assert(m[2] == 42); 29*644f68edSzoecarver 30*644f68edSzoecarver ASSERT_SAME_TYPE(decltype(s = 42), void); 31*644f68edSzoecarver 32*644f68edSzoecarver return 0; 33*644f68edSzoecarver } 34