#include #include using namespace std; vector range(int start, int stop, int step = 1) { vector v; if ( step < 0 ) for (int i = start; i > stop; i += step) v.emplace_back(i); if ( step > 0 ) for (int i = start; i < stop; i += step) v.emplace_back(i); return v; } vector range(int stop) { return range(0, stop); } int main(int argc, char* argv[]) { if ( ! (2 <= argc && argc <= 4) ) { cout << "Usage: " << argv[0] << " [START=0] STOP [STEP=1]" << endl; return 1; } try { cout << "[ "; switch (argc) { case 2: // One parameter for ( int i : range( stoi(argv[1])) ) cout << i << " "; break; case 3: // Two parameters for ( int i : range( stoi(argv[1]), stoi(argv[2])) ) cout << i << " "; break; case 4: // Three parameters for ( int i : range( stoi(argv[1]), stoi(argv[2]), stoi(argv[3])) ) cout << i << " "; break; } cout << "]" << endl; } catch(exception& e) { cout << "ERROR: Arguments must be integer." << endl; return 1; } return 0; }