Re[13]: Как я выгнал человека с собеседования
От: avbochagov Россия  
Дата: 26.01.07 07:05
Оценка: +1
Здравствуйте, SkyDance, Вы писали:

SD>ЗЫ: в boost::lambda лучше вообще не смотри. Сначала крыша съедет, а потом придется посылать лесом все конторы, где boost запрещён по т.н. "административным" причинам (в переводе на русский — это когда тим лид не знает буста).


Угу, или по условиям заказчика используется компилятор не поддерживающий даже шаблоны
... << RSDN@Home 1.2.0 alpha rev. 672>>
Re[12]: Как я завалил собеседование
От: AndrewJD США  
Дата: 26.01.07 09:07
Оценка:
Здравствуйте, minorlogic, Вы писали:

AJD>>Аргументы?


M>а некто потом добавил новый мембер в класс... И теперь раз когда такое происходит , надо не забыть вставить копирование мембера в констрктор копирования и т.д.


Это из серии:
И теперь раз когда такое происходит, надо не забыть вставить инициализацию мембера в констрктор
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re[13]: Как я выгнал человека с собеседования
От: AndrewJD США  
Дата: 26.01.07 09:09
Оценка:
Здравствуйте, SkyDance, Вы писали:

SD>ЗЫ: в boost::lambda лучше вообще не смотри. Сначала крыша съедет, а потом придется посылать лесом все конторы, где boost запрещён по т.н. "административным" причинам (в переводе на русский — это когда тим лид не знает буста).


Как насчет значительного увеличения времени компиляции при использовании boost::lambda ?
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re[18]: Как я завалил собеседование
От: jazzer Россия Skype: enerjazzer
Дата: 26.01.07 09:50
Оценка:
Здравствуйте, SkyDance, Вы писали:

SD>А мне не жаль, нет ничего хуже, чем разбираться в плохо оформленном коде, без грамотных описаний. Стандарт сделан так, что его даже дуболом должен уметь понять.


Я не про оформление, я про policy-based design.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[13]: Как я завалил собеседование
От: minorlogic Украина  
Дата: 26.01.07 10:01
Оценка:
Здравствуйте, AndrewJD, Вы писали:

AJD>Здравствуйте, minorlogic, Вы писали:


AJD>>>Аргументы?


M>>а некто потом добавил новый мембер в класс... И теперь раз когда такое происходит , надо не забыть вставить копирование мембера в констрктор копирования и т.д.


AJD>Это из серии:

AJD>И теперь раз когда такое происходит, надо не забыть вставить инициализацию мембера в констрктор

Нет , тут другая ситуация. Вежливый и заботливый мембер, сам себя проинициализирует , если это так важно , или подскажет с помошью компилятора что инициализация нужна явно.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[14]: Как я завалил собеседование
От: i-maverick Россия  
Дата: 26.01.07 10:10
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Нет , тут другая ситуация. Вежливый и заботливый мембер, сам себя проинициализирует , если это так важно , или подскажет с помошью компилятора что инициализация нужна явно.


Добавляем в класс счетчик:
int m_counter;
Чем он сам себя проинициализирует?
Re[14]: Как я завалил собеседование
От: AndrewJD США  
Дата: 26.01.07 10:20
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Нет , тут другая ситуация. Вежливый и заботливый мембер, сам себя проинициализирует , если это так важно , или подскажет с помошью компилятора что инициализация нужна явно.


Ровна такая же.

Вежливый и заботливый мембер, сам себя правильно скопирует, или подскажет с помошью компилятора что он некопируемый.
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re[18]: Как я завалил собеседование
От: dr.Chaos Россия Украшения HandMade
Дата: 26.01.07 10:34
Оценка:
Здравствуйте, SkyDance, Вы писали:

J>>В принципе, по этому поводу Александреску с бустовцами грызся в довольно грубой форме.

J>>Он очень оскорбился, что shared_ptr вставят в новый стандарт, а про него ни словом не упомянут.
J>>На что ему вежливо ответили, что с его стороны, к сожалению, не видно оформленного по всем правилам пропозла для стандарта.
J>>А жаль, мне его подход больше нравится.

SD>А мне не жаль, нет ничего хуже, чем разбираться в плохо оформленном коде, без грамотных описаний. Стандарт сделан так, что его даже дуболом должен уметь понять.


