Здравствуйте, Gaperton, Вы писали:
NB>>Тогда еще вопрос. Зачем нужны макросы.
NB>>ИМХО, они позволяют
NB>>1. избежать дублирования кода.
G>Самые обычные функции с этим прекрасно справляются.
ну вот из последнего
#define MAKE_BINARY_OP(NAME,name,T1,OP,T2,RET) \
struct NAME : lambda::Lambda<NAME> \
{ \
...
} const name = NAME (); \
\
template< typename T1,typename T2 > \
lambda::proxy< NAME, lambda::tuple<T1 const, T2 const> > operator OP ( T1 const & x, T2 const & y ) { \
return lambda::proxy< NAME, lambda::tuple<T1 const, T2 const> > ( name, lambda::make_tuple (x,y) ); \
}
MAKE_BINARY_OP (Plus,plus,T1,+,T2,T1)
MAKE_BINARY_OP (Minus,minus,T1,-,T2,T1)
как сделать с помощью функций?
NB>>2. описывать проблему в терминах этой самой проблемы.
G>Адекватный выбор идентификаторов прекрасно позволяет это сделать.
G>Попробуй привести конкретные прикладные примеры, показывающие, когда это работать не будет.
NB>>Что из перечисленного мешает сопровождению кода.
G>Примеры мои смотрел? Или я впустую пишу?
ладно, давай рассмотрим.
a = b + c + d
что предлагается взамен?
NB>>гибкость теха позволяет писать запутанный текст. но это не делает его плохим языком.
NB>>сообщество выработало стиль, устраняющий эту проблему.
NB>>что препятствут другим пойти этим путем?
G>Ничего. Иди этим путем. В третий раз подряд объяснять разницу между тех-ом и языками программирования у меня нет сил, извини. Пиши с макросами, я не против.
спасибо тебе, добрый человек.
у меня без твоего разрешения работа стояла...