
//
// Przykładowy kod z rozdziału 5.6.4 "Błędy zawężania zakresu" książki
// "Programowanie. Teoria i praktyka z wykorzystaniem C++" Bjarne'a Stroustrupa.
//

#include "std_lib_facilities.h"

//------------------------------------------------------------------------------

int main()
try
{
    int x = 2.9;
    char c = 2000;

    int x1 = narrow_cast<int>(2.9);       // wyjątek
    int x2 = narrow_cast<int>(2.0);       // ok
    char c1 = narrow_cast<char>(2000);    // wyjątek
    char c2 = narrow_cast<char>(85);      // ok
}
catch (exception& e) {
    cerr << "Błąd: " << e.what() << '\n'; 
    return 1;
}
catch (...) {
    cerr << "Nieznany wyjątek!\n"; 
    return 2;
}

//------------------------------------------------------------------------------
