[cpp] Multi args better

Viewer

copydownloadembedprintName: Multi args better
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. struct add{
  5.     int sum = 0;
  6.  
  7.     add(int i) : sum(i) {}
  8.  
  9.     add& operator()(int i){
  10.         sum += i;
  11.         return (*this);
  12.     }
  13.  
  14.     int operator()(){
  15.         return sum;
  16.     };
  17.  
  18. };
  19.  
  20. template<typename VALUE>
  21. VALUE addVec(std::initializer_list<VALUE> &&list){
  22.     std::vector<VALUE> vec = list;
  23.     VALUE sum = 0;
  24.     for (auto& iter : vec)
  25.         sum += iter;
  26.     return sum;
  27. }
  28.  
  29. template<typename VALUE>
  30. struct Add {
  31.     VALUE sum;
  32.     Add(VALUE i) : sum(i) {}
  33.  
  34.     Add& operator ()(VALUE i){
  35.         sum += i;
  36.         return (*this);
  37.     }
  38.  
  39.     operator VALUE(){
  40.         return sum;
  41.     }
  42. };
  43.  
  44.  
  45. int main(){
  46.  
  47.     // ADD STRUCT
  48.     int a = add(4)(5)(6)(7)();
  49.     std::cout << "add: " << a << std::endl;
  50.  
  51.     // ADD VEC
  52.     int b = addVec({4567});
  53.     std::cout << "addVec: " << b << std::endl;
  54.  
  55.     int c = Add<int>(4)(5)(6)(7);
  56.     std::cout << "Add: " << c << std::endl;
  57.  
  58. }
  59.  

Editor

You can edit this paste and save as new:


File Description
  • Multi args better
  • Paste Code
  • 29 Oct-2020
  • 984 Bytes
You can Share it: