что интересно: очень много всегда возни с этим макросом, много обсуждений и на rsdn и даже в boost.devel но вот я почему то никогда его не использовал, просто ни разу не был нужен
Может я один такой
Здравствуйте, korzhik, Вы писали:
K>что интересно: очень много всегда возни с этим макросом, много обсуждений и на rsdn и даже в boost.devel но вот я почему то никогда его не использовал, просто ни разу не был нужен K>Может я один такой
Я использовал и много раз... Но то приходилось очень уж индусский код поддерживать... И вообще, boost::array рулит.
А за замечания спасибо. Интересно, можно ли внести такие исправления, чтобы макрос работал даже с локальными типами?
Здравствуйте, Roman Odaisky, Вы писали:
RO>А за замечания спасибо. Интересно, можно ли внести такие исправления, чтобы макрос работал даже с локальными типами?
да, врятли. Макрос основан на шаблонах, а шаблоны локальные типы не любят
Здравствуйте, Roman Odaisky, Вы писали:
RO>Здравствуйте, korzhik, Вы писали:
K>>что интересно: очень много всегда возни с этим макросом, много обсуждений и на rsdn и даже в boost.devel но вот я почему то никогда его не использовал, просто ни разу не был нужен K>>Может я один такой
RO>Я использовал и много раз... Но то приходилось очень уж индусский код поддерживать... И вообще, boost::array рулит.
RO>А за замечания спасибо. Интересно, можно ли внести такие исправления, чтобы макрос работал даже с локальными типами?
Недавно кто-то писал, что в VC8, к примеру, локальные классы уже могут быть типовыми параметрами шаблона.
Здравствуйте, Roman Odaisky, Вы писали:
RO>Здравствуйте, korzhik, Вы писали:
K>>что интересно: очень много всегда возни с этим макросом, много обсуждений и на rsdn и даже в boost.devel но вот я почему то никогда его не использовал, просто ни разу не был нужен K>>Может я один такой
RO>Я использовал и много раз... Но то приходилось очень уж индусский код поддерживать... И вообще, boost::array рулит.
(смотреть второе решение ниже) можно полностью обойтись boost::array во всех случаях.
И тогда никаких sizeof(x) / sizeof(x[0]) не надо писать.
RO>А за замечания спасибо. Интересно, можно ли внести такие исправления, чтобы макрос работал даже с локальными типами?
> > Наверно многие уже знают, но я вот только наткнулся: VC2005 — _countof > > У кого есть VC2005 посмотрите плиз как он реализован: в виде макроса или встроен в язык?
(смотреть второе решение ниже) можно полностью обойтись boost::array во всех случаях. __>>И тогда никаких sizeof(x) / sizeof(x[0]) не надо писать.
L_L>Но как же эти макросы задолбали.
Этот макрос нужен только когда нам размер неизвестен:
int a[] = {1,2,3,4,5};
Вариант первый это указать размер: boost::array<int, 5> a = {1,2,3,4,5};, другой вариант это макрос.
К счастью обычно размер известен, поэтому фокусы с макросами нам не обязательны.
Только boost::array
K>что интересно: очень много всегда возни с этим макросом, много обсуждений и на rsdn и даже в boost.devel но вот я почему то никогда его не использовал, просто ни разу не был нужен K>Может я один такой
Тоже не понимаю, использую везде std::vector и никаких проблем.