forked from boostorg/algorithm
Remove 'wrappers'
This commit is contained in:
@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright (c) Marshall Clow 2012.
|
|
||||||
|
|
||||||
Distributed under 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)
|
|
||||||
|
|
||||||
Alternate interfaces (aka "wrappers") for algorithms.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef BOOST_ALGORITHM_WRAPPERS_HPP
|
|
||||||
#define BOOST_ALGORITHM_WRAPPERS_HPP
|
|
||||||
|
|
||||||
namespace boost { namespace algorithm {
|
|
||||||
|
|
||||||
/// \fn find_ptr ( Container &c, Key k )
|
|
||||||
/// \return a pointer to the value matching the key in the container,
|
|
||||||
/// or NULL if the key does not exist in the container.
|
|
||||||
///
|
|
||||||
/// \note: This is a wrapper around Container::find, with a useful interface.
|
|
||||||
/// Suggested by Olaf van der Spek
|
|
||||||
///
|
|
||||||
/// \param c The container to be searched
|
|
||||||
/// \param k The key value to search with
|
|
||||||
template <class Container, class Key>
|
|
||||||
typename Container::value_type::second_type*
|
|
||||||
find_ptr ( Container &c, Key k )
|
|
||||||
{
|
|
||||||
typename Container::iterator iter = c.find ( k );
|
|
||||||
return iter == c.end() ? NULL : &iter->second;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// \fn find_ptr ( const Container &c, Key k )
|
|
||||||
/// \return a pointer to the value matching the key in the container,
|
|
||||||
/// or NULL if the key does not exist in the container.
|
|
||||||
///
|
|
||||||
/// \note: This is a wrapper around Container::find, with a useful interface.
|
|
||||||
/// Suggested by Olaf van der Spek
|
|
||||||
///
|
|
||||||
/// \param c The container to be searched
|
|
||||||
/// \param k The key value to search with
|
|
||||||
template <class Container, class Key>
|
|
||||||
const typename Container::value_type::second_type*
|
|
||||||
find_ptr ( const Container &c, Key k )
|
|
||||||
{
|
|
||||||
typename Container::const_iterator iter = c.find ( k );
|
|
||||||
return iter == c.end() ? NULL : &iter->second;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}}
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,76 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright (c) Marshall Clow 2012.
|
|
||||||
|
|
||||||
Distributed under 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
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <boost/config.hpp>
|
|
||||||
#include <boost/algorithm/wrappers.hpp>
|
|
||||||
|
|
||||||
#define BOOST_TEST_MAIN
|
|
||||||
#include <boost/test/unit_test.hpp>
|
|
||||||
|
|
||||||
#include <functional>
|
|
||||||
#include <string>
|
|
||||||
#include <map>
|
|
||||||
|
|
||||||
namespace ba = boost::algorithm;
|
|
||||||
|
|
||||||
void test_int ()
|
|
||||||
{
|
|
||||||
std::map<int, int> m;
|
|
||||||
std::multimap<int, int> mm;
|
|
||||||
|
|
||||||
int *ptr;
|
|
||||||
|
|
||||||
// try with an empty map
|
|
||||||
BOOST_CHECK ( ba::find_ptr ( m , 3 ) == NULL );
|
|
||||||
BOOST_CHECK ( ba::find_ptr ( mm, 3 ) == NULL );
|
|
||||||
|
|
||||||
m.insert ( std::make_pair <int, int> ( 5, 5 ));
|
|
||||||
mm.insert ( std::make_pair <int, int> ( 9, 9 ));
|
|
||||||
BOOST_CHECK ( ba::find_ptr ( m , 3 ) == NULL );
|
|
||||||
BOOST_CHECK ( ba::find_ptr ( mm, 3 ) == NULL );
|
|
||||||
|
|
||||||
ptr = ba::find_ptr ( m, 5 );
|
|
||||||
BOOST_CHECK ( ptr != NULL && *ptr == 5 );
|
|
||||||
BOOST_CHECK ( ba::find_ptr ( m , 9 ) == NULL );
|
|
||||||
|
|
||||||
ptr = ba::find_ptr ( mm, 9 );
|
|
||||||
BOOST_CHECK ( ptr != NULL && *ptr == 9 );
|
|
||||||
BOOST_CHECK ( ba::find_ptr ( mm, 5 ) == NULL );
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void test_str ()
|
|
||||||
{
|
|
||||||
std::map<int, std::string> m;
|
|
||||||
std::multimap<int, std::string> mm;
|
|
||||||
std::string *ptr;
|
|
||||||
|
|
||||||
// try with an empty map
|
|
||||||
BOOST_CHECK ( ba::find_ptr ( m , 31 ) == NULL );
|
|
||||||
BOOST_CHECK ( ba::find_ptr ( mm, 31 ) == NULL );
|
|
||||||
|
|
||||||
m.insert ( std::make_pair <int, std::string> ( 55, "fifty-five" ));
|
|
||||||
mm.insert ( std::make_pair <int, std::string> ( 66, "sixty-six" ));
|
|
||||||
BOOST_CHECK ( ba::find_ptr ( m , 3 ) == NULL );
|
|
||||||
BOOST_CHECK ( ba::find_ptr ( mm, 3 ) == NULL );
|
|
||||||
|
|
||||||
ptr = ba::find_ptr ( m, 55 );
|
|
||||||
BOOST_CHECK ( ptr != NULL && *ptr == "fifty-five" );
|
|
||||||
BOOST_CHECK ( ba::find_ptr ( m , 66 ) == NULL );
|
|
||||||
|
|
||||||
ptr = ba::find_ptr ( mm, 66 );
|
|
||||||
BOOST_CHECK ( ptr != NULL && *ptr == "sixty-six" );
|
|
||||||
BOOST_CHECK ( ba::find_ptr ( mm, 55 ) == NULL );
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE( test_main )
|
|
||||||
{
|
|
||||||
test_int ();
|
|
||||||
test_str ();
|
|
||||||
}
|
|
Reference in New Issue
Block a user