我已经定义了自己的类:
class Rectangle {
int width;
int height;
};
我想将任何此类对象转换为vector<unsigned char>
。我试过针对特定类型,然后针对任何类型:
template< typename T > std::vector< byte, sizeof(T) > to_bytes( const T& object ) {
std::vector< byte, sizeof(T) > bytes ;
const byte* begin = reinterpret_cast< const byte* >(std::addressof(object)) ;
const byte* end = begin + sizeof(T) ;
std::copy( begin, end, std::begin(bytes) ) ;
return bytes ;
}
但这仅适用于C ++中的特定type
。如何将Rectangle
类或任何用户定义的类转换为vector<unsigned char>
?
答案 0 :(得分:0)
您可以通过在Rectangle类中进行用户定义的类型转换来完成此操作:
explicit operator vector<unsigned char>() const {
// Do something here
}
希望这会有所帮助。