Compare commits

..

15 Commits

Author SHA1 Message Date
8da08404de This commit was manufactured by cvs2svn to create tag
'Version_1_30_0'.

[SVN r18026]
2003-03-20 02:53:48 +00:00
721390991a This commit was manufactured by cvs2svn to create branch 'RC_1_30_0'.
[SVN r17693]
2003-03-01 19:43:06 +00:00
3daa34744f Added copyright
[SVN r17183]
2003-02-04 07:21:29 +00:00
0f3969f9e0 Add /libs/lib-name to comment
[SVN r16685]
2002-12-23 02:43:12 +00:00
c501468b53 Fixed reverse iterator workaround test, should now work with Intel C++ as well as VC7.
[SVN r16195]
2002-11-11 12:40:56 +00:00
faf0005e86 Added BOOST_DINKUMWARE_STDLIB macro
[SVN r16172]
2002-11-09 11:54:05 +00:00
785e98fcac No sense in failing just because a compiler doesn't implement correct for loop scoping!
[SVN r15327]
2002-09-15 04:04:10 +00:00
13d4e8bc40 Stripped tabs, added VC7+STLport fixes
[SVN r15193]
2002-09-07 10:45:04 +00:00
9ea2182afa One more attempt to get Intel config right.
[SVN r15166]
2002-09-05 10:18:10 +00:00
bf3b240686 Second try at fixing Intel errors, without messing up Intel+STLport config.
[SVN r15141]
2002-09-03 11:34:12 +00:00
6b9c6c9de3 Added (hopeful) Intel C++ fixes for broken std::reverse_iterator.
[SVN r15124]
2002-09-01 10:43:04 +00:00
fe013c42b7 Added a fix for non Microsoft compilers using Microsoft libraries.
[SVN r15068]
2002-08-23 14:32:39 +00:00
b87433497e array5.cpp:
- Add (redundant) braces around initializer to silence GCC


[SVN r12528]
2002-01-27 18:22:19 +00:00
09c271cf34 array3.cpp:
- Qualify std::swap for compilers that don't have Koenig lookup

array5.cpp:
  - Don't use std::boolalpha, because it isn't portable


[SVN r12463]
2002-01-23 18:07:11 +00:00
f5699ae164 Fixed reverse iterator declarations so that they work with VC7b2.
[SVN r12173]
2001-12-29 12:33:32 +00:00
6 changed files with 59 additions and 8 deletions

View File

@ -1,9 +1,16 @@
/* simple example for using class array<>
*
* (C) Copyright Nicolai M. Josuttis 2001.
* Permission to copy, use, modify, sell and distribute this software
* is granted provided this copyright notice appears in all copies.
* This software is provided "as is" without express or implied
* warranty, and with no claim as to its suitability for any purpose.
*
* Changelog:
* 20 Jan 2001 - Removed boolalpha use since stock GCC doesn't support it
* (David Abrahams)
*/
#include <iostream>
#include <boost/array.hpp>

View File

@ -1,5 +1,11 @@
/* example for using class array<>
* (C) Copyright Nicolai M. Josuttis 2001.
* Permission to copy, use, modify, sell and distribute this software
* is granted provided this copyright notice appears in all copies.
* This software is provided "as is" without express or implied
* warranty, and with no claim as to its suitability for any purpose.
*/
#include <algorithm>
#include <functional>
#include <boost/array.hpp>

View File

@ -1,5 +1,11 @@
/* example for using class array<>
* (C) Copyright Nicolai M. Josuttis 2001.
* Permission to copy, use, modify, sell and distribute this software
* is granted provided this copyright notice appears in all copies.
* This software is provided "as is" without express or implied
* warranty, and with no claim as to its suitability for any purpose.
*/
#include <string>
#include <iostream>
#include <boost/array.hpp>
@ -17,7 +23,7 @@ int main()
// copy and change order
boost::array<std::string,4> seasons_orig = seasons;
for (unsigned i=seasons.size()-1; i>0; --i) {
swap(seasons.at(i),seasons.at((i+1)%seasons.size()));
std::swap(seasons.at(i),seasons.at((i+1)%seasons.size()));
}
std::cout << "one way: ";
@ -25,7 +31,7 @@ int main()
// try swap()
std::cout << "other way: ";
swap(seasons,seasons_orig);
std::swap(seasons,seasons_orig);
print_elements(seasons);
// try reverse iterators

