#include #include using namespace std; template Target narrow_cast(Source src) { Target tgt = src; if ((Source)tgt != src) throw string("Invalid narrowing conversion"); return tgt; } int main() { try { int x=narrow_cast(123456789.0); cout<<"narrow_cast 1 OK"<(123456789.1); cout<<"narrow_cast 2 OK"<(123); cout<<"narrow_cast 3 OK"<(1234); cout<<"narrow_cast 4 OK"<