Имелось ввиду, что он нормально не оформил предложение в комитет по стандартизации. Да пусть бустовского хоть добавят и то спасибо сказать можно . А Локи можно всегда и так пользовать . Да и свой велосипед по мотивам написать не трудно .
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re[15]: Как я завалил собеседование
От: minorlogic Украина  
Дата: 26.01.07 10:35
Оценка:
Здравствуйте, i-maverick, Вы писали:

IM>Здравствуйте, minorlogic, Вы писали:


M>>Нет , тут другая ситуация. Вежливый и заботливый мембер, сам себя проинициализирует , если это так важно , или подскажет с помошью компилятора что инициализация нужна явно.


IM>Добавляем в класс счетчик:

IM>int m_counter;
IM>Чем он сам себя проинициализирует?


А "int m_counter;" это не очень вежливый мембер. Если нужна гарантия инициализации используйте обертку над int
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[15]: Как я завалил собеседование
От: minorlogic Украина  
Дата: 26.01.07 10:36
Оценка:
Здравствуйте, AndrewJD, Вы писали:

AJD>Здравствуйте, minorlogic, Вы писали:


M>>Нет , тут другая ситуация. Вежливый и заботливый мембер, сам себя проинициализирует , если это так важно , или подскажет с помошью компилятора что инициализация нужна явно.


AJD>Ровна такая же.


AJD>Вежливый и заботливый мембер, сам себя правильно скопирует, или подскажет с помошью компилятора что он некопируемый.


Ну , да. Я сказал что то противоречещее ?
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[16]: Как я завалил собеседование
От: i-maverick Россия  
Дата: 26.01.07 10:41
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>А "int m_counter;" это не очень вежливый мембер. Если нужна гарантия инициализации используйте обертку над int


Как по мне, так проще не забыть проинициализировать, чем делать обертку для каждого POD-типа.
Re[16]: Как я завалил собеседование
От: AndrewJD США  
Дата: 26.01.07 10:57
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>>>Нет , тут другая ситуация. Вежливый и заботливый мембер, сам себя проинициализирует

AJD>>Вежливый и заботливый мембер, сам себя правильно скопирует,

M>Ну , да. Я сказал что то противоречещее ?


ИМХО, пример с новым мембером не удачный для аргументирования "плохого" тона обьектов с копирующими конструкторами.
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re[12]: Как я выгнал человека с собеседования
От: branco  
Дата: 26.01.07 11:26
Оценка:
Здравствуйте, 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>

LM>Найди в этом векторе элемент с Id равным 15

В первом приближении у меня получилось вот это:
#include "stdafx.h"
#include <boost/bind.hpp>
#include <conio.h>
#include <vector>
#include <algorithm>
#include <functional>

class A
{
    long ID_;
public:
  A(long ID_):ID_(ID_){};

  friend bool operator == (const A& lhs, const A& rhs)
  {
      return(lhs.ID_ == rhs.ID_);
  }

};



int _tmain(int argc, _TCHAR* argv[])
{
    std::vector<A> x;
    x.push_back(A(21));
    x.push_back(A(12));
    x.push_back(A(15));
    x.push_back(A(32));
    

    std::vector<A>::iterator pos =  
        std::find_if(x.begin(),x.end(), boost::bind(std::equal_to<A>(),_1,15));

    std::cout << distance(x.begin(),pos)+1 << std::endl;

    getch();

    return 0;
}


Однако, насколько я понимаю, наибольшая крутизна здесь достигается при
использовании вложенных предикатов...
Re[17]: Как я завалил собеседование
От: jazzer Россия Skype: enerjazzer
Дата: 26.01.07 11:51
Оценка:
Здравствуйте, AndrewJD, Вы писали:

AJD>Здравствуйте, minorlogic, Вы писали:


M>>>>Нет , тут другая ситуация. Вежливый и заботливый мембер, сам себя проинициализирует

AJD>>>Вежливый и заботливый мембер, сам себя правильно скопирует,

M>>Ну , да. Я сказал что то противоречещее ?


AJD>ИМХО, пример с новым мембером не удачный для аргументирования "плохого" тона обьектов с копирующими конструкторами.


получается, что "вежливый и заботливый мембер" с нетривиальными конструктором копирования и оператором присваивания являет собой образец "плохого тона"
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[17]: Как я завалил собеседование
От: minorlogic Украина  
Дата: 26.01.07 12:35
Оценка:
Здравствуйте, i-maverick, Вы писали:

IM>Здравствуйте, minorlogic, Вы писали:


M>>А "int m_counter;" это не очень вежливый мембер. Если нужна гарантия инициализации используйте обертку над int


IM>Как по мне, так проще не забыть проинициализировать, чем делать обертку для каждого POD-типа.



Ну зачем же для каждого ... одну обертку на всех , шаблонную. Не вижу особых проблем, даже в некоторых приложениях , это может быть очень важно.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[17]: Как я завалил собеседование
От: minorlogic Украина  
Дата: 26.01.07 12:37
Оценка:
Здравствуйте, AndrewJD, Вы писали:

AJD>Здравствуйте, minorlogic, Вы писали:


M>>>>Нет , тут другая ситуация. Вежливый и заботливый мембер, сам себя проинициализирует

AJD>>>Вежливый и заботливый мембер, сам себя правильно скопирует,

M>>Ну , да. Я сказал что то противоречещее ?


AJD>ИМХО, пример с новым мембером не удачный для аргументирования "плохого" тона обьектов с копирующими конструкторами.


Дык почему же плохой ? Я почти каждый день сталкиваюсь . У нас у одного высокого товарища , как раз такая вот привычка , писать копирующие конструкторы где надо и где не надо. В итоге новые члены теряютбся систематически.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re: Как я завалил собеседование
От: CString  
Дата: 26.01.07 12:40
Оценка:
Здравствуйте, Hottabych1, Вы писали:

Привет, ты не один такой.
Я когдато вышел на улицу после собеседования, и у меня реально были мысли что я не просто ничего не знаю,
что программирование это вобще не мое, что я не в той области работаю ))). Правда через 5-10 минут, реакция преобразовалась в следующюю: "Это я ничего не знаю?, я вам еще покажу! )))"
На след день поехал закупаться книгами (потому что пишу я на Perl, но нечитал не одной книги по нему).
И ушел сголовой в чтение, оказывается так много нового.

А насчет констрктора копирования, ну слажал немного.
хотя я сам так не любил эти вопросы по синтаксису, бе ))))
Re[5]: Как я завалил собеседование
От: Kemsky  
Дата: 26.01.07 12:58
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Последний рекорд , я слышал что С++ можно за 2 недели выучить , а вы за несколько дней !


Там написано "если понимать концепции, которые этот синтаксис отражает". Разумеется, если не представлять, зачем нужны шаблонные аргументы шаблонов, то освоение их синтаксиса никак не приблизит нас к освоению этой части языка. С другой стороны использование этих самых шаблонных аргументов не является необходимым для создания успешных программ. Многие другие вещи хоть и не обязательны, но желательны. Однако научиться, например, использовать модификатор const, по-моему можно не то что за несколько дней, а, как говорится, "не отходя от кассы".
Re[13]: Как я выгнал человека с собеседования
От: conraddk Россия  
Дата: 26.01.07 15:58
Оценка:
Здравствуйте, branco, Вы писали:

LM>>Найди в этом векторе элемент с Id равным 15


B>В первом приближении у меня получилось вот это:

B>
B>  friend bool operator == (const A& lhs, const A& rhs)
B>  {
B>      return(lhs.ID_ == rhs.ID_);
B>  }
...
B>    std::vector<A>::iterator pos =  
B>        std::find_if(x.begin(),x.end(), boost::bind(std::equal_to<A>(),_1,15));
B>


Можно проще, не определяя оператор равенства (возможна привязка не только к функциям):
    std::find_if( x.begin(), x.end(), boost::bind( std::equal_to<int>(), boost::bind( &A::id_, _1 ), 15 ) );

А еще лучше так:
    std::find_if( x.begin(), x.end(), boost::bind( &A::id_, _1 ) == 15 );

Д.К. << RSDN@Home 1.2.0 alpha rev. 655>>
Все на свете должно происходить медленно и неправильно...
Re[3]: Как я выгнал человека с собеседования
От: xtile  
Дата: 26.01.07 16:18
Оценка:
Здравствуйте, Anatolix, Вы писали:

Это еще не предел, у меня бывало, до подобных вопросов даже дело не доходило При этом у человека почти 5 лет опыта.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.