View File

@ -1,5 +1,11 @@
/* example for using class array<>
* (C) Copyright Nicolai M. Josuttis 2001.
* Permission to copy, use, modify, sell and distribute this software
* is granted provided this copyright notice appears in all copies.
* This software is provided "as is" without express or implied
* warranty, and with no claim as to its suitability for any purpose.
*/
#include <algorithm>
#include <functional>
#include <string>

View File

@ -1,5 +1,11 @@
/* simple example for using class array<>
* (C) Copyright Nicolai M. Josuttis 2001.
* Permission to copy, use, modify, sell and distribute this software
* is granted provided this copyright notice appears in all copies.
* This software is provided "as is" without express or implied
* warranty, and with no claim as to its suitability for any purpose.
*/
#include <iostream>
#include <boost/array.hpp>
@ -10,8 +16,8 @@ void test_static_size (const T& cont)
for (unsigned i=0; i<T::static_size; ++i) {
tmp[i] = int(cont[i]);
}
for (unsigned i=0; i<T::static_size; ++i) {
std::cout << tmp[i] << ' ';
for (unsigned j=0; j<T::static_size; ++j) {
std::cout << tmp[j] << ' ';
}
std::cout << std::endl;
}
@ -27,7 +33,8 @@ int main()
// use some common STL container operations
std::cout << "static_size: " << a.size() << std::endl;
std::cout << "size: " << a.size() << std::endl;
std::cout << "empty: " << std::boolalpha << a.empty() << std::endl;
// Can't use std::boolalpha because it isn't portable
std::cout << "empty: " << (a.empty()? "true" : "false") << std::endl;
std::cout << "max_size: " << a.max_size() << std::endl;
std::cout << "front: " << a.front() << std::endl;
std::cout << "back: " << a.back() << std::endl;
@ -56,7 +63,7 @@ int main()
typedef boost::array<double,6> DArray;
typedef boost::array<int,6> IArray;
IArray ia = { 1, 2, 3, 4, 5, 6 };
IArray ia = { { 1, 2, 3, 4, 5, 6 } } ; // extra braces silence GCC warning
DArray da;
da = ia;
da.assign(42);

View File

@ -11,16 +11,22 @@
* This software is provided "as is" without express or implied
* warranty, and with no claim as to its suitability for any purpose.
*
* 23 Aug 2002 - fix for Non-MSVC compilers combined with MSVC libraries.
* 05 Aug 2001 - minor update (Nico Josuttis)
* 20 Jan 2001 - STLport fix (Beman Dawes)
* 29 Sep 2000 - Initial Revision (Nico Josuttis)
*/
// See http://www.boost.org/libs/array for Documentation.
#ifndef BOOST_ARRAY_HPP
#define BOOST_ARRAY_HPP
#include <cstddef>
#include <stdexcept>
#include <iterator>
// Handles broken standard libraries better than <iterator>
#include <boost/detail/iterator.hpp>
#include <algorithm>
// FIXES for broken compilers
@ -50,9 +56,15 @@ namespace boost {
const_iterator end() const { return elems+N; }
// reverse iterator support
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR)
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
typedef std::reverse_iterator<iterator> reverse_iterator;
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB == 310)
// workaround for broken reverse_iterator in VC7
typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, iterator,
reference, iterator, reference> > reverse_iterator;
typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, const_iterator,
const_reference, iterator, reference> > const_reverse_iterator;
#else
// workaround for broken reverse_iterator implementations
typedef std::reverse_iterator<iterator,T> reverse_iterator;
@ -154,3 +166,10 @@ namespace boost {
} /* namespace boost */
#endif /*BOOST_ARRAY_HPP*/