From b6aa195e2030d30015a353f8f96cb9cab7bbcb71 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Thu, 2 Oct 1997 17:26:16 +0000 Subject: bastring.h: Move exception stuff after definition of string. * std/bastring.h: Move exception stuff after definition of string. Move typedef of string here. * string: From here. From-SVN: r15832 --- libstdc++/std/bastring.h | 63 ++++++++++++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 26 deletions(-) (limited to 'libstdc++/std/bastring.h') diff --git a/libstdc++/std/bastring.h b/libstdc++/std/bastring.h index ba763a9..629bb58 100644 --- a/libstdc++/std/bastring.h +++ b/libstdc++/std/bastring.h @@ -35,22 +35,6 @@ #include #include -#ifdef __STL_USE_EXCEPTIONS - -#include -#define OUTOFRANGE(cond) \ - do { if (!(cond)) throw out_of_range (#cond); } while (0) -#define LENGTHERROR(cond) \ - do { if (!(cond)) throw length_error (#cond); } while (0) - -#else - -#include -#define OUTOFRANGE(cond) assert (!(cond)) -#define LENGTHERROR(cond) assert (!(cond)) - -#endif - extern "C++" { class istream; class ostream; @@ -278,16 +262,8 @@ public: reference operator[] (size_type pos) { unique (); return (*rep ())[pos]; } - reference at (size_type pos) - { - OUTOFRANGE (pos >= length ()); - return (*this)[pos]; - } - const_reference at (size_type pos) const - { - OUTOFRANGE (pos >= length ()); - return data ()[pos]; - } + inline reference at (size_type pos); + inline const_reference at (size_type pos) const; private: void terminate () const @@ -383,6 +359,41 @@ private: charT *dat; }; +typedef basic_string string; +// typedef basic_string wstring; + +#ifdef __STL_USE_EXCEPTIONS + +#include +#define OUTOFRANGE(cond) \ + do { if (!(cond)) throw out_of_range (#cond); } while (0) +#define LENGTHERROR(cond) \ + do { if (!(cond)) throw length_error (#cond); } while (0) + +#else + +#include +#define OUTOFRANGE(cond) assert (!(cond)) +#define LENGTHERROR(cond) assert (!(cond)) + +#endif + +template +inline basic_string ::reference +basic_string ::at (size_type pos) +{ + OUTOFRANGE (pos >= length ()); + return (*this)[pos]; +} + +template +inline basic_string ::const_reference +basic_string ::at (size_type pos) const +{ + OUTOFRANGE (pos >= length ()); + return data ()[pos]; +} + #ifdef __STL_MEMBER_TEMPLATES template template basic_string & basic_string :: -- cgit v1.1