#include #include #include #include #include #include using namespace std; template T prompt(std::istream& is) { T result; is >> result; return result; } // Should compile and give no output if everything is correct. int main() { { istringstream iss{"57"}; auto val = prompt(iss); assert(val == 57); } { istringstream iss{"3.141592"}; auto val = prompt(iss); assert(val == 3.141592); } { istringstream iss{"this is a test"}; auto val = prompt(iss); assert(val == "this is a test"); } { vector result{1, 2, 3, 4, 5}; istringstream iss{"1 2 3 4 5"}; auto val = prompt>(iss); assert(val == result); } { list result{"this", "is", "a", "test"}; istringstream iss{"this is a test"}; auto val = prompt>(iss); assert(val == result); } }