*
* LyX, The Document Processor
*
- * Copyright (C) 1995 Matthias Ettrich
- * Copyright (C) 1995-1999 The LyX Team.
+ * Copyright 1995 Matthias Ettrich
+ * Copyright 1995-1999 The LyX Team.
*
* ====================================================== */
/// lyxstring(5, 'n') -> "nnnnn"
lyxstring(size_type n, value_type c);
+#if 1
///
- lyxstring(iterator first, iterator last);
-
+ lyxstring(const_iterator first, const_iterator last);
+#else
+ ///
+ template<class InputIterator>
+ lyxstring::lyxstring(InputIterator begin, InputIterator end) {
+ while (begin != end) {
+ push_back((*begin));
+ ++begin;
+ }
+ }
+#endif
///
~lyxstring();
size_type size() const;
/// largest possible string
- size_type max_size() const { return npos -1; }
+ size_type max_size() const { return npos - 1; }
///
size_type length() const { return size(); }
///
lyxstring & assign(size_type n, value_type c);
+#if 1
///
- lyxstring & assign(iterator first, iterator last);
-
+ lyxstring & assign(const_iterator first, const_iterator last);
+#else
+ ///
+ template<class InputIterator>
+ lyxstring & assign(InputIterator begin, InputIterator end) {
+ clear;
+ while (begin != end) {
+ push_back((*begin));
+ ++begin;
+ }
+ }
+#endif
//@}
/**@name Element Access. Since lyxstring does not use exceptions,
///
lyxstring & append(size_type n, value_type);
+#if 1
///
lyxstring & append(iterator first, iterator last);
-
+#else
+ ///
+ template<class InputIterator>
+ lyxstring & append(InputIterator begin, InputIterator end) {
+ while (begin != end) {
+ push_back((*begin));
+ ++begin;
+ }
+ return *this;
+ }
+#endif
// insert characters before (*this)[pos]:
///
///
void insert(iterator p, size_type n , value_type c);
+#if 1
///
void insert(iterator p, iterator first, iterator last);
+#else
+ ///
+ template<class InputIterator>
+ void insert(iterator p, InputIterator begin, InputIterator end) {
+ iterator it;
+ while (begin != end) {
+ it = insert(p, (*begin));
+ ++begin;
+ }
+ }
+#endif
//@}
///
lyxstring & replace(iterator i, iterator i2,
size_type n , value_type c);
-
+
///
lyxstring & replace(iterator i, iterator i2, iterator j, iterator j2);
+ ///
+ void swap(lyxstring & str);
+
/// Erase n chars from position i.
lyxstring & erase(size_type i = 0, size_type n = npos);
empty_reps.
*/
-#ifdef DEVEL_VERSION
+#ifdef ENABLE_ASSERTIONS
/// lyxstringInvariant is used to test the lyxstring Invariant
friend class lyxstringInvariant;
#endif
lyxstring operator+(lyxstring const & a, lyxstring::value_type const * b);
lyxstring operator+(lyxstring const & a, lyxstring::value_type b);
+void swap(lyxstring & s1, lyxstring & s2);
+
istream & operator>>(istream &, lyxstring &);
ostream & operator<<(ostream &, lyxstring const &);
istream & getline(istream &, lyxstring &, lyxstring::value_type delim = '\n');