#include <iostream>
using namespace std;
class Foo {
private:
uint32_t m_time;
uint32_t m_big : 20;
uint32_t m_small : 10;
uint32_t m_isblue : 1;
uint32_t m_isnice : 1;
public:
Foo(uint32_t t, uint32_t big, uint16_t small, bool is_blue, bool is_nice)
: m_time(t), m_big(big), m_small(small), m_isblue(is_blue), m_isnice(is_nice)
{ }
uint32_t get_time() const { return m_time; }
uint32_t get_big() const { return m_big; }
uint16_t get_small() const { return m_small; }
uint16_t is_blue() const { return m_isblue; }
uint16_t is_nice() const { return m_isnice; }
};
int main() {
Foo a{1032, 777777, 1023, 0, 1};
cout<< a.get_time()<<", "<<a.get_big()<<", "<<a.get_small()<<", "<<a.is_blue()<<", "<<a.is_nice()<<endl;
cout <<"Size of Foo: "<< sizeof (Foo)<<", size of 2 unint_32t: "<<2*sizeof(uint32_t)<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgRm9vIHsKcHJpdmF0ZToKICAgIHVpbnQzMl90IG1fdGltZTsKICAgIHVpbnQzMl90IG1fYmlnIDogMjA7CiAgICB1aW50MzJfdCBtX3NtYWxsIDogMTA7CiAgICB1aW50MzJfdCBtX2lzYmx1ZSA6IDE7CiAgICB1aW50MzJfdCBtX2lzbmljZSA6IDE7CnB1YmxpYzoKICAgIEZvbyh1aW50MzJfdCB0LCB1aW50MzJfdCBiaWcsIHVpbnQxNl90IHNtYWxsLCBib29sIGlzX2JsdWUsIGJvb2wgaXNfbmljZSkKICAgICAgICA6IG1fdGltZSh0KSwgbV9iaWcoYmlnKSwgbV9zbWFsbChzbWFsbCksIG1faXNibHVlKGlzX2JsdWUpLCBtX2lzbmljZShpc19uaWNlKQogICAgeyB9CgogICAgdWludDMyX3QgZ2V0X3RpbWUoKSAgY29uc3QgeyByZXR1cm4gbV90aW1lOyB9CiAgICB1aW50MzJfdCBnZXRfYmlnKCkgICBjb25zdCB7IHJldHVybiBtX2JpZzsgfQogICAgdWludDE2X3QgZ2V0X3NtYWxsKCkgY29uc3QgeyByZXR1cm4gbV9zbWFsbDsgfQogICAgdWludDE2X3QgaXNfYmx1ZSgpICAgY29uc3QgeyByZXR1cm4gbV9pc2JsdWU7IH0KICAgIHVpbnQxNl90IGlzX25pY2UoKSAgIGNvbnN0IHsgcmV0dXJuIG1faXNuaWNlOyB9Cn07CgppbnQgbWFpbigpIHsKCUZvbyBhezEwMzIsIDc3Nzc3NywgMTAyMywgMCwgMX07Cgljb3V0PDwgYS5nZXRfdGltZSgpPDwiLCAiPDxhLmdldF9iaWcoKTw8IiwgIjw8YS5nZXRfc21hbGwoKTw8IiwgIjw8YS5pc19ibHVlKCk8PCIsICI8PGEuaXNfbmljZSgpPDxlbmRsOyAKCWNvdXQgPDwiU2l6ZSBvZiBGb286ICI8PCBzaXplb2YgKEZvbyk8PCIsIHNpemUgb2YgMiB1bmludF8zMnQ6ICI8PDIqc2l6ZW9mKHVpbnQzMl90KTw8ZW5kbDsKCXJldHVybiAwOwp9