Здравствуйте, SkyDance, Вы писали:
SD>ЗЫ: в boost::lambda лучше вообще не смотри. Сначала крыша съедет, а потом придется посылать лесом все конторы, где boost запрещён по т.н. "административным" причинам (в переводе на русский — это когда тим лид не знает буста).
Угу, или по условиям заказчика используется компилятор не поддерживающий даже шаблоны
Здравствуйте, minorlogic, Вы писали:
AJD>>Аргументы?
M>а некто потом добавил новый мембер в класс... И теперь раз когда такое происходит , надо не забыть вставить копирование мембера в констрктор копирования и т.д.
Это из серии:
И теперь раз когда такое происходит, надо не забыть вставить инициализацию мембера в констрктор
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Здравствуйте, SkyDance, Вы писали:
SD>ЗЫ: в boost::lambda лучше вообще не смотри. Сначала крыша съедет, а потом придется посылать лесом все конторы, где boost запрещён по т.н. "административным" причинам (в переводе на русский — это когда тим лид не знает буста).
Как насчет значительного увеличения времени компиляции при использовании boost::lambda ?
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Здравствуйте, SkyDance, Вы писали:
SD>А мне не жаль, нет ничего хуже, чем разбираться в плохо оформленном коде, без грамотных описаний. Стандарт сделан так, что его даже дуболом должен уметь понять.
Здравствуйте, AndrewJD, Вы писали:
AJD>Здравствуйте, minorlogic, Вы писали:
AJD>>>Аргументы?
M>>а некто потом добавил новый мембер в класс... И теперь раз когда такое происходит , надо не забыть вставить копирование мембера в констрктор копирования и т.д.
AJD>Это из серии: AJD>И теперь раз когда такое происходит, надо не забыть вставить инициализацию мембера в констрктор
Нет , тут другая ситуация. Вежливый и заботливый мембер, сам себя проинициализирует , если это так важно , или подскажет с помошью компилятора что инициализация нужна явно.
Здравствуйте, minorlogic, Вы писали:
M>Нет , тут другая ситуация. Вежливый и заботливый мембер, сам себя проинициализирует , если это так важно , или подскажет с помошью компилятора что инициализация нужна явно.
Добавляем в класс счетчик:
int m_counter;
Чем он сам себя проинициализирует?
Здравствуйте, minorlogic, Вы писали:
M>Нет , тут другая ситуация. Вежливый и заботливый мембер, сам себя проинициализирует , если это так важно , или подскажет с помошью компилятора что инициализация нужна явно.
Ровна такая же.
Вежливый и заботливый мембер, сам себя правильно скопирует, или подскажет с помошью компилятора что он некопируемый.
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Здравствуйте, SkyDance, Вы писали:
J>>В принципе, по этому поводу Александреску с бустовцами грызся в довольно грубой форме. J>>Он очень оскорбился, что shared_ptr вставят в новый стандарт, а про него ни словом не упомянут. J>>На что ему вежливо ответили, что с его стороны, к сожалению, не видно оформленного по всем правилам пропозла для стандарта. J>>А жаль, мне его подход больше нравится.
SD>А мне не жаль, нет ничего хуже, чем разбираться в плохо оформленном коде, без грамотных описаний. Стандарт сделан так, что его даже дуболом должен уметь понять.
Имелось ввиду, что он нормально не оформил предложение в комитет по стандартизации. Да пусть бустовского хоть добавят и то спасибо сказать можно . А Локи можно всегда и так пользовать . Да и свой велосипед по мотивам написать не трудно .
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Здравствуйте, i-maverick, Вы писали:
IM>Здравствуйте, minorlogic, Вы писали:
M>>Нет , тут другая ситуация. Вежливый и заботливый мембер, сам себя проинициализирует , если это так важно , или подскажет с помошью компилятора что инициализация нужна явно.
IM>Добавляем в класс счетчик: IM>int m_counter; IM>Чем он сам себя проинициализирует?
А "int m_counter;" это не очень вежливый мембер. Если нужна гарантия инициализации используйте обертку над int
Здравствуйте, AndrewJD, Вы писали:
AJD>Здравствуйте, minorlogic, Вы писали:
M>>Нет , тут другая ситуация. Вежливый и заботливый мембер, сам себя проинициализирует , если это так важно , или подскажет с помошью компилятора что инициализация нужна явно.
AJD>Ровна такая же.
AJD>Вежливый и заботливый мембер, сам себя правильно скопирует, или подскажет с помошью компилятора что он некопируемый.
Здравствуйте, minorlogic, Вы писали:
M>>>Нет , тут другая ситуация. Вежливый и заботливый мембер, сам себя проинициализирует AJD>>Вежливый и заботливый мембер, сам себя правильно скопирует,
M>Ну , да. Я сказал что то противоречещее ?
ИМХО, пример с новым мембером не удачный для аргументирования "плохого" тона обьектов с копирующими конструкторами.
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Здравствуйте, LuciferMoscow, Вы писали:
) LM>Посмотри boost::bind и пойми насколько просто стело делать callback-и и threadfunc(если использовать boost::thread) LM>
LM>class A
LM>{
LM>public:
LM> long ID_;
LM> ....
LM>};
LM>std::vector<A> x;
LM>
Здравствуйте, AndrewJD, Вы писали:
AJD>Здравствуйте, minorlogic, Вы писали:
M>>>>Нет , тут другая ситуация. Вежливый и заботливый мембер, сам себя проинициализирует AJD>>>Вежливый и заботливый мембер, сам себя правильно скопирует,
M>>Ну , да. Я сказал что то противоречещее ?
AJD>ИМХО, пример с новым мембером не удачный для аргументирования "плохого" тона обьектов с копирующими конструкторами.
получается, что "вежливый и заботливый мембер" с нетривиальными конструктором копирования и оператором присваивания являет собой образец "плохого тона"
Здравствуйте, i-maverick, Вы писали:
IM>Здравствуйте, minorlogic, Вы писали:
M>>А "int m_counter;" это не очень вежливый мембер. Если нужна гарантия инициализации используйте обертку над int
IM>Как по мне, так проще не забыть проинициализировать, чем делать обертку для каждого POD-типа.
Ну зачем же для каждого ... одну обертку на всех , шаблонную. Не вижу особых проблем, даже в некоторых приложениях , это может быть очень важно.
Здравствуйте, AndrewJD, Вы писали:
AJD>Здравствуйте, minorlogic, Вы писали:
M>>>>Нет , тут другая ситуация. Вежливый и заботливый мембер, сам себя проинициализирует AJD>>>Вежливый и заботливый мембер, сам себя правильно скопирует,
M>>Ну , да. Я сказал что то противоречещее ?
AJD>ИМХО, пример с новым мембером не удачный для аргументирования "плохого" тона обьектов с копирующими конструкторами.
Дык почему же плохой ? Я почти каждый день сталкиваюсь . У нас у одного высокого товарища , как раз такая вот привычка , писать копирующие конструкторы где надо и где не надо. В итоге новые члены теряютбся систематически.
Привет, ты не один такой.
Я когдато вышел на улицу после собеседования, и у меня реально были мысли что я не просто ничего не знаю,
что программирование это вобще не мое, что я не в той области работаю ))). Правда через 5-10 минут, реакция преобразовалась в следующюю: "Это я ничего не знаю?, я вам еще покажу! )))"
На след день поехал закупаться книгами (потому что пишу я на Perl, но нечитал не одной книги по нему).
И ушел сголовой в чтение, оказывается так много нового.
А насчет констрктора копирования, ну слажал немного.
хотя я сам так не любил эти вопросы по синтаксису, бе ))))
Здравствуйте, minorlogic, Вы писали:
M>Последний рекорд , я слышал что С++ можно за 2 недели выучить , а вы за несколько дней !
Там написано "если понимать концепции, которые этот синтаксис отражает". Разумеется, если не представлять, зачем нужны шаблонные аргументы шаблонов, то освоение их синтаксиса никак не приблизит нас к освоению этой части языка. С другой стороны использование этих самых шаблонных аргументов не является необходимым для создания успешных программ. Многие другие вещи хоть и не обязательны, но желательны. Однако научиться, например, использовать модификатор const, по-моему можно не то что за несколько дней, а, как говорится, "не отходя от кассы".