Jpp  18.0.1-rc.1
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
JTuple.cc File Reference

Example program to test JTOOLS::JTuple class. More...

#include <iostream>
#include <sstream>
#include <iomanip>
#include "JTools/JTuple.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Detailed Description

Example program to test JTOOLS::JTuple class.

Author
mdejong

Definition in file JTuple.cc.

Function Documentation

int main ( int  argc,
char **  argv 
)

Definition at line 18 of file JTuple.cc.

19 {
20  using namespace std;
21  using namespace JPP;
22 
23  int debug;
24 
25  try {
26 
27  JParser<> zap("Example program to test tuple class.");
28 
29  zap['d'] = make_field(debug) = 3;
30 
31  zap(argc, argv);
32  }
33  catch(const exception &error) {
34  FATAL(error.what() << endl);
35  }
36 
37 
38  {
40 
41  JTuple<typelist> A(+1, +2, +0.9999);
42  JTuple<typelist> B(-A);
43 
44  DEBUG(A.first << endl);
45  DEBUG(A.second.first << endl);
46  DEBUG(A.second.second << endl);
47 
48  DEBUG("A = " << showpos << A << endl);
49  DEBUG("B = " << showpos << B << endl);
50  DEBUG("A + B = " << noshowpos << A+B << endl);
51 
52  ASSERT(A == A, "A == A");
53  ASSERT(A != B, "A != B");
54  }
55 
56  {
57  typedef JTYPELIST<string, int>::typelist typelist;
58 
59  JTuple<typelist> A;
60  JTuple<typelist> B;
61 
62  A.first = "aap";
63  A.second = 1234;
64 
65  B.first = "noot";
66  B.second = -A.second;
67 
68  JTuple<typelist> C = A + B;
69 
70  DEBUG("A = " << A << endl);
71  DEBUG("B = " << B << endl);
72  DEBUG("A + B = " << C << endl); // uses std::string operator::+=()
73 
74 
75  ASSERT(C == JTuple<typelist>("aapnoot", 0), "Test of A + B with std::string");
76  }
77 
78  {
79  ostringstream os;
80 
81  os << JPP::make_tuple(1, string("aap"), 0.99);
82 
83  DEBUG(os.str() << endl);
84 
85  ASSERT(os.str() == "1 aap 0.99", "Test of JPP::make_tuple");
86  }
87 
88  return 0;
89 }
Utility class to parse command line options.
Definition: JParser.hh:1514
static const double C
Physics constants.
Type list.
Definition: JTypeList.hh:22
#define ASSERT(A,...)
Assert macro.
Definition: JMessage.hh:90
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:1989
JTuple< typename JTYPELIST< Args...>::typelist > make_tuple(const Args &...args)
Helper method for tuple.
Definition: JTuple.hh:705
#define FATAL(A)
Definition: JMessage.hh:67
source $JPP_DIR setenv csh $JPP_DIR &dev null eval JShellParser o a A
int debug
debug level
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62