Skip to content

Commit

Permalink
Remove inclusion of <algorithm>
Browse files Browse the repository at this point in the history
  • Loading branch information
pdimov committed Jan 26, 2025
1 parent 6a9e8c7 commit cd0532b
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 9 deletions.
25 changes: 19 additions & 6 deletions include/boost/array.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,14 @@

#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
# pragma warning(push)
# pragma warning(disable:4996) // 'std::equal': Function call with parameters that may be unsafe
# pragma warning(disable:4510) // boost::array<T,N>' : default constructor could not be generated
# pragma warning(disable:4610) // warning C4610: class 'boost::array<T,N>' can never be instantiated - user defined constructor required
# pragma warning(disable:4512) // boost::array<T,N>' : assignment operator could not be generated
# pragma warning(disable:4610) // class 'boost::array<T,N>' can never be instantiated - user defined constructor required
#endif

#include <boost/assert.hpp>
#include <boost/static_assert.hpp>
#include <boost/throw_exception.hpp>
#include <algorithm>
#include <iterator>
#include <stdexcept>
#include <utility>
Expand Down Expand Up @@ -158,15 +157,29 @@ namespace boost {

// assignment with type conversion
template <typename T2>
array<T,N>& operator= (const array<T2,N>& rhs) {
std::copy(rhs.begin(),rhs.end(), begin());
array<T,N>& operator= (const array<T2,N>& rhs)
{
for( std::size_t i = 0; i < N; ++i )
{
elems[ i ] = rhs.elems[ i ];
}

return *this;
}

// fill with one value
BOOST_CXX14_CONSTEXPR void fill (const T& value)
{
std::fill_n(begin(),size(),value);
// using elems[ 0 ] as a temporary copy
// avoids the aliasing opportunity betw.
// `value` and `elems`

elems[ 0 ] = value;

for( std::size_t i = 1; i < N; ++i )
{
elems[ i ] = elems[ 0 ];
}
}

// an obsolete synonym for fill
Expand Down
6 changes: 3 additions & 3 deletions test/array0.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
* http://www.boost.org/LICENSE_1_0.txt)
*/

#include <string>
#include <iostream>
#include <boost/array.hpp>

#include <boost/core/lightweight_test_trait.hpp>
#include <algorithm>
#include <string>
#include <iostream>

namespace {

Expand Down

0 comments on commit cd0532b

Please sign in to comment.