/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2006--2012 Jan Nieuwenhuizen <janneke@gnu.org>
+ Copyright (C) 2006--2015 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
/*
leads to dubious crashes - libstdc++ bug?
*/
-#ifndef NDEBUG
+#ifdef DEBUG
#define _GLIBCXX_DEBUG 1
#endif
#endif
+#include "config.hh" /* needed at least for HAVE_STL_DATA_METHOD */
#include <algorithm> /* find, reverse, sort */
#include <functional> /* unary_function */
#include <cassert>
#define VPOS ((vsize) -1)
#endif
-#if HAVE_STL_DATA_METHOD
#include <vector>
-#else /* !HAVE_STL_DATA_METHOD */
-#define vector __flower_vector
-#include <vector>
-#undef vector
-
-namespace std
-{
-
-/* Interface without pointer arithmetic (iterator) semantics. */
-template<typename T, typename A = std::allocator<T> >
-class vector : public __flower_vector<T, A>
-{
-public:
- typedef typename __flower_vector<T>::iterator iterator;
- typedef typename __flower_vector<T>::const_iterator const_iterator;
-
- vector<T, A> () : __flower_vector<T, A> ()
- {
- }
-
- vector<T, A> (size_t n) : __flower_vector<T, A> (n)
- {
- }
-
- vector<T, A> (vector<T, A> const &v) : __flower_vector<T, A> (v)
- {
- }
-
- vector<T, A> (const_iterator b, const_iterator e) : __flower_vector<T, A> (b, e)
- {
- }
-
- T *
- data ()
- {
- return &(*this)[0];
- }
-
- T const *
- data () const
- {
- return &(*this)[0];
- }
-};
-
-} /* namespace std */
-
-#endif /* !HAVE_STL_DATA_METHOD */
template<typename T>
T const &
}
vector<string> string_split (string str, char c);
-string string_join (vector<string> const &strs, string infix);
+string string_join (vector<string> const &strs, const string &infix);
#define iterof(i,s) typeof((s).begin()) i((s).begin())