[ create a new paste ] login | about

Link: http://codepad.org/EJj80PYO    [ raw code | output | fork ]

sehe - C++, pasted on Jul 8:
#include <iostream>

#define DUMPSTR_WNAME(os, name, a) \
    do { (os) << (name) << " is value " << (a) << std::endl; } while(false)

#define DUMPSTR(os, a) DUMPSTR_WNAME((os), #a, (a))
#define DUMP(a)        DUMPSTR_WNAME(std::cout, #a, (a))

struct S {
    int a1;
    float a2;
    std::string a3;

    std::ostream& dump(std::ostream& os)
    {
        DUMPSTR(os, a1);
        DUMPSTR(os, a2);
        DUMPSTR(os, a3);
        return os;
    }
};

int main()
{
    S s = { 3, 3.14, "  03.1415926" };

    s.dump(std::cout);

    DUMP(s.a1);
    DUMP(s.a2);
    DUMP(s.a3);

    return 0;
}


Output:
1
2
3
4
5
6
a1 is value 3
a2 is value 3.14
a3 is value   03.1415926
s.a1 is value 3
s.a2 is value 3.14
s.a3 is value   03.1415926


Create a new paste based on this one


Comments: