1 /* simple example for using class array<> 2 * 3 * (C) Copyright Nicolai M. Josuttis 2001. 4 * Distributed under the Boost Software License, Version 1.0. (See 5 * accompanying file LICENSE_1_0.txt or copy at 6 * http://www.boost.org/LICENSE_1_0.txt) 7 * 8 * Changelog: 9 * 20 Jan 2001 - Removed boolalpha use since stock GCC doesn't support it 10 * (David Abrahams) 11 */ 12 13 #include <iostream> 14 #include <boost/array.hpp> 15 main()16int main() 17 { 18 // define special type name 19 typedef boost::array<float,6> Array; 20 21 // create and initialize an array 22 Array a = { { 42 } }; 23 24 // access elements 25 for (unsigned i=1; i<a.size(); ++i) { 26 a[i] = a[i-1]+1; 27 } 28 29 // use some common STL container operations 30 std::cout << "size: " << a.size() << std::endl; 31 std::cout << "empty: " << (a.empty() ? "true" : "false") << std::endl; 32 std::cout << "max_size: " << a.max_size() << std::endl; 33 std::cout << "front: " << a.front() << std::endl; 34 std::cout << "back: " << a.back() << std::endl; 35 std::cout << "elems: "; 36 37 // iterate through all elements 38 for (Array::const_iterator pos=a.begin(); pos<a.end(); ++pos) { 39 std::cout << *pos << ' '; 40 } 41 std::cout << std::endl; 42 43 // check copy constructor and assignment operator 44 Array b(a); 45 Array c; 46 c = a; 47 if (a==b && a==c) { 48 std::cout << "copy construction and copy assignment are OK" 49 << std::endl; 50 } 51 else { 52 std::cout << "copy construction and copy assignment FAILED" 53 << std::endl; 54 } 55 56 return 0; // makes Visual-C++ compiler happy 57 } 58 59