diff --git a/include/boost/range/adaptor/adjacent_filtered.hpp b/include/boost/range/adaptor/adjacent_filtered.hpp index edc1dff..f717cb3 100644 --- a/include/boost/range/adaptor/adjacent_filtered.hpp +++ b/include/boost/range/adaptor/adjacent_filtered.hpp @@ -143,10 +143,6 @@ namespace boost skip_iter(boost::end(r), boost::end(r), p)) { } - - private: - P m_pred; - R* m_range; }; template< class T > diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index ba8a08a..4845d4e 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -156,6 +156,7 @@ test-suite range : [ range-test std_container ] [ range-test string ] [ range-test sub_range ] + [ range-test ticket_5486 ] [ range-test ticket_5544_terminate_irange ] [ range-test ticket_5556_is_sorted_namespace ] ; diff --git a/test/ticket_5486.cpp b/test/ticket_5486.cpp new file mode 100644 index 0000000..3a6bf4b --- /dev/null +++ b/test/ticket_5486.cpp @@ -0,0 +1,56 @@ +// Boost.Range library +// +// Copyright Neil Groves 2011. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// +// For more information, see http://www.boost.org/libs/range/ +// +#include +#include + +#include +#include + +#include +#include + +namespace boost +{ + namespace + { + class TestTicket5486Pred + : public std::binary_function + { + public: + explicit TestTicket5486Pred(int x) {} + bool operator()(int,int) const { return true; } + private: + TestTicket5486Pred(); + }; + + // Ticket 5486 - pertained to predicates erroneous + // requiring default construction + void test_ticket_5486() + { + std::vector v; + boost::push_back(v, v | boost::adaptors::adjacent_filtered(TestTicket5486Pred(1))); + + BOOST_CHECK_EQUAL_COLLECTIONS( v.begin(), v.end(), + v.begin(), v.end() ); + } + } +} + +boost::unit_test::test_suite* +init_unit_test_suite(int argc, char* argv[]) +{ + boost::unit_test::test_suite* test + = BOOST_TEST_SUITE( "RangeTestSuite.ticket_5486" ); + + test->add( BOOST_TEST_CASE( &boost::test_ticket_5486 ) ); + + return test; +}