#include <iostream>
#include <inttypes.h>
class Test{
public :
static const uint32_t Magic = 0x1123 ;
} ;
class DataStream{
public :
template < typename T>
DataStream& operator << ( const T& value )
{
std:: cout << value << std:: endl ;
return * this ;
}
} ;
int main( )
{
DataStream s;
uint32_t a = Test:: Magic ; // ok
bool compare = ( a == Test:: Magic ) ; // ok
s << compare;
s << a;
s << Test:: Magic ; // fail
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW50dHlwZXMuaD4KCmNsYXNzIFRlc3R7CnB1YmxpYzoKIHN0YXRpYyBjb25zdCB1aW50MzJfdCBNYWdpYyA9IDB4MTEyMzsKfTsKCmNsYXNzIERhdGFTdHJlYW17CnB1YmxpYzoKICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICBEYXRhU3RyZWFtJiBvcGVyYXRvciA8PCggY29uc3QgVCYgdmFsdWUgKQogICAgewogICAgICAgIHN0ZDo6Y291dCA8PCB2YWx1ZSA8PCBzdGQ6OmVuZGw7CiAgICAgICAgcmV0dXJuICp0aGlzOwogICAgfQp9OwoKaW50IG1haW4oKQp7CiAgICBEYXRhU3RyZWFtIHM7CgogICAgdWludDMyX3QgYSA9IFRlc3Q6Ok1hZ2ljOyAgLy8gb2sKICAgIGJvb2wgY29tcGFyZSA9ICggYSA9PSBUZXN0OjpNYWdpYyApOyAvLyBvawogICAgcyA8PCBjb21wYXJlOwogICAgcyA8PCBhOwogICAgcyA8PCBUZXN0OjpNYWdpYzsgIC8vIGZhaWwKCiAgICByZXR1cm4gMDsKfQ==