20 __A__(
const int __i) :
24 int get()
const {
return i; }
26 friend inline std::ostream&
operator<<(std::ostream& out,
const __A__&
object)
28 return out <<
object.i;
43 inline void print(std::ostream& out,
int N, T* p)
47 for (
int i = 0; i != N; ++i) {
48 out <<
' ' << setw(2) << p[i];
62 int main(
int argc,
char **argv)
70 JParser<> zap(
"Example program to test converions of array of objects to array of data members.");
76 catch(
const exception &error) {
77 FATAL(error.what() << endl);
85 int numberOfElements = 5;
87 for (
int i = 0; i != numberOfElements; ++i) {
88 buffer.push_back(__A__(i));
92 print(cout, numberOfElements, buffer.data());
94 print(cout, numberOfElements,
make_array(buffer.begin(), buffer.end(), &__A__::i) .data());
100 for (
int i = 0; i != numberOfElements; ++i, ++p) {
106 const int* p =
make_array(buffer.begin(), buffer.end(), &__A__::i).data();
108 for (
int i = 0; i != numberOfElements; ++i, ++p) {
109 ASSERT(buffer[i].i == *p);