Скажем, у меня есть следующие:Самый эффективный способ наследования структур на C++?
#pragma pack(push,1)
struct HDR {
unsigned short msgType;
unsigned short msgLen;
};
struct Msg1 {
unsigned short msgType;
unsigned short msgLen;
char text[20];
};
struct Msg2 {
unsigned short msgType;
unsigned short msgLen;
uint32_t c1;
uint32_t c2;
};
.
.
.
Я хочу, чтобы иметь возможность повторно использовать HDR-структуру, так что я не должен держать определения двух членов: MsgType и msgLen. Я не хочу привлекать vtables по соображениям производительности, но я хочу переопределить оператор < < для каждой из структур. Исходя из этого последнего требования, я не вижу, как я мог бы использовать объединение, так как размеры тоже разные.
Любые идеи о том, как это лучше всего могут быть обработаны для чистой производительности
Не используется 'operator <<()' используется в основном для работы с * текстом * потоков, а не двоичных потоков? – Karmastan
Просто перегрузите оператора. –
@ Karmastan: Я почти никогда не представляю. Это, однако, полезно для написания в них. –