thrust / dependencies /libcudacxx /libcxx /test /std /numerics /numarray /template.valarray /valarray.cons /default.pass.cpp
| //===----------------------------------------------------------------------===// | |
| // | |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| // | |
| //===----------------------------------------------------------------------===// | |
| // <valarray> | |
| // template<class T> class valarray; | |
| // valarray(); | |
| struct S { | |
| S() { ctor_called = true; } | |
| static bool ctor_called; | |
| }; | |
| bool S::ctor_called = false; | |
| int main(int, char**) | |
| { | |
| { | |
| std::valarray<int> v; | |
| assert(v.size() == 0); | |
| } | |
| { | |
| std::valarray<float> v; | |
| assert(v.size() == 0); | |
| } | |
| { | |
| std::valarray<double> v; | |
| assert(v.size() == 0); | |
| } | |
| { | |
| std::valarray<std::valarray<double> > v; | |
| assert(v.size() == 0); | |
| } | |
| { | |
| std::valarray<S> v; | |
| assert(v.size() == 0); | |
| assert(!S::ctor_called); | |
| } | |
| return 0; | |
| } | |