Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //compile with -std=c++11
- #include <iostream>
- #include <tuple>
- #define tar(x) get<0>(x) //tuple argument #1
- #define ger(x) get<1>(x) //get error
- #define noerr(x) get<1>(x) == "" //no error
- #define say_err(x) cout << "Error: " << get<1>(x)
- #define nils "" //nil string; empty string
- #define is == //Because I can.
- using namespace std;
- typedef string error; //Types normally start with an uppercase letter, but this is so vital I'm making it my own keyword.
- tuple<int,error> test(int x);
- int main(int argc, char **argv){
- auto f = test(0); //replace with another number to see what happens!
- if (noerr(f)) { printf("No errors here!"); }
- else { say_err(f); }
- cout << "\n";
- return 0;
- }
- tuple<int,error> test(int x){
- tuple<int,error> t; //return value
- tar(t) = x;
- error err;
- if (x is 0) { err = "Zero is very small!"; }
- else { err = nils; }
- ger(t) = err;
- return t;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement