63int main(
int argc,
char **argv)
72 JParser<> zap(
"Example program to test converions of array of objects to array of data members.");
78 catch(
const exception &error) {
79 FATAL(error.what() << endl);
85 int numberOfElements = 5;
87 for (
int i = 0; i != numberOfElements; ++i) {
88 buffer.push_back(__A__(i + 1));
91 if (
debug >= debug_t) {
92 print(cout, numberOfElements, buffer.data());
93 print(cout, numberOfElements, make_array(buffer.begin(), buffer.end(), &__A__::get).data());
94 print(cout, numberOfElements, make_array(buffer.begin(), buffer.end(), &__A__::i) .data());
95 cout <<
"max " << getMaximum(make_array(buffer.begin(), buffer.end(), &__A__::i), numeric_limits<int>::min()) << endl;
96 cout <<
"min " << getMinimum(make_array(buffer.begin(), buffer.end(), &__A__::i), numeric_limits<int>::max()) << endl;
100 const int* p = make_array(buffer.begin(), buffer.end(), &__A__::get).data();
102 for (
int i = 0; i != numberOfElements; ++i, ++p) {
103 ASSERT(buffer[i].get() == *p);
108 const int* p = make_array(buffer.begin(), buffer.end(), &__A__::i).data();
110 for (
int i = 0; i != numberOfElements; ++i, ++p) {
111 ASSERT(buffer[i].i == *p);
115 ASSERT(getMaximum(make_array(buffer.begin(), buffer.end(), &__A__::i), numeric_limits<int>::min()) == numberOfElements);
116 ASSERT(getMinimum(make_array(buffer.begin(), buffer.end(), &__A__::i), numeric_limits<int>::max()) == 1);
119 ASSERT(getCount(make_array(buffer.begin(), buffer.end(), &__A__::i), equal_to<int>()) == (
size_t) numberOfElements);
121 buffer.push_back(__A__(1));
123 ASSERT(buffer.size() == (
size_t) (numberOfElements + 1));
124 ASSERT(getCount(make_array(buffer.begin(), buffer.end(), &__A__::i), equal_to<int>()) == (
size_t) (numberOfElements));