#include <iostream>
using namespace std;
namespace std_msgs {
template <class T>
struct ColorRGBA_ {
typedef ColorRGBA_<T> Type;
ColorRGBA_(): r(0.0), g(0.0), b(0.0), a(0.0) { }
//ColorRGBA_(const ContainerAllocator& _alloc) : r(0.0), g(0.0) , b(0.0), a(0.0) { }
typedef float _r_type;
_r_type r;
typedef float _g_type;
_g_type g;
typedef float _b_type;
_b_type b;
typedef float _a_type;
_a_type a;
/*typedef boost::shared_ptr< ::std_msgs::ColorRGBA_<ContainerAllocator> > Ptr;
typedef boost::shared_ptr< ::std_msgs::ColorRGBA_<ContainerAllocator> const> ConstPtr;
boost::shared_ptr<std::map<std::string, std::string> > __connection_header;*/
};
typedef ColorRGBA_<float> ColorRGBA;
}
class A {
public:
static std_msgs::ColorRGBA white; // struct with 4 float members;
};
// std_msgs::ColorRGBA A::white = {1,1,1,1}; // Just works for aggregates
std_msgs::ColorRGBA initializeMe() {
std_msgs::ColorRGBA obj;
obj.r = 22.0f;
// ..
return obj;
}
std_msgs::ColorRGBA A::white = initializeMe();
int main()
{
cout << A::white.r;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbmFtZXNwYWNlIHN0ZF9tc2dzIHsKCiAgdGVtcGxhdGUgPGNsYXNzIFQ+CiAgc3RydWN0IENvbG9yUkdCQV8gewogICAgdHlwZWRlZiBDb2xvclJHQkFfPFQ+IFR5cGU7CgogICAgQ29sb3JSR0JBXygpOiByKDAuMCksIGcoMC4wKSwgYigwLjApLCBhKDAuMCkgIHsgfQogICAgLy9Db2xvclJHQkFfKGNvbnN0IENvbnRhaW5lckFsbG9jYXRvciYgX2FsbG9jKSA6IHIoMC4wKSwgZygwLjApICwgYigwLjApLCBhKDAuMCkgIHsgIH0KCiAgICB0eXBlZGVmIGZsb2F0IF9yX3R5cGU7CiAgICBfcl90eXBlIHI7CiAgICB0eXBlZGVmIGZsb2F0IF9nX3R5cGU7CiAgICBfZ190eXBlIGc7CiAgICB0eXBlZGVmIGZsb2F0IF9iX3R5cGU7CiAgICBfYl90eXBlIGI7CiAgICB0eXBlZGVmIGZsb2F0IF9hX3R5cGU7CiAgICBfYV90eXBlIGE7CgogICAgLyp0eXBlZGVmIGJvb3N0OjpzaGFyZWRfcHRyPCA6OnN0ZF9tc2dzOjpDb2xvclJHQkFfPENvbnRhaW5lckFsbG9jYXRvcj4gPiBQdHI7CiAgICB0eXBlZGVmIGJvb3N0OjpzaGFyZWRfcHRyPCA6OnN0ZF9tc2dzOjpDb2xvclJHQkFfPENvbnRhaW5lckFsbG9jYXRvcj4gY29uc3Q+IENvbnN0UHRyOwogICAgYm9vc3Q6OnNoYXJlZF9wdHI8c3RkOjptYXA8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPiA+IF9fY29ubmVjdGlvbl9oZWFkZXI7Ki8KCiAgfTsKCiAgdHlwZWRlZiBDb2xvclJHQkFfPGZsb2F0PiBDb2xvclJHQkE7Cgp9CgpjbGFzcyBBIHsKcHVibGljOgogIHN0YXRpYyBzdGRfbXNnczo6Q29sb3JSR0JBIHdoaXRlOyAvLyBzdHJ1Y3Qgd2l0aCA0IGZsb2F0IG1lbWJlcnM7Cn07CgovLyBzdGRfbXNnczo6Q29sb3JSR0JBIEE6OndoaXRlID0gezEsMSwxLDF9OyAvLyBKdXN0IHdvcmtzIGZvciBhZ2dyZWdhdGVzCgoKc3RkX21zZ3M6OkNvbG9yUkdCQSBpbml0aWFsaXplTWUoKSB7CiAgc3RkX21zZ3M6OkNvbG9yUkdCQSBvYmo7CiAgb2JqLnIgPSAyMi4wZjsKICAvLyAuLgogIHJldHVybiBvYmo7Cn0KCnN0ZF9tc2dzOjpDb2xvclJHQkEgQTo6d2hpdGUgPSBpbml0aWFsaXplTWUoKTsKCmludCBtYWluKCkKewogIGNvdXQgPDwgQTo6d2hpdGUucjsKfQ==