Jpp 19.3.0-rc.2
the software that should make you happy
Loading...
Searching...
No Matches
JSinglePointer.cc
Go to the documentation of this file.
1
2#include <iostream>
3#include <iomanip>
4#include <vector>
5
7
8#include "Jeep/JParser.hh"
9#include "Jeep/JMessage.hh"
10
11
12namespace {
13
14 struct __A__
15 {
16 __A__()
17 {
18 std::cout << "__A__()" << std::endl;
19 }
20
21 ~__A__()
22 {
23 std::cout << "~__A__()" << std::endl;
24 }
25 };
26}
27
28
29/**
30 * \file
31 *
32 * Example program to test JLANG::JSinglePointer class.
33 * \author mdejong
34 */
35int main(int argc, char **argv)
36{
37 using namespace std;
38
39 int debug;
40
41 try {
42
43 JParser<> zap("Example program to test single pointer.");
44
45 zap['d'] = make_field(debug) = 3;
46
47 zap(argc, argv);
48 }
49 catch(const exception &error) {
50 FATAL(error.what() << endl);
51 }
52
53
54 using namespace JPP;
55
56 const int N = 4;
57
58 typedef JSinglePointer<__A__> JSinglePointer_t;
59
60 JSinglePointer_t a;
61
62 DEBUG("JSinglePointer::create()" << endl);
63
64 a.create();
65
67
68 for (int i = 0; i != N; ++i) {
69
70 DEBUG("buffer.push_back() " << i << endl);
71
72 buffer.push_back(a);
73 }
74
75 for (int i = 0; i != N; ++i) {
76 DEBUG("buffer[" << i << "] is valid? " << buffer[i].is_valid() << endl);
77 }
78
79 for (int i = 0; i != N; ++i) {
80 ASSERT(i == 0 ? buffer[i].is_valid() : !buffer[i].is_valid());
81 }
82
83 return 0;
84}
General purpose messaging.
#define DEBUG(A)
Message macros.
Definition JMessage.hh:62
#define ASSERT(A,...)
Assert macro.
Definition JMessage.hh:90
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2142
int main(int argc, char **argv)
The template JSinglePointer class can be used to hold a pointer to an object.
Utility class to parse command line options.
Definition JParser.hh:1698
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).