0xd34df00d 14.11.2011 12:21 Azoth_primary

Очень хорошо себе в ногу выстрелил щас.
Был тривиальный геттер, возвращавший некий контейнер по значению. std::for_each (obj→GetList ().begin (), obj→GetList ().end, ...) работало как говно — падало и совершало многовато итераций вообще.
Очевидно, потому, что контейнер, блять, копировался каждый раз, и begin был от одного инстанса контейнера, а end — от другого.

Recommended by:

@dorfe: Пиздец долбоёб-говноюз

1. magog 14.11.2011 12:22 Azoth

так это плюсы говно, или ты хуйню написал?

2. 0xd34df00dmagog /1 14.11.2011 12:22 Azoth_primary

Это я говно на хуйне написал.

3. magog0xd34df00d /2 14.11.2011 12:23 Azoth

нормальный программист даже на хуйне нормально напишет ;-)

4. 0xd34df00dmagog /3 14.11.2011 12:23 Azoth_primary

Значит, нормальных программистов на плюсах не бывает )

5. kb 14.11.2011 12:30

Я бы назвал не GetList, а AsList(). Очевиднее, что оно новый объект создаст каждый раз.

6. 0xd34df00dkb /5 14.11.2011 12:30 Azoth_primary

Ну у меня все геттеры такие, by-value.

7. kb0xd34df00d /6 14.11.2011 12:31 c8541125

ну вообще это не геттеры а говно. или я не понял, что они делают. геттеры достают связанный с этим объектом объект или поле и по-умолчанию таки должны одну и ту же ссылку возвращать. вообще геттеры для того созданы, чтоб ввернуть магию над доступом просто к полю.

8. 0xd34df00dkb /7 14.11.2011 12:33 Azoth_primary

Зачем ты оперируешь терминами полей? Оперируй терминами значений. У объекта-сообщения геттер GetName() возвращает строку с именем, а не конст-референс на внутреннее поле. Потому что важна, блять, строка, а где она, что, и как — это детали реализации. Может, она вообще при каждом вызове геттера формируется. Внешний мир это ебать не должно.

10. kb0xd34df00d /8 14.11.2011 12:37 c8541125

ну правильно. данные. ссылка — тоже данные. вот ты меня спроси "ГДЕ МОЙ АНУС", а я тебе не сгенерирую, блять, нового Арца, а просто отвечу "ОН У АРЦА". вот и получается, что ссылка является вполне объектом. но мы не об этом.

в данном случае это не геттер просто, а генератор нового объекта. объект "говно в виде итератора". вот и всё. и не надо геттером называть.

11. 0xd34df00dkb /10 14.11.2011 12:38 Azoth_primary

У тебя аналогия некорректная — вопрос «где мой анус» подразумевает, блядь, возврат указателя. Это как если бы метод назывался GetNamePointer (), не знаю.

Не имеет смысл говорить о генерации новых объектов для вещей с открытым публичным copy ctor'ом. В случае с Артсом он должен закрыть свой анус для копирования, обеспечить метод Clone(), если нужно, а так возвращать указатель. Указатель, а не const ref.

12. kb0xd34df00d /8 14.11.2011 12:38

если тебе важно приёбываться к словам — оперируй термином "свойство"

13. 0xd34df00dkb /12 14.11.2011 12:38 Azoth_primary

Я не приебываюсь к словам, «свойство» и «значение» в твоем смысле все равно разные вещи.

14. kb0xd34df00d /11 14.11.2011 12:39

так, давай не отклоняться от оригинального примера, ок. что такое obj, что такое getList или почему он генерируется?

15. 0xd34df00dkb /14 14.11.2011 12:39 Azoth_primary

obj — shared_ptr<Message>. GetList возвращает список адресатов — список пар строк. Последний вопрос не понял.

16. DZhon 14.11.2011 12:45

Visual Studio тебе бы в Debug (где включен по дефолту IDL=2) вывалила assert, что iterators mismatch, хаха!

17. kb0xd34df00d /15 14.11.2011 12:51

аа, ну тогда да. я думал, что у тебя GetList() просто возвращает объект, который представляет оригинальный obj в виде итерированного списка, а у тебя действительно геттер внешней фигни. короче да, сам лоханулся.

18. Cthulhu 14.11.2011 13:00 Miranda

А на кого рассчитано последнее предложение поста? :3

19. DZhonCthulhu /18 14.11.2011 13:01

Своего рода inb4 же.

20. kbCthulhu /18 14.11.2011 13:02

На простых, милых, душевных, провинциальных девушек романтического возраста из какой-нибудь Харьковской глубинки.

21. 0xd34df00dkb /20 14.11.2011 13:03 Azoth_primary

Што.

22. 0xd34df00dCthulhu /18 14.11.2011 13:03 Azoth_primary

ПРИЗНАНИЕ

23. kb0xd34df00d /21 14.11.2011 13:03 c8541125

дешёвый пикап детектор сработал

24. 0xd34df00dkb /23 14.11.2011 13:04 Azoth_primary

Ты ничего не понимаешь в пикапах.

25. kb0xd34df00d /24 14.11.2011 13:04 c8541125

я занимался пикапом дольше чем ты

26. 0xd34df00dkb /25 14.11.2011 13:05 Azoth_primary

Хреново быть тобой.

27. DZhon0xd34df00d /26 14.11.2011 13:05

плюсую

28. CthulhuDZhon /27 14.11.2011 13:05 Miranda

Посмотрите, какой бугурт.

29. kb0xd34df00d /26 14.11.2011 13:06 c8541125

лучше, чем писать на плюсах

30. DZhonCthulhu /28 14.11.2011 13:07

Смотрим, куда ?

31. 0xd34df00dkb /29 14.11.2011 13:08 Azoth_primary

Сказал @kb в плюсотреде среди плюсофагов, ок.
И да, мне нравится, а это главное.

32. 0xd34df00dCthulhu /28 14.11.2011 13:08 Azoth_primary

Пикап не нужен, очевидно же. Говно для спемотоксикозненьких задроченных мальчиков, надеящихся на волшебную таблетку.

33. kb0xd34df00d /31 14.11.2011 13:08 c8541125

блеать, то есть а всё что перед этим было у тебя не вызвало сомнений, да? ну ладно.

34. 0xd34df00dkb /33 14.11.2011 13:09 Azoth_primary

Че.

35. kb0xd34df00d /34 14.11.2011 13:10 c8541125

просто маленький срыв ковров

36. Cthulhukb /33 14.11.2011 13:12 Miranda

Да ничего ведь особенного не было. Лучше вспомнить старый каноничный пример
> list<int> data(istream_iterator<int>(data_file), istream_iterator<int>());
я им всех начинающих плюсофагов пугаю.

37. kbCthulhu /36 14.11.2011 13:15 c8541125

сначала думал "ну, вроде все понятно". сейчас засомневался. мне непонятен второй итератор зачем пока что)

38. Cthulhukb /37 14.11.2011 13:16 Miranda

Ща, в отдельный постик вынесу.

39. kbCthulhu /38 14.11.2011 13:17 c8541125

ждем чистоты API пост

40. mva 14.11.2011 14:23 Psi+

если бы такие озарения посещали всех горе-погромиздов, то у нас бы не было такого обилия глючного софта. Да и венда, авось, была бы юзабельной.

41. ulidtko 14.11.2011 22:03

std::foreach — говно, чтд.

Do you really want to delete ?