/*
- std-vector.hh -- declare vector
+ This file is part of LilyPond, the GNU music typesetter.
- source file of the GNU LilyPond music typesetter
+ Copyright (C) 2006--2011 Jan Nieuwenhuizen <janneke@gnu.org>
- (c) 2006--2008 Jan Nieuwenhuizen <janneke@gnu.org>
+ LilyPond is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ LilyPond is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef STD_VECTOR_HH
using namespace std;
-#if HAVE_BOOST_LAMBDA_LAMBDA_HPP
-#include <boost/lambda/lambda.hpp>
-#endif
-
template<typename T>
int default_compare (T const &a, T const &b)
{
#if HAVE_STL_DATA_METHOD
#include <vector>
#else /* !HAVE_STL_DATA_METHOD */
-#define vector __vector
+#define vector __flower_vector
#include <vector>
#undef vector
/* Interface without pointer arithmetic (iterator) semantics. */
template<typename T, typename A=std::allocator<T> >
- class vector : public __vector<T, A>
+ class vector : public __flower_vector<T, A>
{
public:
- typedef typename __vector<T>::iterator iterator;
- typedef typename __vector<T>::const_iterator const_iterator;
+ typedef typename __flower_vector<T>::iterator iterator;
+ typedef typename __flower_vector<T>::const_iterator const_iterator;
- vector<T, A> () : __vector<T, A> ()
+ vector<T, A> () : __flower_vector<T, A> ()
{
}
- vector<T, A> (vector<T, A> const& v) : __vector<T, A> (v)
+ vector<T, A> (vector<T, A> const& v) : __flower_vector<T, A> (v)
{
}
- vector<T, A> (const_iterator b, const_iterator e) : __vector<T, A> (b, e)
+ vector<T, A> (const_iterator b, const_iterator e) : __flower_vector<T, A> (b, e)
{
}
return find (v.begin (), v.end (), key);
}
-#if HAVE_BOOST_LAMBDA_LAMBDA_HPP
-#include <boost/lambda/lambda.hpp>
-using namespace boost::lambda;
-template<typename T>
-void
-junk_pointers (vector<T> &v)
-{
- for_each (v.begin (), v.end (), (delete _1, _1 = 0));
- v.clear ();
-}
-#else
-
template<typename T> struct del : public unary_function<T, void>
{
void operator() (T x)
for_each (v.begin (), v.end (), del<T> ());
v.clear ();
}
-#endif /* HAVE_BOOST_LAMBDA */
vector<string> string_split (string str, char c);
string string_join (vector<string> const &strs, string infix);