Брутально и бессердечно о программировании и проектировании
ГлавнаяФорумАртПаттерныАнтипаттерныТест-драйвВопрос-ответКнигорецензииСправочная

sizeof — тип или значение?

Как использовать sizeof? Речь идет о случае, когда вы хотите передать данные какому-то внешнему API. Варианта, собственно, два. Вот первый:
0
1
2
math::matrix mat;
std::size_t mat_size = sizeof(math::matrix);
socket->send(&mat, mat_size);
 
А вот второй:
0
1
2
math::matrix mat;
std::size_t mat_size = sizeof(mat);
socket->send(&mat, mat_size);
Я рекомендую использовать второй вариант. Во-первых, если тип передаваемого объекта изменится, вам не придется менять код. Во-вторых, первый вариант дает пользователю информацию о типе объекта. Эта информация лишняя. Все, что пользователь должен знать об объекте, должно быть видно из имени этого объекта. И в третьих, второй вариант наглядно показывает, для какого объекта будут использованы полученные данные. Это обогащает семантику кода.

Оглавление
Статистика
© 2007—2009 Inside C++ Коммерческие услугиКонтактная информация

заводы кирпича. пеноблоки. ремонт ванной комнаты