Home | History | Annotate | Download | only in valarray.cons
      1 //===----------------------------------------------------------------------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is dual licensed under the MIT and the University of Illinois Open
      6 // Source Licenses. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 // <valarray>
     11 
     12 // template<class T> class valarray;
     13 
     14 // explicit valarray(size_t);
     15 
     16 #include <valarray>
     17 #include <cassert>
     18 
     19 struct S {
     20     S() : x(1) {}
     21     ~S() { ++cnt_dtor; }
     22     int x;
     23     static size_t cnt_dtor;
     24 };
     25 
     26 size_t S::cnt_dtor = 0;
     27 
     28 int main()
     29 {
     30     {
     31         std::valarray<int> v(100);
     32         assert(v.size() == 100);
     33         for (int i = 0; i < 100; ++i)
     34             assert(v[i] == 0);
     35     }
     36     {
     37         std::valarray<double> v(100);
     38         assert(v.size() == 100);
     39         for (int i = 0; i < 100; ++i)
     40             assert(v[i] == 0);
     41     }
     42     {
     43         std::valarray<std::valarray<double> > v(100);
     44         assert(v.size() == 100);
     45         for (int i = 0; i < 100; ++i)
     46             assert(v[i].size() == 0);
     47     }
     48     {
     49         std::valarray<S> v(100);
     50         assert(v.size() == 100);
     51         for (int i = 0; i < 100; ++i)
     52             assert(v[i].x == 1);
     53     }
     54     assert(S::cnt_dtor == 100);
     55 }
     56