Advertisement
konalisp

How To Butcher C++

Aug 20th, 2013
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. //compile with -std=c++11
  2. #include <iostream>
  3. #include <tuple>
  4.  
  5. #define tar(x) get<0>(x)       //tuple argument #1
  6. #define ger(x) get<1>(x)       //get error
  7. #define noerr(x) get<1>(x) == "" //no error
  8. #define say_err(x) cout << "Error: " << get<1>(x)
  9. #define nils ""                //nil string; empty string
  10. #define is ==                  //Because I can.
  11.  
  12.  
  13. using namespace std;
  14.  
  15. typedef string error; //Types normally start with an uppercase letter, but this is so vital I'm making it my own keyword.
  16.  
  17. tuple<int,error> test(int x);
  18.  
  19. int main(int argc, char **argv){
  20.     auto f = test(0); //replace with another number to see what happens!
  21.     if (noerr(f)) { printf("No errors here!"); }
  22.     else { say_err(f); }
  23.    
  24.     cout << "\n";
  25.     return 0;
  26. }
  27.  
  28. tuple<int,error> test(int x){
  29.     tuple<int,error> t; //return value
  30.     tar(t) = x;
  31.     error err;
  32.    
  33.     if (x is 0) { err = "Zero is very small!"; }
  34.     else { err = nils; }
  35.     ger(t) = err;
  36.     return t;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement