fork(2) download
  1. #include <iostream>
  2. #include <sstream>
  3.  
  4. struct result {
  5. double val;
  6. bool err;
  7. std::string err_val;
  8. };
  9.  
  10. std::istringstream& operator>>(std::istringstream &iss, result &r) {
  11. double lhs, rhs;
  12. char op;
  13. iss >> lhs >> op >> rhs;
  14.  
  15. if (op == '+') {
  16. r.val = lhs + rhs;
  17. r.err = false;
  18. } else {
  19. r.err = true;
  20. r.err_val = "I can only handle addition!";
  21. }
  22. return iss;
  23. }
  24.  
  25. int main() {
  26. std::istringstream iss("1+2");
  27. result res;
  28. iss >> res;
  29.  
  30. std::cout << "Result is: " << res.val << std::endl;
  31.  
  32. return 0;
  33. }
Success #stdin #stdout 0s 4388KB
stdin
Standard input is empty
stdout
Result is: 3