Frame::operator==(), Frame::operator!=(), and Frame::Frame(...) ctor which is supposed to be a copy-ctor take Frame& instead of Frame const&. This breaks const-correctness and does not allow to pass Frame const& to functions which should naturally accept it.