This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: exception on string (out_of_range)
- From: Jeffrey Walton <noloader at gmail dot com>
- To: eric <cneric12lin0 at gmail dot com>
- Cc: gcc-help at gcc dot gnu dot org
- Date: Thu, 7 Jul 2011 11:24:30 -0400
- Subject: Re: exception on string (out_of_range)
- References: <9c47704e-1bb5-42f6-b54a-5a55d815db4e@n5g2000yqh.googlegroups.com>
- Reply-to: noloader at gmail dot com
On Thu, Jul 7, 2011 at 11:19 AM, eric <cneric12lin0@gmail.com> wrote:
> Dear Advanced C++ programers:
>
> ?from book (c++ cookbook), chapter 4, section 3: Storing Strings in a
> Sequence
> ---------
> #include <iostream>
> #include <vector>
> #include <exception>
>
> using namespace std;
>
> int main() {
>
> ?char carr[] = {'a', 'b', 'c', 'd', 'e'};
>
> ?cout << carr[100000] << '\n'; ? ?// Whoops, who knows what's going
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // to happen
> ?vector<char> v;
> ?v.push_back('a');
> ?v.push_back('b');
> ?v.push_back('c');
> ?v.push_back('d');
> ?v.push_back('e');
>
> ?try {
> ? ? cout << v.at(10000) << '\n'; ?// at checks bounds and throws
> ?} catch(out_of_range& e) { ? ? ? // out_of_range if it's invalid
> ? ?cerr << e.what() << '\n';
> ?}
> }
> ----------------------------------------------------------------------
> my g++ response
> -----------------
> eric@eric-laptop:~/cppcookbook/download$ g++ 4-7.cpp
> 4-7.cpp: In function ‘int main()’:
> 4-7.cpp:20:11: error: expected type-specifier before ‘out_of_range’
> 4-7.cpp:20:23: error: expected ‘)’ before ‘&’ token
> 4-7.cpp:20:23: error: expected ‘{’ before ‘&’ token
> 4-7.cpp:20:25: error: ‘e’ was not declared in this scope
> 4-7.cpp:20:26: error: expected ‘;’ before ‘)’ token
> -------------------------------------------------------------------------------------
> the code can be download from
> http://examples.oreilly.com/9780596007614/
> that mean it was tested success in some platform(vc++ in xp), so
You might consider writing to O'Reilly support, posting on
comp.lang.c++, or referring to documentation such as
http://www.cplusplus.com/reference/std/stdexcept/out_of_range/.