Cthulhu 14.11.2011 13:29 Miranda

Inspired by #othfie

Итак, вашему вниманию предлагается небольшой тест. Считаете ли вы себя плюсое^Wчеловеком, неплохо знающим c++? Тогда вам не составит проблему ответить на нижеследующий вопрос.

#include <iostream>
#include <fstream>
#include <iterator>
#include <list>
#include <algorithm>
using namespace std;

void main()
{
ifstream data_file("data.txt");
list<int> data(istream_iterator<int>(data_file), istream_iterator<int>());
copy(data.begin(), data.end(), ostream_iterator<int>(cout, " "));
}

Где ошибка в приведенном коде? Как ее исправить? Почему компилятор ведет себя именно так?

Recommended by:

@0x2207: на самом деле, все это показывает насколько c++ далекое от жизни говно. людям надо работать, а не затрачивать свои оккультные знания о сингулярных фактах. типа двойных скобочек и прочей ерунды.

1. iLeamare 14.11.2011 13:30 ilre

Не плюсокодер, но почему-то кажется, что ошибка в строчке
list<int> data(istream_iterator<int>(data_file), istream_iterator<int>());

2. 0xd34df00diLeamare /1 14.11.2011 13:34 Azoth_primary

Не плюсокодер, но почему-то кажется, что ошибка в приведенном коде.

3. iLeamare0xd34df00d /2 14.11.2011 13:34 ilre

Да, где-то тут.

4. DZhon 14.11.2011 13:40

1. Некорректно объявлять main с void.
2. Убери нахер ; из внутренностей.
3. Компилятор принимает вызов конструктора на основе итераторов за объявление функции, да.

5. CthulhuDZhon /4 14.11.2011 13:41 Miranda

Молодец, первый уровень пройден )
Осталось узнать, как же эту ошибку исправить без существенной переделки кода?

6. 0xd34df00dCthulhu /5 14.11.2011 13:45 Azoth_primary

Г-споди, ну это же совсем легко. list<int> data = list<int>(тожесамое)

7. 0xd34df00dDZhon /4 14.11.2011 13:45 Azoth_primary

Про какое ; ты?

8. Cthulhu0xd34df00d /6 14.11.2011 13:45 Miranda

А еще проще?

9. CthulhuDZhon /4 14.11.2011 13:46 Miranda

Олсо, точки с запятой перед закрывающими блок скобками я ставлю всегда.

10. 0xd34df00dCthulhu /9 14.11.2011 13:46 Azoth_primary

Вы о чем?

11. Cthulhu0xd34df00d /10 14.11.2011 13:48 Miranda

Видимо он про точку с запятой в последней строке блока. Если я правильно распарсил, конечно.

12. DZhonCthulhu /5 14.11.2011 13:48

1) Можно заранее загнать итератор в переменную
2) Можно move-нуть итератор прямо на месте
3) Можно взять в скобки итератор

13. 0xd34df00dDZhon /12 14.11.2011 13:48 Azoth_primary

Бляр, я чуток опоздал :(

14. CthulhuDZhon /12 14.11.2011 13:48 Miranda

Вот, третий вариант и предполагался.
Гордись, ты — настоящий труЪ-плюсоеб!

15. DZhon0xd34df00d /10 14.11.2011 13:52

16. DZhonCthulhu /11 14.11.2011 13:52

/15

17. 0xd34df00dDZhon /15 14.11.2011 13:52 Azoth_primary

У меня такой хуйни нету.

18. DZhon 14.11.2011 13:53

Похоже, что это браузеропроблемы %)

19. DZhon0xd34df00d /17 14.11.2011 13:53

с веба

20. kbDZhon /18 14.11.2011 13:54

нет, она там таки есть

21. 0xd34df00dkb /20 14.11.2011 13:54 Azoth_primary

И у меня. А через веб-морду нету.

22. 0xd34df00d0xd34df00d /21 14.11.2011 13:54 Azoth_primary

Тьфу, через бота.

23. kb0xd34df00d /22 14.11.2011 13:54 c8541125

ага, значит арц почини

24. kbkb /23 14.11.2011 13:56

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

25. DZhonCthulhu /14 14.11.2011 13:57

ровно год плюсы дрочу, хех

26. 0xd34df00dkb /24 14.11.2011 13:59 Azoth_primary

[](){}

27. DZhon0xd34df00d /26 14.11.2011 13:59

боянизд :)

28. Cthulhu0xd34df00d /26 14.11.2011 13:59 Miranda

Да, я тоже люблю эту прелесть.

29. DZhonkb /24 14.11.2011 14:00

Я сначала тоже думал, что че-то поломалось у меня в глазах.

30. 0xd34df00dDZhon /29 14.11.2011 14:00 Azoth_primary

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

31. kb0xd34df00d /26 14.11.2011 14:00 c8541125

<(++_++)>

32. Cthulhu 14.11.2011 14:00 Miranda

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

33. 0xd34df00dkb /31 14.11.2011 14:01 Azoth_primary

У меня в моем хаскелькоде есть операторы |++-|, |++| и |++=|, кажется.

34. kb0xd34df00d /33 14.11.2011 14:01 c8541125

а я своим питоном делаю sys.path[0:0] = ['/home/хуй']. мне [0:0] нравится.

35. Cthulhu0xd34df00d /33 14.11.2011 14:02 Miranda

Тебе в заборостроительный надо было идти, а не в физтех.

36. 0xd34df00dCthulhu /35 14.11.2011 14:02 Azoth_primary

Это трубы, ящетаю.

37. DZhon0xd34df00d /33 14.11.2011 14:03

# let (|++-|) x y = x ;;
val ( |++-| ) : 'a → 'b → 'a = <fun>
# 5 |++-| 1 ;;
- : int = 5

38. artskb /23 14.11.2011 14:20

Починил.

39. kbarts /38 14.11.2011 14:21 c8541125

всяко спасибо

40. Cthulhuarts /38 14.11.2011 14:31 Miranda

Вот за это я и люблю пстач больше чем жуйк. Respect.

41. 0x2207Cthulhu /5 14.11.2011 14:53 epsilon

джвайные скопки

42. Cthulhu0x2207 /41 14.11.2011 14:56 Miranda

Вот, еще одного нашли!

43. gelraen 14.11.2011 15:08

бльо, я даже не распарсил >_>

44. Cthulhugelraen /43 14.11.2011 15:10 Miranda

Незачет по плюсцам. Страуструп ждет тебя!

45. dorfeCthulhu /14 14.11.2011 15:41

ппц, для демонстрации тупой ошибки про explicit нужно было городить этот шаблонный тормозной говнокод и потом ещё решать её так "элегантно" влиспивая?

46. Cthulhudorfe /45 14.11.2011 15:46 Miranda

Тупой ошибки про что?

47. dorfeCthulhu /46 14.11.2011 15:52

про явный конструктор/объявление ф-ци же, достаточно было A a(0); вместо тормозного ифстримова говна аля Ololo<lol> shit(more_shit<olo>(shit_args), endless_shit<suck<it> >);

48. Cthulhudorfe /47 14.11.2011 15:54 Miranda

Это было бы слишком очевидно и скучно.

49. dorfeCthulhu /48 14.11.2011 15:56

А, запутывал следы, ок, малацца.

50. emu 14.11.2011 21:53 sylph

потомучто он хуй?

Do you really want to delete ?