#include #include #include #include "JLang/JSinglePointer.hh" #include "Jeep/JParser.hh" #include "Jeep/JMessage.hh" namespace { struct __A__ { __A__() { std::cout << "__A__()" << std::endl; } ~__A__() { std::cout << "~__A__()" << std::endl; } }; } /** * \file * * Example program to test JLANG::JSinglePointer class. * \author mdejong */ int main(int argc, char **argv) { using namespace std; int debug; try { JParser<> zap("Example program to test single pointer."); zap['d'] = make_field(debug) = 3; zap(argc, argv); } catch(const exception &error) { FATAL(error.what() << endl); } using namespace JPP; const int N = 4; typedef JSinglePointer<__A__> JSinglePointer_t; JSinglePointer_t a; DEBUG("JSinglePointer::create()" << endl); a.create(); vector buffer; for (int i = 0; i != N; ++i) { DEBUG("buffer.push_back() " << i << endl); buffer.push_back(a); } for (int i = 0; i != N; ++i) { DEBUG("buffer[" << i << "] is valid? " << buffer[i].is_valid() << endl); } for (int i = 0; i != N; ++i) { ASSERT(i == 0 ? buffer[i].is_valid() : !buffer[i].is_valid()); } return 0; }