struct Hash
{
template < typename MAC>
std:: size_t operator( ) ( const MAC & mac) const
{
static_assert( sizeof ( std:: size_t ) >= 6 , "MAC address doesn't fit in std::size_t!" ) ;
std:: size_t key = 0 ;
key | = size_t ( mac[ 0 ] ) << 64 ;
key | = size_t ( mac[ 1 ] ) << 54 ;
key | = size_t ( mac[ 2 ] ) << 44 ;
key | = size_t ( mac[ 3 ] ) << 34 ;
key | = size_t ( mac[ 4 ] ) << 24 ;
key | = size_t ( mac[ 5 ] ) << 0 ;
return key;
}
} ;
c3RydWN0IEhhc2gKewogICAgdGVtcGxhdGU8dHlwZW5hbWUgTUFDPgogICAgc3RkOjpzaXplX3Qgb3BlcmF0b3IoKShjb25zdCBNQUMgJiBtYWMpIGNvbnN0CiAgICB7CiAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2Yoc3RkOjpzaXplX3QpID49IDYsICJNQUMgYWRkcmVzcyBkb2Vzbid0IGZpdCBpbiBzdGQ6OnNpemVfdCEiKTsKICAgICAgICBzdGQ6OnNpemVfdCBrZXkgPSAwOwogICAgICAgIGtleSB8PSBzaXplX3QobWFjWzBdKSA8PCA2NDsKICAgICAgICBrZXkgfD0gc2l6ZV90KG1hY1sxXSkgPDwgNTQ7CiAgICAgICAga2V5IHw9IHNpemVfdChtYWNbMl0pIDw8IDQ0OwogICAgICAgIGtleSB8PSBzaXplX3QobWFjWzNdKSA8PCAzNDsKICAgICAgICBrZXkgfD0gc2l6ZV90KG1hY1s0XSkgPDwgMjQ7CiAgICAgICAga2V5IHw9IHNpemVfdChtYWNbNV0pIDw8IDA7CiAgICAgICAgcmV0dXJuIGtleTsKICAgIH0KfTsK
compilation info
prog.cpp:6: warning: identifier ‘static_assert’ will become a keyword in C++0x
prog.cpp:4: error: expected constructor, destructor, or type conversion before ‘operator’
stdout