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, " "));
}
Где ошибка в приведенном коде? Как ее исправить? Почему компилятор ведет себя именно так?
@0x2207: на самом деле, все это показывает насколько c++ далекое от жизни говно. людям надо работать, а не затрачивать свои оккультные знания о сингулярных фактах. типа двойных скобочек и прочей ерунды.
Не плюсокодер, но почему-то кажется, что ошибка в строчке
list<int> data(istream_iterator<int>(data_file), istream_iterator<int>());
Не плюсокодер, но почему-то кажется, что ошибка в приведенном коде.
Да, где-то тут.
1. Некорректно объявлять main с void.
2. Убери нахер ; из внутренностей.
3. Компилятор принимает вызов конструктора на основе итераторов за объявление функции, да.
Молодец, первый уровень пройден )
Осталось узнать, как же эту ошибку исправить без существенной переделки кода?
Г-споди, ну это же совсем легко. list<int> data = list<int>(тожесамое)
Про какое ; ты?
А еще проще?
Олсо, точки с запятой перед закрывающими блок скобками я ставлю всегда.
Вы о чем?
Видимо он про точку с запятой в последней строке блока. Если я правильно распарсил, конечно.
1) Можно заранее загнать итератор в переменную
2) Можно move-нуть итератор прямо на месте
3) Можно взять в скобки итератор
Бляр, я чуток опоздал :(
Вот, третий вариант и предполагался.
Гордись, ты — настоящий труЪ-плюсоеб!
/15
У меня такой хуйни нету.
Похоже, что это браузеропроблемы %)
с веба
нет, она там таки есть
И у меня. А через веб-морду нету.
Тьфу, через бота.
ага, значит арц почини
а я уж думал ну вообще пиздец плюсы-стайл точки с запятой посреди объявления переменной
ровно год плюсы дрочу, хех
[](){}
боянизд :)
Да, я тоже люблю эту прелесть.
Я сначала тоже думал, что че-то поломалось у меня в глазах.
А я уже начал было думать, что плюсы морфировали в похапе, и последнюю точку с запятой там можно не ставить.
<(++_++)>
Алсо завтра запилю еще что-то в таком духе.
А к концу месяца подведем статистику, кто в пстаче первый плюсоеб.
У меня в моем хаскелькоде есть операторы |++-|, |++| и |++=|, кажется.
а я своим питоном делаю sys.path[0:0] = ['/home/хуй']. мне [0:0] нравится.
Тебе в заборостроительный надо было идти, а не в физтех.
Это трубы, ящетаю.
# let (|++-|) x y = x ;;
val ( |++-| ) : 'a → 'b → 'a = <fun>
# 5 |++-| 1 ;;
- : int = 5
Починил.
всяко спасибо
Вот за это я и люблю пстач больше чем жуйк. Respect.
джвайные скопки
Вот, еще одного нашли!
бльо, я даже не распарсил >_>
Незачет по плюсцам. Страуструп ждет тебя!
ппц, для демонстрации тупой ошибки про explicit нужно было городить этот шаблонный тормозной говнокод и потом ещё решать её так "элегантно" влиспивая?
Тупой ошибки про что?
про явный конструктор/объявление ф-ци же, достаточно было A a(0); вместо тормозного ифстримова говна аля Ololo<lol> shit(more_shit<olo>(shit_args), endless_shit<suck<it> >);
Это было бы слишком очевидно и скучно.
А, запутывал следы, ок, малацца.
потомучто он хуй?