We recommend using Visual Studio 2017

out_of_range Class


The latest version of this topic can be found at out_of_range Class.

The class serves as the base class for all exceptions thrown to report an argument that is out of its valid range.

class out_of_range : public logic_error {  
    explicit out_of_range(const string& message);

    explicit out_of_range(const char *message);


The value returned by what is a copy of message.data.

// out_of_range.cpp  
// compile with: /EHsc  
#include <string>  
#include <iostream>  
using namespace std;  
int main() {  
// out_of_range  
   try {  
      string str( "Micro" );  
      string rstr( "soft" );  
      str.append( rstr, 5, 3 );  
      cout << str << endl;  
   catch ( exception &e ) {  
      cerr << "Caught: " << e.what( ) << endl;  

Caught: invalid string position  

Header: <stdexcept>

Namespace: std

logic_error Class
Thread Safety in the C++ Standard Library