Этого треда уже нет.
Это копия, сохраненная 1 февраля 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
23 Кб, 499x247
210 Кб, 1444x577
386 Кб, 892x633
27 Кб, 506x304
Не позволяй плюсовику плюсится. Чтоб воду в ступе !G7cNlqTqnI # OP #892147 В конец треда | Веб
Не позволяй плюсовику плюсится.
Чтоб воду в ступе не толочь,
крестовики обязаны трудиться,
и день и ночь, и день и ночь.

Коль отведёшь хотя б мгновенье
Одно для отдыха его,
То сразу рухнет без сомненья,
Производительность софта.

А коли дашь ему доп. пайку
Оберегая от забот,
То он последнюю фуфайку
На драфт стандарта проебёт.

А ты лупи его по заду,
За пейсики дери его,
Такой язык для этих гадов,
Поверь, доходчивей всего.
(с) Страуструп, 1983. Апокрифы крестового завета.

Шапка: https://github.com/sosachbot/cppthreadhat/wiki
Прошлый: https://2ch.hk/pr/res/886043.html (М)
36 Кб, 480x600
sage #2 #892153
Не пиздите только ногами за проёбанный заголовок треда, я вам зато покушать шапку принёс!
#3 #892164
Откреплю сагу
#4 #892170
Че свежего есть по паттернам для новичка? Книги после 11 стандарта
892179
#5 #892179
>>892170
Хайп вокруг паттернов закончился. Они больше не в почёте.
892184
#6 #892184
>>892179
Хайп, хуйяп, я хочу экономит время на решения задач, делая при этом их более эффективными и гибкими.
892215
#7 #892185
Это легитимный тред?
892186
#8 #892186
>>892185
Я сомневаюсь, т.к. прошлый утопили искусственно.
sage #9 #892215
>>892184
Вот и делай, а не трать время на эту хуйню (паттерны). Своей головы что ли нет?
#10 #892238
Эй, Страуструп. Когда в кресты завезут рефлексию или статическую сериализацию, наконец?!
892251892257
#12 #892257
>>892238
Сегодня вечером завезу
892261
#13 #892258
>>892251
Видевал, но вот имена полей мне где брать?!
892261
#14 #892261
#15 #892287
Есть видеоуроки по взлому одноклассников на C++
892354892394892403
#16 #892354
>>892287
Есть
892369
#17 #892369
>>892354
Ты уже смотрел?
#18 #892394
>>892287
Ну так делись, раз есть.
#19 #892403
>>892287
В лс скинул, проверяй.
#20 #892432
>>892147 (OP)
У вас в дропбоксе ссылки отвалились
892438
#21 #892438
>>892432
Вась, ну я ж в оглавлении написал

>Если ссылка на какую-то книжку сгнила - http://gen.lib.rus.ec

892452892458
#22 #892452
>>892438
Прости, я не заметил.
#23 #892458
>>892438
Каким методом определить, что ссылка сгнила?
892459
#24 #892459
>>892458
Тыкаешь, а там ничего нет
#25 #892482
Всем день добрый. Как добавить новое интовое число?
Хочу чтобы ABRACADABRA тоже была инт. Разумеется никаких вычислений с ней не будет, это просто число возвращаемое функцией, если результат работы не получен.
892503
#26 #892496
Всем привет. У меня есть очередь, состоящую из объектов класса classA, которую нужно заполнить из файла при инициализации. Я использую динамический массив, но не могу разобраться до конца как это делать, помогите пожалуйста
#27 #892499
>>892496
Не понимаю, в чём проблема?

Делаешь пандорический захват, лифтишь в монаду, потом строишь рекурсивную схему (здесь подойдёт зигохистоморфный препроморфизм) как монадический трансформер из категории эндофункторов, и метациклически вычисляешь результат. Любой второкурсник справится. А если делать на анафорических лямбдах — так задачка вообще на пять минут.
892504
#28 #892503
>>892482
Нормыльным способом — никак.
Но можно сделать что-то вроде:
#define A 10
#define B 11
#define C 12
...
int i = C10AB;
>>892496
Конкретнее.
892506892510
#29 #892504
>>892499
Двачую хачкель-довна.
#30 #892506
>>892503
Спасибо, но это не позволит возвращать именно B, а не 11. Впрочем я нашел другое решение своей проблемы.
#31 #892510
>>892503
Ну вот написал такую шнягу, но она не работает

Ошибка Выражение должно быть допустимым для изменения левосторонним значением для строки (mas + l sizeof(classA)) = new classA (name, p);
Ниже приведен код заполенения очереди из файла
static classA mas;
static int l = 0;
ifstream f("gs.txt");
if (f) {
while (!f.eof()) {
f >> p >> name;
(mas + l
sizeof(classA)) = new classA (name, p);
this->add(mas + l
sizeof(classA*));
l++;
}
}
else cout << "Ошибка";
}
892536892541
#32 #892511
>>892496
std::vector<classA>
или
std::list<classA>
892522
#33 #892512
>>892496
ifstream fread{"txt.txt"}; //функция чтения из файла
if (!fread)
cout << "don't read file" << "\n";
//cout << books.size() << "\n";

while (fread >> fname >> lname >> tname >> book >> y)//цикл чтения
{
// cout << fname << " " << lname << " " << tname << " " << book << " " << y << "\n";
books.push_back(Book{ fname, lname, tname, book, y });
}
892514
#34 #892514
>>892512
ifstream fread{"txt.txt"}; //функция чтения из файла
if (!fread)
cout << "don't read file" << "\n";
//cout << books.size() << "\n";

while (fread >> fname >> lname >> tname >> book >> y)\t//цикл чтения
{
//cout << fname << " " << lname << " " << tname << " " << book << " " << y << "\n";
books.push_back(Book{ fname, lname, tname, book, y });
}
892522
#35 #892522
>>892514
>>892511
Мне нельзя использовать встроенные контейнеры. Через динамический массив никак не описать?
892525892551
#36 #892525
>>892522
Ты просил динамический массив — тебе показали на нём (в плюсах это вектор). Без них — руками и scanf-ом.
892527
#37 #892527
>>892525
Я описал динамический массив, но как-то неправильно. Прошу помощи в поиске ошибки и ее исправлении, а не в совершенно ином решении, которое мне не нужно.
892528892534
#38 #892528
>>892527
Может ты задание в полном виде приложишь?
892532
#39 #892532
>>892528
Это не задача и не задание, это проблема.
#40 #892534
>>892527

>>массив


А разве массив сам по себе не является контейнером?
#41 #892536
>>892510

>mas + l sizeof(classA)) = new classA (name, p);


Что ты тут вообще делаешь? Закинь на пастебин хотябы.
892537
#42 #892537
>>892536
mas - по идее указывает на 0 объект массива
mas +l звездочка sizeof(classAзвездочка) - на l-ый объект массива.
В приведенной строке кода я создаю объект и записываю указатель на него в l-ую ячейку памяти
892542
#43 #892538
Сап. Нужно посчитать количество двухбуквенных слов в строке. Я тут кое-что накалякал, разбил строку на слова, сравнил их длину с двойкой в ассемблерной вставке(без неё нельзя, задание такое.) А как эти самые слова дальше посчитать я не понимаю. В с++ абсолютный ноль, прошу помощи.
http://pastebin.com/ed5JHXUx
892612893276
#44 #892541
>>892510
>>892510
Исправлю-ка ошибку
static classA звездочка mas;
static int l = 0;
ifstream f("gs.txt");
if (f) {
while (!f.eof()) {
f >> p >> name;
(mas + l ) = new classA (name, p);
this->add(mas + l );
l++;
}
}
}
#45 #892542
>>892537
1) В mas память выделена?
2) Ты уверен что нужно измерять размер указателя classA, а не его собственный?
892543
#46 #892543
>>892542
1) Разве память не выделяется автоматически при new ?
2)Не понимаю вопрос
#47 #892551
>>892522
Ну так напиши свой контейнер, маня
892552
#48 #892552
>>892551
Я и пытаюсь написать свой динамический массив, но у меня проблемы,которые я не могу решить. Пришел сюда спросить совета , а мне в ответ "напиши свой контейнер"))
Цирк
892553
#49 #892553
>>892552
TYPE *memory = new TYPE[COUNT];

и потом
delete[] memory;
892558
#50 #892558
>>892553
и?

В общем, вот что имею в итоге:
static classA mas;
mas = new classA[];
static int l = 0;
ifstream f("gs.txt");
if (f) {
while (!f.eof()) {
f >> p >> name;
mas[l] = new classA(name, p);
mas[l]->getNumber();
this->add(mas[l]);
l++;
}
}

При компиляции ошибка: размер массива должен быть указан в новых выражениях. Как можно это исправить? Ругается на new classA
[]
892559892562
#51 #892559
>>892558
static classA звездочка звездочка mas;
mas = new classA звездочка [];
static int l = 0;
ifstream f("gs.txt");
if (f) {
while (!f.eof()) {
f >> p >> name;
mas[l] = new classA(name, p);
mas[l]->getNumber();
this->add(mas[l]);
l++;
}
}

При компиляции ошибка: размер массива должен быть указан в новых выражениях. Как можно это исправить? Ругается на new classA звездочка []
#52 #892562
>>892558
А хули ты при выделении памяти размер не указал?! Он тебе гадать что-ли будет.

>> mas = new classA[????]

892564
#53 #892564
>>892562
А я его не знаю. Размера, т.е.
Исправил ошибку при помощи realloc, можно ли как-то иначе?
892570892844
#54 #892570
>>892564
В любом случае ты должен указать количество элементов. Динамический массив называется динамическим, потому что создается во время выполнения, а не растягивается. Если ты захочешь увеличить область памяти - нужно выделить новую, старое туда скопировать, и затем старую область памяти освободить.
892590
#55 #892590
>>892570
Короче, стек для ЛЁХ, не уверен, насколько правильно он будет работать.

http://ideone.com/PSz4Mp
892594
#56 #892594
>>892590
блять, забыл в деструкторе память почистить, но сделай это за меня.
алсо, можно припереть сюда перемещающие и копирующие конструкторы и присваивания, если желание есть
#57 #892612
>>892538
бамп
#58 #892722
Где получить бесплатный сертификат что я знаю С++?
892748893719
#60 #892753
>>892748
Ме именной сертификат дадут? А в резюме такое можно вписать?
#61 #892844
>>892564
Ты, по моему, хуйню какую-то делаешь. Возможно я чего-то не понимаю, но вот, как все это выглядит: ты пытаешься создать динамический массив, то есть массив, который может там расширяться-сужаться, сальтухи мутить. Это нужно в случаях, когда ты не знаешь конечного размера этого массива и все зависит от входных данных (в них, естественно тоже нигде размер не записан и тебе тупо надо считывать, пока ты не дойдешь до конца). И вот ты говоришь программе найти тебе какой-нибудь указатель в памяти (static classA mas) и дальше сохраняешь свои элементы один за другим, начиная с этой позиции ((mas + l sizeof(classA)) = new classA (name, p)). Я, чесно говоря, заебусь описывать все ошибки, которые ты допустил в своем подходе. Но из основных: на с++, как впрочем и на любых других языках, создать идеальный динамический массив просто не возможно. Это объясняется тем, что память представляет собой что-то вроде большой строки, рандомные отрезки, которой бронируются компьютером для хранения в них данных (например, когда твоя программа просит выделить ей память). И, если мы, как и ты, будем просить компьютер найти нам какое-то место в этой памяти, а потом записывать туда даные, одни за другими, то мы обязательно, рано или поздно, наткнемся на уже занятую часть строки и начнем там творить невъебенную такую ахинею (это не учитывая еще много других пиздецов, которые непременно случатся при таких действиях). Все это является базовыми знаниями, без которых человека не следует вообще подпускать к с++ или не учить их работать с динамической памятью. Очень удивлен, что ты ими не обладаешь. Ну а для того, чтобы все-таки реализовать эти "динамические массивы" используют либо стэки, либо вектора, либо, возможно, много чего еще. Тебе советую воспользоваться вторым методом
#62 #893004
Лабодаун на связи. Отличается ли чем-нибудь вызов функции от вызова метода? Меня пытались убедить в том, что вызов метода намного медленнее. Но, если это так, то почему? Запихивание this в ecx (для x86) перед вызовом метода не намного же уменьшит скорость
893005
#63 #893005
>>893004
Только если метод виртуальный (да и то уже давно не сильно медленнее). В остальном — разницы 0.

Уточни, не спутал ли твой советчик плюсы с явой/шарпом.
#64 #893024
Аноны, я совсем ничего не понимаю.
http://pastebin.com/rsjVwLKQ
http://pastebin.com/GwbhB9Kf
Это вот энто дело http://www.adp-gmbh.ch/cpp/common/base64.html, типо декодер base64.
Делаем так:
std::string str = "0JTQstCw0Ycu";
std::string decoded = Base64::Decode(str);
Выхлоп:
(.text+0x53a): undefined reference to `Alice::Base64::Decode(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
Вопрос: где он нашел еще два параметра у функции, когда в хедере и в самом cpp их всего по одному?
893025893039
#65 #893025
>>893024
Самое интересное, что даже при копипасте примера с той же страницы, где и находится эти сорцы, он выдает такой же выхлоп.
#66 #893039
>>893024
Отбой, анон, проблема была очевидно
Как же стыдно, что вглаза ебусь
#67 #893182
Джосатиса кто-нибудь читал? Хороший справочник? Или нет пророка кроме Страуструпа?
893187893189893426
#68 #893187
>>893182
https://github.com/sosachbot/cppthreadhat/wiki#Справочники

>нет пророка кроме Страуструпа


а вы говорите ситхи в шапке нинужны
893217
#69 #893189
>>893182
Мельком пробежаться можно, но многое из чего там просто нахуй не нужно. Достаточно емкое описание библиотеки, согласно стандарту, конечно же.
#70 #893217
>>893187
Я потому и спросил, что в шапке только его книги.
893219
#71 #893219
>>893217

>в справочниках по ссылке только 2 книги Страуса


С тобой всё в порядке?
я когда переносил шапку конечно думал что будут сложности, но что придётся учить читать кого-то точно не думал.
#72 #893276
Так и знал что вы педики нихера не поможете, сам всё сделал.
>>892538-кун
#73 #893284
Подскажите, каким образом писать модульные приложения, чтобы была некая оболочка, которая могла скачивать плагины для себя. А также обновлять их. Может есть какие-то книги, тэги по этой теме.
893294
#74 #893294
>>893284
Тебе нужна динамическая зпгрузка разделяемых библиотек. Это совсем несложно, попробуй libltdl. Только там сообщения от ошибках ебанутые. https://www.gnu.org/software/libtool/manual/html_node/Using-libltdl.html
#75 #893296
Есть что-нибудь хорошее, чтобы в stl потренироваться на практике?
#76 #893426
>>893182
Читал. Читать стоит, но выборочно. Алгоритмы нужны точно, локали точно не нужны.
#77 #893498
Аноны, каким образом можно сослаться в реализации метода на самого себя?
Т.е. есть, например, метод
world->Draw(world,1);
Семантически выглядит не очень. Дублирование world как-то не в тему.
893515
#78 #893515
>>893498
Зачем ты передаешь ему самого себя
Вызов нестатического метода уже подразумевает передачу себя (this) по указателю неявным образом.
893520
#79 #893520
>>893515
Велосипедным мастером хочу стать
Разобрался, я до этого this использовал, а надо было *this.
#80 #893635
Анон, как вывести контейнер multimap с конца?
Этот кусок говнокода не работает, хотя при выведении с начала (.begin(); .end(); ++)всё ок.
multimap<unsigned int, string>::iterator curItem;
for (curItem = sortedDict.end(); curItem != sortedDict.begin(); curItem--)
file << (curItem).first << " : " << (curItem).second << endl;
sortedDict соответственно мультимапа
893638893641893652
#81 #893638
>>893635
Какой паршивый синтаксис у плюсов!
У хачкеля намного лучшО.
893641
#82 #893641
>>893635
http://ideone.com/OqAOvP
>>893638
Хачкель хороший язык. Но иногда слишком медленный.
#83 #893643
>>893641

>>Но иногда слишком медленный.


Не похуй ли?
Купят новый I7
893645
#84 #893645
>>893643
Если он хотя бы на уровне явы работал - купили бы. Дык и на i7 тормозить будет.
893650893651
#85 #893646
>>893641
Если нужен функциональный язык не страдающий тормозом головного мозга - всегда есть окамл.
893648893685
#86 #893648
>>893646
Тредов нет. Библиотек нет. С работой на сперме проблемы.

OCaml — хороший язык. Был.
893649
#87 #893649
>>893648
Треды есть, библиотеки есть. Работает на сперме прекрасно, но чтобы накатить сам компилятор с окружением нужно хорошо потрахаться, есть такое.

ИРЛ используется побольше чем хачкель кстати, лол.
898455
#88 #893650
>>893645

>Дык и на i7 тормозить будет.


Что тогда в нём хорошего?
893654
#89 #893651
>>893645
Нужно как для явы, покупать мейнфрейм у IBM.
893654
#90 #893652
>>893635
Обходи не через begin и end, а rbegin и rend
893656
#91 #893654
>>893651
Да нет, яву уже довели до состояния когда можно работать на нормальном домашнем процессоре. И мейнфреймы у них кстати оверпрайснутое гуано.
>>893650
Синтаксис. Можно подрочить на него, можно описать парсер в 10 строк который на других языках займёт несколько сотен, можно сделать парсер метапарадигм.
1 Кб, 340x41
#92 #893655
Кстати, а вот и влияние раста встаём с колен!.
https://msdn.microsoft.com/en-us/library/mt762841.aspx#Anchor_2

Осталось дождаться пока нормально форматировать сообщения об ошибках научатся а ещё выкинут половину языка нахуй.
893672
#93 #893656
>>893641
>>893652
Благодарю
#94 #893672
>>893655
Пусть сначала лямбды научатся форматировать
#95 #893685
>>893646

>не страдающий тормозом головного мозга


Насмешил. К тому же АхВерблюд - это объекто-ориентированная параша похлеще эфшарпа.
893689
#96 #893689
>>893685
Ору с рвущегося довна.

И кстати да - окемл не навязывает никакой парадигмы как и плюсы, в отличие от жав, хачкелей и прочей хуйни.
894015
#97 #893719
>>892722
Кто, интересно, будет смотреть на него?
#98 #894015
>>893689

> окемл не навязывает никакой парадигмы как и плюсы


И как можно видеть на примере C++ и кокамла — "мультипарадигменность" работает плохо. Как и мультикультурализм.
894055894318
#99 #894019
Тоже решил вкатиться в С++. Какую литературу посоветуете, нашел относительно свежий список https://tproger.ru/books/cpp-books-definitive-guide/
Может еще что добавить?
894055
#100 #894055
>>894019
Шапку открой.
>>894015
Забавно от пейсателя кластеров мультипарадигм на хаскелях слышать что-то про "работает плохо", когда мир программирования поделен на мультипарадигменные и несуществующие языки.
894319
#101 #894305
>>893641

>Хачкель хороший язык. Но иногда слишком медленный.


Хочешь делать системые ультрахайлоад приложения с байтоебством вроде движка БД или 10K сервиса - бери pure C и\или Erlang, хочешь делать прикладуху с кучей высокоуровневой бизнес-логики - бери Хаскель и не парь себе мозг байтоебством. Всякие там common языки вроде сиплюсов, жавы и сисярпа - суть одно и то же, неудачная попытка скрестить ужа с ежом, причем непонятно зачем.
894403
#102 #894318
>>894015

>Как и мультикультурализм.


У тебя Гитлер отклеился.
#103 #894319
>>894055

>несуществующие языки


Соси говно, пидор.
#104 #894403
>>894305
Почему для бизнес-логики ты выбрал Хаскель, а не ООП на плюсах, например? И у перечисленных тобой common языков, хотя бы нормальные IDE завезли c профилировщиками и групповой работой.
894456894457
#105 #894456
>>894403

>IDE завезли c профилировщиками и групповой работой.


Не тыкай ножом язву. Им иде с нормальным автокомпилтом до сих пор не завезли, лол.
#106 #894457
>>894403

>не ООП


Я описываю процессы, а не объекты.

>на плюсах


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

>хотя бы нормальные IDE завезли


Да, с этим беда

>c профилировщиками


GHC имеет профилировщик

>групповой работой


К языку это тащемта отношения не имеет.
894464894468
#107 #894464
>>894457
В хаскеле нужно извернуть мозги через зад в рот. Не надо ляля, его система типов с чистотой и траляля создаёт ещё больше проблем чем решает, а поиск утечки с его ленивостью повеселее чем в плюсах. При этом писать негде, тулкитов нету, библиотек относительно плюсов нету, тормозит как залупа (а мы сравниваем с плюсами, которые бегают на уровне си). Будь то опенсорс/коммерческий проект — программистов для него ты не найдёшь.

Вот какой смысл его брать, кроме как подрочить на крутые фичи?
894487894494
#108 #894468
>>894457
Хаскель мне даст хотя бы приблизительный перформанс? Или любая бизнес задача ограничивается на крудом?
894494
#109 #894487
>>894464

>плюсы бегают на уровне си


Не топлю за хаскель, но потоньше будь.
894547894576
#110 #894494
>>894464

>В хаскеле нужно извернуть мозги через зад в рот.


Ты наверно имел в виду в целом ФП?

>система типов с чистотой и траляля создаёт ещё больше проблем


Какие?

>а поиск утечки с его ленивостью


Есть профилировщик хепа.

>При этом писать негде


Выше писал, да с IDE проблемы.

>тулкитов нету


Есть

>библиотек относительно плюсов нету


Ну если бы ты про Erlang так сказал - прокатило бы

>тормозит как залупа


Я выше писал - для хайлода бери pure С. Для прикладных приложений гораздо важней высокая доступность. А проблемы производительность куда проще решаются горизонтальным масштабированием.
>>894468

>Хаскель мне даст хотя бы приблизительный перформанс?


Приблизительный к чему и перфоманс в чем?
894547894576
16 Кб, 660x446
#111 #894497
Бля
#112 #894547
>>894487
Что такое? У нас новый пуревасикдовн у которого конструкторы тормозят?
>>894494

>Какие?


Ну ты открой фп тред, посмотри как там писали najtiElementVMassive подсчёт высоты бинарного дерева. Хороший, годный язык.

>Ну если бы ты про Erlang так сказал - прокатило бы


Про хаскель тоже прокатит. Или у него библиотек уже как у плюсов? вместе с си.

>для хайлода бери pure С


Да нахуя мне твой веб. Нету в вебе понятия "хайлоад" пока ты не гугл/фейсбук. А когда ты гугл — начинаются плюсы где-то у первых был пейпер как это им экономит миллионы.
Вот мне нужно в риалтайме распознавать изображение/выводить йоба-картинку/сделать ин-мемори бд/и тд — мне хаскель сильно поможет? и зачем мне вообще он когда на дворе есть питоны и прочее?

Так же не понятно зачем оно мне при написании верхнего уровня — есть варианты от питона до жвм языков, которые делают хаскель по всем параметрам ах да — твой круд же типобезопасный! Теперь-то заживём!

Алсо, у меня есть опыт поддержки проекта на няшной. И плюсовой код поддерживать несравнимо легче. инб4: кококо 10 этажей шаблонов — в плюсах можно спокойно писать без них, а вот в си такие проблемы не решаются без 10 этажей макросов или еще лучше — кодогенератором сверху.
894588895298
#113 #894576
>>894487
>>894494
Не понимаю, как можно в 2016 писать что-то сложное, как хайлоад на Си. Это бред полнейший. Зачем жертвовать гибкостью и безопасностью ради 1% ускорения?
894588
#114 #894588
>>894547

>как там писали подсчёт высоты бинарного дерева.


Открыл. Никаких проблем, связанных с чистотой или системой типов, о которых ты говоришь, не увидел. Собственно вообще проблем не увидел.

>Или у него библиотек уже как у плюсов?


Более 10000 в репозитории. Маловато?

>Да нахуя мне твой веб.


Не знаю. Я нигде про веб не писал. Ты сам себе что-то придумал и сам себе что-то пояснил.

>ин-мемори бд/и тд — мне хаскель сильно поможет?


Нет, мой дислексичный падаван, чуть выше я писал, что например для движка БД лучше взять C. Хотя на Хаскеле можно и операционную систему написать.

>есть варианты от питона до жвм языков


Мультипарадигменное динамикоговно. Нет спасибо.

>И плюсовой код поддерживать несравнимо легче.


Любишь пердолиться с ромбами?

>кококо 10 этажей шаблонов — в плюсах можно спокойно писать без них


В плюсах можно спокойно писать и без плюсов.
>>894576

>как можно в 2016 писать что-то сложное, как хайлоад на Си.


А на чем нужно? Поясни, бро.
894592894691
#115 #894592
>>894588

>А на чем нужно? Поясни, бро.


На Go.
894687
#116 #894687
>>894592
И чем Go более гибкий чем C?
#117 #894691
>>894588

>Более 10000 в репозитории. Маловато?


http://githut.info/
На одну позицию обгоняет Lua. По мне так количество либ уровня Lua это как-то мало.

>>894588

>Мультипарадигменное динамикоговно. Нет спасибо.


Вполне симпатичный язык. Ты что из этих? Ну кто дрочит на чистоту и метаобъектные манатки? Это говно без задач.
894719
#118 #894719
>>894691

>languages in GitHub


>количество либ


Понятно. А по мне так количество либо ниже уровня JS тоже как-то мало. Шах и мат.

>Это говно без задач.


Ну раз на дваче ниосилятор так сказал - ок.
894722
sage #119 #894722
>>894719

>>ниосилятор


>>C++ слишком сложный



Яснопонятно
282 Кб, 1280x1919
#120 #894932
Была возможность вкатиться в плюсы через фирму, которая занимается написанием софта для трейдеров. Я пропустил годноту?
894934895689
#121 #894934
>>894932
Как минимум проебал самую денежную отрасль в программировании.
894939
#122 #894939
>>894934
Пойду вскроюсь.
895005
#123 #895005
>>894939
Я бы даже сказал, ты потратил весь запас удачи своего рода, который копился в генах твоих предков со времён австралопитеков. Да, ты прав, можешь Роскомнадзор, потому что тебе скоро либо сосуля на голову упадёт, либо даги собьют.
#124 #895084
Анон поясни за (void(⭐)()) - это привидение к типу "указатель на void" ?
895133895136
#125 #895133
>>895084
...........O
...........||\
...........||.\
(void(⭐)())
........../..\
#126 #895136
>>895084
Указатель на функцию, ничего не возвращающую и имеющую 0 аргументов.
895208
#127 #895208
>>895136
Спасибо.
вот для чего нужно было, если чо - (void(*)()) vptr - указатель на функцию в таблице виртуальных функций
895412
#128 #895298
>>894547
При чем тут конструкторы? О чем ты? Посмотри на код среднего C++ проекта и на плюсовый и подумай что именно может тормозить.
895307
#129 #895307
>>895298

>При чем тут конструкторы? О чем ты?


Это мемасик от местного персонажа выгнанного отсюда нахуй пол года назад.

>подумай что именно может тормозить.


Посвяти уж.
Не вижу ничего. Виртуальный функции/RTTI/итд — если в си возникает в них потребность работает точно так же, только работы в 5 раз больше. разве что намного реже удаётся избегать лишних аллокаций в контейнерах и при наследовании.
895315
#130 #895315
>>895307
Идеология кода несколько иная, очень долго чистим эксепшены вместо обработки сообщений по селекту, очень долго сидим в ядре и ждем пока очередное future настанет вместо форка через пайп с месседжем, дергаем семиэтажные IOC контейнеры и прочие DI конструкции с горой виртуальных вызовов, вместо сишных get_component_handle ( COMPONENT_ID ) - подобных разрешений . Это как пример, таких можно много наковырять. Естественно я не про сфероконя и laba1, а про то как реально эти языки применяются.
895323895607
#131 #895323
>>895315
Ты про сфероконя из мира явы/шарпа по большей части и рассказал. Что нибудь из разряда "тормозящего в языке" а не "тормозящего от ява-энтерпрайз-архитектуры" есть?
895336
#132 #895336
>>895323
Ну, язык бессмысленно рассматривать без его применения. Как что-то может "тормозить в языке"?
895342
#133 #895342
>>895336
Ну я потому и написал про сфероконя — не видал я чото бэкэндов с энтерпрайзными архитектурами на плюсах. Повезло видимо.

С другой стороны говорить что язык тормозит только потому что написано "как-то сяк" тоже неправильно.

>Как что-то может "тормозить в языке"?


Ну ты сам как думаешь?
895383
#134 #895383
>>895342

>повезло


Именно.

Язык - это стандарт, стандарт не тормозит. Он бумажный. Тормозят специфические решения свойственные языку. Я выше тебе расписал примеры, если остановиться на чем-то одном: нынешний подход в плюсах к потокам на практике значимо медленнее того, что обычно используется в си. Сравни производительность решения на селекте с коллбеком и RAI решения с future. Естественно в плюсовых проектах используется зачастую первый подход когда появляется необходимость в производительности, но это решение проблемы, а не факт ее отсутствия.
#135 #895412
>>895208

>если чо - (void(*)()) vptr - указатель на функцию в таблице виртуальных функций


Штобля?
895519895922
#136 #895519
>>895412
Чему ты удивляешься? Я же писал, что он наркоман.
895922
#137 #895607
>>895315

> дергаем семиэтажные IOC контейнеры и прочие DI конструкции с горой виртуальных вызовов


"IOC" и "DI" можно реализовать и на C (только там вручную и через жопу), и работать они на обоих языках будут с одинаковой производительностью. Такой подход в C++ применяется не сильно чаще, чем в C, и там, где он действительно оправдан. Сейчас мейнстрим разработки и идеология - метапрограммирование и ехал темплейт через темплейт, а не энтерпрайз.

> Сравни производительность решения на селекте с коллбеком и RAI решения с future.


Какой селект с коллбеком? При чем здесь RAII? И почему надо сравнивать future, а не, скажем, lock-free структуры данных, если речь идет об организации работы потоков?
895674
#138 #895624
переопределение стандартных операций == перегрузка стандартных операций?
895628
sage #139 #895628
>>895624
Нет.
#140 #895674
>>895607

>первая часть


Что сказать то хотел?

>lock-free


Это отдельная тема, смысл ее затрагивать? я говорю про специфичные для языков подходы. Я сравниваю параллельное выполнение а не атомарный доступ, это скажем так, принципиально разные вещи.
895792
#141 #895689
>>894932
И как контора называлась?
#142 #895702
Почему у меня одна строка в проге не переведена?
Суть: C++/Qt5, в *.ts файле переведёно всё (включая ту самую строку), lupdate/lrelease делал перед сборкой (он автоматически выполняется), но несмотря ни что одна из строк на форме не переведена.
Что это вообще может быть?
895740
#143 #895740
>>895702
Всё, я разобрался.
Оказалось я не туда обновлённый .qm файл клал и использовался старый
#144 #895792
>>895674

> Что сказать то хотел?


Хотел сказать то, что и сказал - "про специфичные для языков подходы". Ты утверждаешь, что для C++ специфично писать IOC. Так вот, это неправда.

> Это отдельная тема, смысл ее затрагивать? я говорю про специфичные для языков подходы


И я про них. Специфичный для C++ подход - взять готовую библиотеку, которых для lock-free несколько.

> Я сравниваю параллельное выполнение а не атомарный доступ


Ты вообще непонятно что сравниваешь. Накидал терминов для той и другой стороны без упоминания конкретной задачи.
#145 #895922
>>895412
http://kaisar-haque.blogspot.ru/2008/07/c-accessing-virtual-table.html

>>895519
Может это ты наркоман? Где ты написал, что я наркоман, дебил блять?
895976
#146 #895976
>>895922
Что мне должна дать эта ссылка, довн? Ещё больше убедить в твоей неадекватности?

Даже если в данном ABI вызов member-функций не отличается от вызова обычных функций (прост опервым параметром идёт this), то тип у функций, на которые указывает vtable, никак не (void())
#147 #896024
Class Base
{//содержимое}
int main()
{
Base *p;
}

При таком объявление у создаётся объект пользовательского типа Base и доступ к нему осуществляется через указатель? Или я через указатель обращаюсь к классу?
896030896116
#148 #896030
>>896024
Или я говорю, что указатель *p типа данных Base.
#149 #896116
>>896024
Указатель на класс вижу, объекта пока не наблюдается. Вот если бы было
Base p = new Base();
или
Base
p;
p = new Base();
тогда объект.
896119896131
#150 #896119
>>896116
Я понял уже.
Это указатель пользовательского типа данных
#151 #896131
>>896116
Может быть ты имел ввиду
Base* p = new Base();
или если без new
Base p;
896305
#152 #896190
Анон, где можно почитать о "переопределение стандартных операций"
896191
#153 #896191
>>896190
Нигде.
896193
#154 #896193
>>896191
Чаму?
896214
#155 #896214
>>896193
Тому що нет такого.
896218896227
#156 #896218
>>896214
не не нравится как он пишет

http://ad.cctpu.edu.ru/cpp/glava21_1.htm
#157 #896227
>>896214
Вот нашёл
http://www.amse.ru/courses/cpp2/2010_11_22.html

Он свои названия придумает что ли...
#158 #896305
>>896131
Именно так. Блядская макаба.

И еще, в первом случае с new, объект создается в куче, и при завершении области видимости, не могу вспомнить, вызывается ли деструктор. Во втором случае, без new (если еще и без звездочки), объект создается в стеке, и для него при завершении области видимости вроде бы должен деструктор вызываться.
896392896409
#159 #896392
>>896305
Студент?
#160 #896409
>>896305
Для всего, что выходит из области видимости, вызывается деструктор.
896412896413896428
#161 #896412
>>896409
Не пиздишь?
Мне тут один писал, что при этом происходит утечка памяти

Деструктор вызывается при использовании умного указателя
#162 #896413
>>896409
Не пиздю.

Но ты не понимаешь, что выходит из области видимости. На это и был мой расчёт.
896415
#163 #896415
>>896413
Объект типа Base
896418
#164 #896418
>>896415
Указатель у тебя вышел из области видимости, а объект как был в куче, так и остался, только теперь на него никто не ссылается.
896422
#165 #896422
>>896418
Нет, если у тебя указатель на тип Base в нем объявленые простые типы, то память освободится нормально. Но, если у тебя там еще что-то динамическое, то нужно писать свой деструктор с delete'ми, чтобы освободить все динамическое. Поправьте если ошибаюсь.
896441
#166 #896428
>>896409
Но если запустить этот код, то получается что нихуя она сама не освобождается.
int main() {
int b;
{
int
a = new int;
a = 5;
b = a;
}
cout <<
b << endl;
b = 2;
cout <<
b << endl;
system("pause");
}
Результат 5 и 2
896429
#167 #896429
>>896428
быстрофикс
int main() {
int b;
{
int
a = new int;
(a) = 5;
(
b) = a;
}
cout << (b) << endl;
(
b) = 2;
cout << (*b) << endl;
system("pause");
}
Результат 5 и 2
896438
#168 #896438
>>896429

auto a = std::make_unique<int>(5);
#169 #896441
>>896422
Как же ты заебал. Эта тема тут обсасывалась уже десятки, если не сотни раз.
Если ты делаешь объявление переменной:

>> Base *p;


то в таком случае, при выходе переменной p из области видимости ничего не произойдет, кроме высвобождения куска памяти под указатель размером size_t байт.
Если ты не пользуешься умными указателями, деструктор тебе необходимо вызывать вручную, потому что иначе память под ОБЪЕКТ будет висеть без ссылок и освобождена не будет. Автоматически освободится только память под УКАЗАТЕЛЬ.
Память, на которую ССЫЛАЮТСЯ УКАЗАТЕЛИ не освобождается сама.
896444
#170 #896444
>>896441
Спасибо что прояснил
#171 #896465
>>892147 (OP)
Порадовало обилие литературы в шапке, в отличие от шапок с другими языками. Буду читать.
#172 #896504
Анон , подскажи как перейти на компелируемый C++ после приятных интерпритируемых змей ? Может литературки подкинете , или тип того.
#173 #896532
>>892147 (OP)
Есть ли смысл НЕ использовать using namespace std? Те какой вв этом профит и чем вредно то, что я его постоянно использую?
896548896549
#174 #896548
>>896532
Дело в том, что ты можешь подрубить какуе-нить либу в которой будет такое же имя класса или объекта как в std, ну тогда получится передкларирование, ошибка.
896557
#175 #896549
>>896532
Пространства имен создали, чтобы изолировать множества имен друг от друга.
Использование директивы `using namespace abc` позволяет обращаться к именам пространства имен abc без указания этого самого пространства имен (например, если указывать using namespace std, то векторы можно объявлять уже при помощи vector<...> а не srd::vector<...>), как минус - возможная коллизия имен. В глобальной области видимости такой хуйней заниматься не советуют (а если ты залепишь такую штуку где-нибудь в начале одного из заголовочных файлов своей программы, опять же в глобальной области видимости, то искать этот косяк будет еще веселее, когда ты про него забудешь и увидишь воочую коллизию имен).
А вообще, в теле функции, да, можно, я так сам часто делаю, когда мне лень писать префиксы.
896558
#176 #896550
Как подключить библиотеку glaux к проекту? В примере говорят что нужно положить glaux.dl в корень проекта, и в dev-cpp в линкере указать -lglaux. Но в итоге выходит undefined reference to `auxSolidTorus'. Как сделать чтобы это говно нашло что ей нужно и запустилась?
#177 #896557
>>896548
Спасибо тебе!
#178 #896558
>>896549
Спасибо!
#179 #896692
Антоши, есть одна windiws form, там рисунок(многоугольник), нужно этот рисунок закрасить. На сколько я понял нужно просто передать координаты точек в FillRegion, но бля, как я не изгаляюсь - шлёт меня нафиг, а в инете примеры с прямоугольнами/треугольниами и там на этом всё и завязано. Как же передать эти точки?
#180 #897163
Аноны, в каком случае функция void operator a()
Не имеет параметров?

Мне желательно её сделать без параметров как член класса
897171897174897733
#181 #897171
>>897163
Она не имеет параметров когда не имеет, лол, что за тупой вопрос?
897204
#182 #897174
>>897163
Оператор без параметров?
897184897204
#183 #897184
>>897174
И да, и нет.
Правильный ответ - функция-элемент "операторOP()" без явных параметров. Т.к. неявно все равно по ссылке передается вызывающий объект.
897192
#184 #897192
>>897184
Ах ты ж блин, про скобки забыл. Спасибо.
#185 #897204
>>897171
>>897174

Компилятор говорит:
"слишком мало параметров для этой функции оператора"
897206
#186 #897206
>>897204
Ты точно operator()() пишешь?
897209
#187 #897209
>>897206
void operator % () - не работает
void operator % (&pes) - Работает

Ещё не получается передать более 1 параметра
897212
#188 #897212
>>897209
Так ты спрашивал про % а не ()? /0
Ясен хуй что у оператора % не может не быть аргументов/больше одного, сам подумай почему.
897214
#189 #897214
>>897212
Начинает доходить

А у каких операторов не будет параметров?
897219
#190 #897219
>>897214
Только () и [].
897222
#191 #897221
https://ru.wikipedia.org/wiki/Операторы_в_C_и_C++ - справка справка по всем оператором, на русском с примерами.
897223897224
#192 #897222
>>897219
! и ()

[] - нужны параметры
#193 #897223
>>897221
Спасибо
#194 #897224
>>897221
Какой же все таки нищенский язык.
#195 #897404
Робяты, дайте советоу.
Хочу написать свою игру, по типу VN. Хочу именно на С с классами, так что RenPy не советуйте. А посоветуйте лучше каким графонием обмазаться. Пока смотрю на curses (для моего нище ноута) и SDL. Но рынок мной не до конца изучен, может есть что то что я не учел.

Второй вопрос, упарывался ли кто TDD на плюсах? Как? Чем ? Подводные камни?
897428897467897709
#196 #897428
#197 #897467
>>897404

>А посоветуйте лучше каким графонием обмазаться.


Каким ещё графонием? У тебя картинка с квадратиком и текстом, это даже на голом opengl в пару строк делается.

Чем тебе так всрались плюсы для такой хуйни — понятия не имею зато мысленно покатываюсь когда вижу что вместо перехода на какую-то ветку сюжета игра падает нахуй. Алсо, если всё же хочешь плюсы, но лень самому всё рисовать и писать совсем низкоуровенную еботу вроде менеджера ресурсов — посмотри на тот же Qt можешь даже на QML если анальной ненависти к жс-подобному говнецу нету.

TDD — это в первую очередь о динамических языках, в которых всегда нужно знать что вернёт функция (в т.ч. особенно её тип), и во вторую очень высокоуровенный, когда сделать ошибку в самой функцие а не алгоритме достаточно сложно. В статических, и тем более низкоуровенных языках мягко говоря бесполезна, как и остальные юнит тесты. Обычные ассерты помогают отловить куда большую часть ошибок. А дальше помогут только полноценные функциональные тесты с тестировщиками.
#198 #897709
>>897404
cocos2D-x
46 Кб, 1412x619
#199 #897714
Сап аноны. Животрепещущий вопрос. Знаю кресты на уровне T ptr = new T(); delete T;
Хочу вкатиться в современные плюсы. Как у вас сейчас модно передавать параметры? Пытался разобраться с пикрелейтедом,
сложна. То есть сейчас по старинке писать f(const T&)? И что за хайп по owner<T> уже прошел, не надо так делать?
897733897770
#200 #897733
>>897714
Тут один студен сидит >>897163
#201 #897762
Почему в GCC и libc++ std::array<T, N>iterator и T-указатель это одно и то же, а в MSVC++ - нет?

Куда комитет смотрит? Это СТАНДАРТНАЯ библиотека. Каждый блядский компилятор все делает по-своему.

Теперь я понимаю, почему так популярны толстые буст и Qt.
897769897779
#202 #897769
>>897762
Что такое одно и то же в твоем понимании? Неявный каст? Детали внутренней реализации?
897778
#203 #897770
>>897714
move тебе нужен только тогда, когда у тебя определен конструктор &&. Т.е. у тебя там нетривиальный конструктор: память, например, выделяется и еще че нить.
Хотя я сам не уверен
#204 #897778
>>897769
В буквальном смысле, в GCC, например, там просто typedef value_type звездочка iterator;
И когда я объявляю метод возвращающий итератор, как указатель, он не ругается, а MSVC ругается.
897782
18 Кб, 572x140
#205 #897779
>>897762

> Почему в GCC и libc++ std::array<T, N>iterator и T-указатель это одно и то же, а в MSVC++ - нет?


Потому что так можно.

> Каждый блядский компилятор все делает по-своему.


Имеет право.

> Теперь я понимаю, почему так популярны толстые буст и Qt.


Ну давай, расскажи, что ты там понял.
#206 #897782
>>897778

>И когда я объявляю метод возвращающий итератор, как указатель, он не ругается, а MSVC ругается.


Так это метод, возвращающий итератор или указатель? Определись.
#207 #897786
Собственно начал учить кресты, потому что не хочу клепать сайты и мобильные аппы, но теперь вопрос, в какие области нужно копать помимо с++?
897788897796
#208 #897788
>>897786
В плане, где востребованы плюсовики
897791
#209 #897791
>>897788
В гей-шлюхи.
897800
#210 #897796
>>897786
Делаю на c++ сайты и мобильные аппы. Ха-ха. Блять.
897800
#211 #897800
>>897791
нет
>>897796
Но вроде как сайты на скриптах пишут, а мобильные на джаве и свифт, я что-то не понимаю
#212 #897808
Есть один вопрос, как создать инициализировать объект другого класса в конструкторе другого

Грубо говоря есть класс:

class foo {
private:
int x;
public:
foo(_x) { x = _x;} //тут все ок

}

И второй

class bar {
private:
foo x;

private:
bar(int _x) { x(_x); } //вот это падает с ошибкой.

}
897810897811
#213 #897810
>>897808

public* где функция во втором классе фикс
#214 #897811
>>897808
member initialization list
897812897847
#215 #897812
>>897811
thanks
#216 #897847
>>897811
Я почитал конечно, но все таки почему нельзя просто создавать экзкмпляры других классов, как например в джаве без костылей, типо объявил T x, как поле класс и потом в конструкторе сделал x = new T(парамс)
897851897852
#217 #897851
>>897847
Все разобрался, нужно было просто через указатели сделать.
#218 #897852
>>897847
Когда начинает выполняться тело конструктора, то все члены уже инициализированы.
Если хочешь инициализировать их — в initialization list.
897892
#219 #897892
>>897852
Ок, но через указатели все заработало внезапно, когда полем сделал указатель на объект класса и в конструкторе как раз сделал T x = new T(params) или это плохая практика?
897898
#220 #897897
template < class T > // Т-параметр шаблона;
class vector {
T *pv; // одномерный массив;
int size; // размер массива.
public:
vector(int);
~vector() { delete[]pv; }
T & operator [ ] (int i) { return pv; }
//. . .
};
template < class T >
vector < T >::vector(int n) {
pv = new T[n];
size = n;
}

Аноны, почему он использует пользовательский тип параметра вместо typename?
898007
#221 #897898
>>897892
Смотря что тебе нужно.
#222 #898007
>>897897
Ты о `class T` ?
Так это не пользовательский тип а объявление того, что параметр шаблона T должен быть классом.
898016
#223 #898016
>>898007
А класс это не описание пользовательского типа данных?

Вообще разобрался. Это из-за того, что typename раньше не было и пока допускается такая запись
898060
#224 #898060
>>898016
Хм, действительно. Я вот до этого момента как-то не задумывался даже.
#225 #898101
Сап, двощ. Кто нибудь вообще знает более-менее вменяемые гуй-библиотеки на плюсах, которые не требуют кучу $ за коммерческое использование? Желательно кроссплатформа и функционал больше чем отрисовать окошко и кнопочку. А если таковых нет...
898206898707
#226 #898206
>>898101
gtkmm
wxwidgets
fltk
Ну а вообще, насколько я знаю, можно динамически линковать Qt и слать всех нахуй, потому что LGPL.
898223
#227 #898217
Хочу скачать слайды САМОГО, но не могу, помогите
https://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Keynote-Bjarne-Stroustrup-Cpp11-Style
898220
#229 #898223
>>898206
gtk — жопаель.
wx и fltk — что-то уровня mfc, чесслово.
В куте меня смущает что часть библиотек под жопаелью, а так же там несколько редакций LGPL. Кстати, они что, берут деньги только за поддержку?
898252898269898713
#230 #898231
>>898220
Слоников на 3-м и 4-м слайдах в зеленый покрасить надо было.
#231 #898251
Сап, крестаны.
Кто нибудь умеет в опенгл хотяб на уровне хелловорлда?
898270
#232 #898252
>>898223

> Кстати, они что, берут деньги только за поддержку?


Коммерческая версия же, плюшки из которой попадают в опенсорц только через несколько релизов.
#233 #898269
>>898223
http://licenseit.ru/wiki/index.php/GNU_Lesser_General_Public_License_version_3

Как-то так. Посмотрел с англицкой версией LGPLv3, перевод, вроде бы нормально. Естественно, все лицензии ты должен приложить
#235 #898276
>>898270
Окай.
898284
#236 #898284
>>898276

>последнее сообщение год назад


Блять.
#237 #898352
Аноны, нужен совет

Есть класс Nvector

В нём массив

Требуется в оператор передать числовое множество(или список. Не знаю как правильно) {1, 2, 3} в operator = ()

Не знаю, что в скобки вписать чтобы он его принял
898414898441
#238 #898414
>>898352

ЯННП.

Наверное, это пишется не так: {1,2,3), a Nvector(1,2,3) (если конструктор написан правильно) - то есть, ты хочешь создать Nvector из этих чисел и использовать его.

Или твой конструктор может принимать std::vector из чисел, тогда будет так: Nvector(std::vector<int [или что там у тебя](1,2,3)).

В первом случае ты будешь маяться с variadic arguments (http://stackoverflow.com/questions/28866559/writing-variadic-template-constructor) , во втором - будешь тыкать вектор.
898430
#239 #898430
>>898414
в с++11 std::vector можно инициализировать так
std::vector<int> mem = {1,2,3};
http://en.cppreference.com/w/cpp/language/list_initialization
898433
#240 #898433
>>898430
>>в с++11
Его самому надо написать
#241 #898441
>>898352

#include <initializer_list>

class Nvector {
Nvector(std::initializer_list<int> list) {
...
}
}
898574
#242 #898455
>>893649
Тредов таки не завезли, вернее завезли, но на одном ядре. Окамль не умеет в multicore.
Хотя что то пилится, но что хуй пойми.
Такие дела.
Но сам по себе язык охуенный и довольно быстрый, если компилируемый.

>ИРЛ используется побольше чем хачкель кстати, лол.


Хачкель не используется вообще нигде.
А на окамле пишется куча компиляторов, например компилятор Rust изначально был написан на нем.
Из крупных дохуя продакшн он используется в Xen'е
Пруф:
https://mirage.io/
https://github.com/mirage
898460
#243 #898460
>>898455

>Окамль не умеет в multicore.


Окамл-то может во всё, это то же самое что написать, мол, на плюсах до тредов в стд не было способа паралелить код.

>Хачкель не используется вообще нигде.


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

Думаю, стоит закончить минутку флуда т жизни в человеческих языках, пока кресторабы не забили насмерть.
900440
#244 #898574
>>898441
Спасибо
Чуть позже попробую
#245 #898592
>>892147 (OP)
чего книги из шапок не открываются?
898615
#246 #898596
Какую бесплатную иде под линукс убунту посоветуете для кресты? Эклипсе? нетбинс у меня будет занят пхп и жавой.
898615899141899627
#247 #898615
>>898592
Самое начало шапки попробуй осилить.
>>898596
QtCreator.
898619
#248 #898619
>>898615

>>QtCreator.


Он жеж платный и за комерческое использование надо платить
898621
#249 #898621
>>898619
В каком-то параллельном мире, да?
319 Кб, 1007x1351
#250 #898688
Продолжаю изучать С. Прата - "Язык программирования С++. Лекции и упражнения, изд. 4".
Дошел до абстрактного типа данных "Очередь (Queue)". И не могу разобраться в одном моменте из примера удаления элемента из начала очереди (см. пик). Может кто объяснит эту строчку кода?

P.S.: Попутно передаю привет издательству Вилльямс за перевод 6го издания, у которых "оператор" вдруг становится "операцией", а "бит - это набор единиц..." (в оригинале units of...). И за этот перевод они просят 2-3 килорубля.
898699898701
#251 #898699
>>898688
Что зачем? Ты вдруг ты захочешь как-то распорядиться удаленным элементом?

По идее, этот метод должен возвращать Item а не bool, а для индикации ошибки делать или ассерт(как в Qt) или дропать исключение (как в stl). Но тут сделали так.
898702898772898807
#252 #898701
>>898688

> примера удаления элемента


Это не только удаление, но и возврат элемента вызывающему.
898772898807
#253 #898702
>>898699

>По идее, этот метод должен возвращать Item а не bool, а для индикации ошибки делать или ассерт(как в Qt) или дропать исключение (как в stl)


Или возвращать optional.
#254 #898707
#255 #898713
>>898223

> В куте меня смущает что часть библиотек под жопаелью, а так же там несколько редакций LGPL.


В куте множественное лицензирование, GPL/LGPL/проприетарка.

Так что твой вариант - Qt. Ах да, это еще и самая лучшая гуй-платформа вообще.
#256 #898772
>>898699
>>898701
Все равно непонятно. Объясните на пальцах. Что нам мешает удалить элемент без item=front->item?
898779898792
#257 #898779
>>898772
Ты дурак что ле? Ничто не мешает, но тогда ты не получишь экземпляр удаляемого элемента. А эта операция называется "получить первый элемент и удалить его из списка". Вытолкнуть в простонародье.

Типо как ты достаешь жевачку из пачки орбита - ты достаешь экземпляр для своих целей (сожрать), а в пачке эта подушечка исчезает. То что ты предлагаешь - просто достать ее и выбросить, не имея возможности сожрать.
898807
#258 #898792
>>898772
Ничего.
#259 #898802
>>892147 (OP)
Планирую с НГ начать учить С++ и делать свою простую игру.
898829
#260 #898807
>>898779
>>898701
>>898699

>Ты дурак что ле?


Да вы сами ебланы. Вы блядь не могли сказать, что очередь - не самоцель. И что объекты из очереди берутся именно для того, чтобы над ними произвести какие-то действия.
898809898813
#261 #898809
>>898807
Ты че ебанутый? Тебе именно это и сказали.
#262 #898813
>>898807
Дэбыл. Часто контейнеры для данных нужны как "самоцель"?
#263 #898829
>>898802
Лучше бы рефлексию планировал
#264 #898843
Есть ли какие-нибудь годные сертификаты по плюсам?
898964899334900462
#265 #898964
>>898843
Нахуй тебе сертификат? лучше норм портфолио на гитхабе иметь
899325
15 Кб, 440x660
#266 #899052
Есть типичное ромбовидное наследование пикрил
У B есть метод MethodB, виртуальный
Творим такое:
A a = new A();
D
d = a;
Как из переменной d вызвать MethodB, акромя использования dynamic_cast?
#267 #899063
>>899052
Не знаю.
#268 #899070
>>899052
быстрофикс:
A a = new A();
D
d = a;
Ну а дальше вопрос тот же
899075
#269 #899075
>>899070
Ответ тот же.
#270 #899138
>>899052
Используя static_cast.
#271 #899141
>>898596
KDevelop.
899151
#272 #899151
>>899141
Редкостное говнище, как и весь KDE—шофтваре.
899172
#273 #899155
Анон, помоги. Есть таблица с использованием Unicode символов при её выводе через cout все символы заменяются на знаки вопроса, как это исправить?

некоторые из символов, которые я использую
#274 #899156
>>899155
хех, они и тут не отобразились(
899161
#275 #899161
>>899156
хех
4 Кб, 600x188
#276 #899163
>>899155
вот символы
#277 #899165
899167899171
#278 #899166
hell yea
#279 #899167
>>899165

>wcout


Ненужен.
#280 #899171
>>899165
не помогло(
#281 #899172
>>899151
Гномопидор бомбанул разорваным очком.
899277
#282 #899174
>>899155
Для начала - чем выводишь? встроенным логгером в IDE, или все плохо и прям в если у тебя сперма - в ее сосноль?

С другим утф работает? В частности с русскими буквами?
899178
#283 #899178
>>899174
Вывожу через локальный отладчик(консоль). С русскими буквами - работает.
#284 #899245
>>899155
Если под виндой
#include<io.h>
#include<fcntl.h>

_setmode(_fileno(stdout), _O_U16TEXT);
#285 #899277
>>899172
Пока голая DE из коробки не перестанет лагать (причём на хорошем железе, что как бы намекает) можешь пососюкать писю.
899280
#286 #899280
>>899277
kdevelop лагает, конечно да, но лагает и qtcreator
899289
#287 #899289
>>899280
Претензии к кедам а не к ним были. Им до лагов ещё надо хотя бы треть функционала той же идеи выполнять научится.
899300
#288 #899300
>>899289
Это кстати очень похоже на байт от гугла: они выпускают язык, пиарят его, мол, позволяет экономить на железе, а сами реализовывают идеи быстрее чем модные стартаперы с го и имеют с этого хороший профит.
899302
#289 #899302
>>899300

>то самое чувство, когда промазал мимо сральника го-треда

#290 #899325
>>898964
Как сделать норм портфолио на гитхабе за короткий срок?
#291 #899334
#292 #899536
Пишу курсач на С++, компилирую через clang++ 4.0
Задача - просто выводить на экран текстуру.
Решил быстренько сделать это через opengl, но вообще не понимаю, как прикрутить glfw или sdl - готовые бинарники обычно скомпилированы для vs или mingw, да и хуй его вообще поймет как заставить линковщик их подхватить.
Пытался собрать из исходников с помощью cmake, но эта срань не видит clang и пытается собрать для msvc.

Если использовать либы для msvc15, и в коде написать
#pragma comment( lib, "glfw3" )
#pragma comment( lib, "glfw3dll" )
то получаю огромный список unresolved external symbol.

Что делать, как быть?
899539899543907986
#293 #899539
>>899536
Отклеилось:
код: pastebin.com/P1nRWcvh
ошибки: pastebin.com/9z49Pvqz
как лежат файлы:

-main.cpp
-glfw3.dll
-glfw3.lib
-glfwdll.lib

-GLFW
---glfw3.h
---glfw3native.h
#294 #899543
>>899536
У GCC (он же миниговны) и MSVC разные манглеры имен (да и форматы либ тоже), так что тут нужно точно знать для чего у тебя либы.
Алсо, посмотри чуть-чуть CMake, емнип, на нем GLFW3 собирается нормально, будет проще, чем вот разбирать твою хуйню.
#295 #899627
>>898596
CLion.
#296 #899645
Cкажите, правильно я написал про signal/slot в QT или нет.

"Сигнал" - это вовсе не сигнал (какой придурок его так назвал?), а заголовок функции, который привязывается с помощью QObject::connect к существующей функции или методу, одному или нескольким, каждый из которых вызывается с теми же аргументами, с которыми выпущен сигнал.

При этом ввиду кривости языка C++ connect принимает не два аргумента (сигнал и слот, выраженные через объекты, которые связываются), а четыре (ссылки на объекты и ссылки на сигнал и слот).
899669900708
#297 #899669
>>899645
В 80-е шпана била лампочки по подъездам и привязывала кошкам консервные банки к хвосту.

В XX1-м веке у шпаны появились компьютеры и она привязывает заголовки функций к существующим функциям или методам.

Что ж, хоть лампочки и кошки целы.
899746
#298 #899670
>>892147 (OP)

>Не позволяй плюсовику плюсится.


>Не позволяй ... плюсится.


>тся


Типикал деC++шник.
#299 #899671
Привет, мейлач. Можете гнать ссанными тряпками, я пойму, но интересует ответ на один вопрос. Вкатится в кресты решил ради одного эксперимента, сам до этого нихуя толком не изучал. Как-то пытался что-то сделать на PHP, дальше простенького кредитного калькулятора не ушел.

Суть вопроса: допустим, чисто теоретически, есть один пользователь. После всех приемов соц. инженерии, вы понимаете, что у вас есть возможность заставить человека запустить какой-то файл ровно один раз и ни разом больше. Цель: получение полного доступа к файлам компьютера, вебкамере, микрофону и т.д.

Что уже понятно: вы не будете использовать какие-то известные трояны, ratы и прочую залупу ибо раз они побывали в общем пользовании, то в 99% случаев палятся антивирусами. И вот вы решаете писать что-то самостоятельно, обладая нулевыми начальными навыками. Чтобы написать полноценный ратник уйдет охуенно большое количество времени, поэтому нужно более простое и быстрое решение. Какой бы вы выбрали путь? Т.е. что именно вы бы попробовали написать?

Мне в голову пришла только одна идея: написать какие-то ворота так скажем, какую-то простую утилиту, которая после установки человеком даст вам очень простой функционал: прием и запуск любых файлов с правами администратора на зараженном компьютере. Такая утилита помогла бы установить какой-нибудь кейлогер, какой-нибудь файловый менеджер с откликом на отдельный ip, какую-нибудь программу для трансляции с вебкамеры и т.д.

Собственно вопрос: я ебанулся и это нихуя не простая утилита получится, которую тоже охуенно долго писать придется? Есть какие-то более простые способы? Что бы ты выбрал, анон?
#300 #899672
>>899671
Лучше к ОГЭ готовься.
899676
#301 #899676
>>899672
Тебя не спросил, что мне лучше.
#302 #899679
>>899671
Современные бесплатные антивирусы уже давно юзают поведенческий анализ.
Им все-равно публичный бэкдор или нет, но если они видят, что это чудо тянет свои ручонки к вводу/выводу системы, они отрубают ему руки и рапортуют юзеру об очередном наглеце.
Платные антивирусы еще и анус досматривают.
899680
#303 #899680
>>899679
Спасибо за ответ, тогда переосмыслю свои желания, отрекусь от идеи и пойду лучше в дотку катать.
#304 #899684
>>899671

>Какой бы вы выбрали путь? Т.е. что именно вы бы попробовали написать?


Как раз пишу ратник, сейчас пилю келоггер на основе RegisterRawInputDevice. Самое сложное, видимо, будет написать графическую оболочку для админки (наверно, буду юзать кьюте) и свой сетевой протокол для более удобного получения инфы.

>Современные бесплатные антивирусы уже давно юзают поведенческий анализ.


Обламывается же антиэмуляцией, не? Во всяком случае, мой криптор позволяет бес палева запускать всякие спидораки. Как еще можно повысить беспалевность?
899685899687
#305 #899685
>>899684

>бес палева


Блять, проиграл с опечатки, сотона.

Алсо, что еще можно предусмотреть для успешности back connect'а?
#306 #899686
>>899671

>вы не будете использовать какие-то известные трояны, ratы и прочую залупу ибо раз они побывали в общем пользовании, то в 99% случаев палятся антивирусами


У меня кейлоггер на основе лоулвл-хука и raw input палился уже после компиляции в релизе, так что остается только криптовать.

Алсо, читали, какая дыра была в К. Спермском, благодаря которой raw input кейлоггер перехватывал данные даже из защищенного окна с виртуальной клавиатурой?
#307 #899687
>>899684
Насчет крипторов тоже кстати искал тему. Ну изначально я смотрел в сторону самых свежих паблик ратов + криптора, но потом читал и читал форумы, еще раз читал и читал форумы, как итог понял следующее: паблик раты палятся, сильно и всеми палятся, дико ненадежные и отваливаются очень часто + вещают на сторону ибо постоянно с чем-то склеены, а паблик крипторы тоже палятся + еще и убивают стабы ратов часто так, что от него толку становится 0, он просто не установится.

Если есть какой-то отдельный тред для обсуждения подобной хуйни, я б перекатился, чтоб вам не засирать тут не по теме, но что-то при беглом взгляде не нашел ничего подходящего.
Все тот же кун с вопросом
899689
#308 #899689
>>899687

>а паблик крипторы тоже палятся + еще и убивают стабы ратов часто так, что от него толку становится 0, он просто не установится


Ибо надо писать рантайм криптор, а не пидорасить экзешник.
899691
#309 #899691
>>899689
Я правильно понял, что это криптор который будет вшит в тело программы и запускаться будет раньше основных функций программы, чтобы водить антивирусы за нос?
899693
#310 #899693
>>899691
Распаковка программа в памяти и запуск тоже в памяти. Гугли RunPE, LoadPE, LoadDLL.
899698
#311 #899698
>>899693
Бегло погуглил и понял, что я от этого вообще очень далек. Эх, хуй с ним, может удастся найти какого-нибудь человека, который за небольшое количество шекелей реализует мою затею.
899702
#312 #899702
>>899698
За большое количество шекелей сделают. Алсо, нормальный ратник одному написать тяжело, а сделать народную малварь всем форумом не получится, ибо командная работа обязательно развалится. Так что давай сам учись.
#313 #899746
>>899669

Одно журацкое слово вместо другого, в чём разница?
2 Кб, 736x48
16 Кб, 611x249
103 Кб, 1152x667
#314 #900366
Есть пик 1 и код, с пик 2.
Что я делаю не так, антош? Помоги :3
900371900383900852
#315 #900371
>>900366
У тебя textBox2_p не определён в текущем контексте. Перед ним ещё что-то должно быть.
900378
#316 #900378
>>900371
Например что?
900381900382
#317 #900381
>>900378
p.s. Во всех примерах пишут именно так и всё работает, а тут ...
#318 #900382
>>900378
Это зависит от того, что такое textBox2 и что из себя представляет sender. Там, наверно, должно быть что-нибудь вроде static_cast<MainWindow1>(sender)->textBox2 ... Неужели нигде нет подобного участка кода, чтобы посмотреть, как там обращаются с подобными объектами?
900384
sage #319 #900383
>>900366
Это не C++, так что изволь удалиться отсюда.
900385900785
15 Кб, 848x423
#320 #900384
>>900382
Ну вот есть подобный участок кода.
textBox2_p это элемент windows forms, строка в которую юзер вводит данные, ну и мой код, который вызывает ошибку, я прописываю в кнопку.
900406900407
#321 #900385
>>900383
А что же это?
900426
#322 #900406
>>900384
Ну, попробуй ui->textBox2_p->Text
900410
#323 #900407
>>900384
А что за _p вообще на конце? может, просто textBox2->Text ? Или this->textBox2->Text хули тут думать прыгать надо
900410
#324 #900410
>>900406
То же самое...
>>900407

>_p


Это просто буква "р" на конце, не суть ведь.
Как ни странно, но ничего из этого не работает, всё та же ошибка. Может ещё где-нибудь копнуть?
900411
#325 #900411
>>900410
Где это определяется? ты можешь объявление textBox2_p в классе найти?
900461
#326 #900426
>>900385
Это clr-залупа с похожим синтаксисом для биндингов.
#327 #900436
>>899052

Используй mega_cast.
#328 #900440
>>898460

>Окамл-то может во всё


Да не может он в multicore, это самый недостаток ocaml

>Ты сейчас удивишься, но используется


Ты сейчас удивишь, но не используется нигде.
#329 #900450
стоит ли смотреть ковыряться в с++ для расширения кругозора? или сразу раст пробовать?
мимо джава-миддл
900451
#330 #900451
>>900450
Для расширения кругозора лучше сразу Хачкель, после него расты, шарпы, свифты и современные кресты гораздо лучше пойдут.
#331 #900459
>>899671
то что ты описал, это функционал дроппера
а не полноценного ратника
8 Кб, 587x140
#332 #900461
>>900411
Как-то так.
900465
#333 #900462
>>898843
stepik.org/course/Подготовительная-программа-по-программированию-на-СC++-144
stepik.org/course/Углубленное-программирование-на-CC%2B%2B-153
stepik.org/course/Многопоточное-программирование-на-СС%2B%2B-149/
84 Кб, 1106x720
134 Кб, 960x1280
31 Кб, 604x355
#334 #900465
>>900461
Я лошара, всё понял -_-
Спасибо, анон.
#335 #900708
>>899645
Сигнал - это функция, но ее генерирует MOC. Сигналы ты можешь вызывать без ключевого слова emit, в коде оно не значит ничего, даже для MOC-препроцессора.
#336 #900774

>ОшибкаC2440 инициализация: невозможно преобразовать "System::String ^" в "char"


Как преобразовать этот злоебучий String^ хоть во что-нибудь, хоть в std::string, хоть в char?
900785900828900906
sage #337 #900785
#338 #900828
>>900774
Пиздуй в дотнет-тред.
#339 #900852
>>900366
Нахуй ты это делаешь, извращенец?
900933
#340 #900906
>>900774

#include <msclr\marshal_cppstd.h>

System::String^ managed = "test";
std::string unmanaged = msclr::interop::marshal_as<std::string>(managed);

http://stackoverflow.com/questions/946813/c-cli-converting-from-systemstring-to-stdstring
#341 #900933
>>900852
Что именно?
900936900937
#342 #900936
>>900933
Жрёшь гов^W C++/CLI
#343 #900937
>>900933
Живешь.
#344 #901441
>>892147 (OP)
бля я раньше писал на крестах (до выхода c++ 11), потом несколько лет в него не лез, ЧТО СДЕЛАЛИ С ЯЗЫКОМ?? какие нахер decltype(auto)? constexpr? std::initializer_list? и еще куча говна, зачем они его так усложнили..
901540
#345 #901509
#346 #901540
>>901441

>ЧТО СДЕЛАЛИ С ЯЗЫКОМ


Попытались привести его к юзабельному виду. Не всегда удачно, но, в общем, стало заметно приятнее пользоваться языком. До этого он был вообще неюзабелен.
#347 #901666
Есть литература по Qt чтобы быстро въехать? Посмотрел Шлее, эт пиздец, очень много воды и всякого.
#348 #901677
>>901666
Ты не знаешь, что такое виджеты?
#350 #902020
>>901666
doc.qt.io
#351 #902037
>>901666
Шлее - полная хуета, как по мне. Там две трети книги можно выкинуть и все равно останется еще до кучи всякого говна.
Однако же, для самого начала, все же нужно разобраться, как работают сигналы-слоты (по-хорошему сразу красивый синтаксис, который пришел с c++ 11, а не то ебаное говно SIGNAL(signame) ... SLOT(slotname))
А так, проще всего будет научиться по примерам, если уже в крестах чего-нибудь да шаришь, да и документация у них небедная (не то, что у некоторых по доксигену - ни примеров, нихуя, своя терминология, заебешься порой).
#352 #902086
Есть функция, которая в качестве одного из аргументов принимает float (*f)(float).
Есть советы как написать передаваемую функцию внутри списка параметров функции принимающей?
не гуглится
902125
#353 #902125
>>902086

>>написать передаваемую функцию внутри списка параметров функции принимающей


Зачем?

Ты хочешь передаваемую функцию написать внутри принимающей. Как функция "Запустится" если не примет функцию?
#354 #902144
Жил-был СТРАУСТРУП. Шел обычный, скучный день. СТРАУСТРУП занимался рутинными вещами, такими как ебля своей трехсоткиллограмовой матери в зад. Только успев кончить матери в пердак и вынуть измазанный в говне хуй, СТРАУСТРУП услышал стук в дверь. Не заметив, что его мать умерла от сердечного приступа еще 3 дня назад, он пошел открывать дверь и вышел на веранду. На веранде никого не было. СТРАУСТРУП, было, уже начал подозревать СТЕПАНОВА в очередной подъебке, но вдруг, из под крыльца что-то вылетело и понеслось на него. От перевозбуждения СТРАУСТРУП уронил скрепленнеые скотчем очки на пол и смиренно ждал, что будет дальше. ЛЯМБДА, с огромной скоростью пролетела мима СТРАУСТРУПА, квадратной скобкой отпихнула его и заползла в дом, крепко заперев дверь. ЛЯМБДА ясно дала понять, что она приняла дом в качестве аргумента, но отказывается возвращать функцию, которая принимает ПИЗДЮЛИ в качестве аргумента и возвращает дом. ЛЯМБДА заползла на стул перед компьютером и свернувшись в уютный клубок, зашла на ДВАЧ. СТРАУСТРУП знал ЛЯМБДУ. По крайней мере, это слово он точно слышал, но не знал, что оно значит. Он очень удивился, когда недавно узнал, что ЛЯМБДУ включили в НОВЫЙ СТАНДАРТ, принятый полгода назад. СТРАУСТРУП понял, что надо выгнять ЛЯМБДУ из дома, потому что желание в очередной раз залезть на мамочку было слишком велико. Будучи первоклассным инженером, СТРАУСТРУП начал искать решение проблемы. Для разминки он решил повторить таблицу умножения до 12 на 12. Он 2 часа стоял на одном месте и смотрел в никуда, потея как свинья. Пока он боролся с таблицей умножения, из за угла вышел измазанный в говне АНДРЕЙ АЛЕКСАНДРЕСКУ и осмотрелся. Рядом стояли несколько зданий, включая психбольницу для буйнопомешанных и тюрьму. АНДРЕЙ задумался и понял, что в округе нет ни одного настолько больного и гнилого человека, чтобы продать ему свою книгу. Небрежно посвистывая, АНДРЕЙ удалился. СТРАУСТРУП закончил разминку и начал думать, как прогнать ЛЯМБДУ. Вдруг его осенило. Его дом был скомпилирован последней версией GNU G++, которая поддерживает ЛЯМБДУ. Именно поэтому, ЛЯМБДА и смогла проникнуть к нему в дом. СТРАУСТРУП понял, что ему нужна более старая версия G++, которая не поддерживала ЛЯМБДУ и тогда, при попытке компиляции дома, ЛЯМБДУ выкинет вместе с СООБЩЕНИЯМИ ОБ ОШИБКАХ. Но старую версию было негде взять. СТРАУСТРУП нанял ФУНКЦИОНАЛЬЩИКА СО ШТАНГОЙ за 5 тысяч рублей. Так как компьютера у них не было, ФУНКЦИОНАЛЬЩИК вначале написал на бумажке компьютер в 1 строчку НА ХАСКЕЛЕ:
Computer = Computer
ФУНКЦИОНАЛЬЩИК сожрал бумажку и высрал работающий системный блок с ВОДЯНЫМ ОХЛАЖДЕНИЕМ и предустановленой WINDOWS 7. На компьютере уже был установлен АЛАН ВЭЙК и ХАСКЕЛЛ ПЛАТФОРМ. Корпус был красного цвета, с наклейкой ТУРБО на прозрачной боковой крышке. Затем ФУНКЦИОНАЛЬЩИК написал в 2 строчки старую версию G++:
Compiler :: [C++SourceCode] -> [ExecutableFile]
Compiler source =(Link . Compile) source
СТРАУСТРУП взял исходники своего дома и запустил компиляцию. Компилятор начал дристать СООБЩЕНИЯМИ ОБ ОШИБКАХ. СТРАУСТРУП попытался разобрать первую строчку, но увидев такое, дальше лезть не решился(таблица умножения и так вымотала его):
std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::map<std::basic_string<std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >
Высрав 10 000 СТРОК СООБЩЕНИЙ ОБ ОШИБКАХ, компилятор скончался от ЛЕНИВЫХ ВЫЧИСЛЕНИЙ ПРЯМОЙ КИШКИ и из монитора вылетела ЛЯМБДА. Придерживая круглые скобки квадратными скобками, ЛЯМБДА в ужасе съеблась под ближайший камень. Ей еще долго не захочется принимать и возвращать значения. Довольный СТРАУСТРУП плюнул в руку, чтобы наслюнявить хуй и уже решился залезать на мамочку, но передумал и решил вначале запостить эту историю на ДВАЧ.
#354 #902144
Жил-был СТРАУСТРУП. Шел обычный, скучный день. СТРАУСТРУП занимался рутинными вещами, такими как ебля своей трехсоткиллограмовой матери в зад. Только успев кончить матери в пердак и вынуть измазанный в говне хуй, СТРАУСТРУП услышал стук в дверь. Не заметив, что его мать умерла от сердечного приступа еще 3 дня назад, он пошел открывать дверь и вышел на веранду. На веранде никого не было. СТРАУСТРУП, было, уже начал подозревать СТЕПАНОВА в очередной подъебке, но вдруг, из под крыльца что-то вылетело и понеслось на него. От перевозбуждения СТРАУСТРУП уронил скрепленнеые скотчем очки на пол и смиренно ждал, что будет дальше. ЛЯМБДА, с огромной скоростью пролетела мима СТРАУСТРУПА, квадратной скобкой отпихнула его и заползла в дом, крепко заперев дверь. ЛЯМБДА ясно дала понять, что она приняла дом в качестве аргумента, но отказывается возвращать функцию, которая принимает ПИЗДЮЛИ в качестве аргумента и возвращает дом. ЛЯМБДА заползла на стул перед компьютером и свернувшись в уютный клубок, зашла на ДВАЧ. СТРАУСТРУП знал ЛЯМБДУ. По крайней мере, это слово он точно слышал, но не знал, что оно значит. Он очень удивился, когда недавно узнал, что ЛЯМБДУ включили в НОВЫЙ СТАНДАРТ, принятый полгода назад. СТРАУСТРУП понял, что надо выгнять ЛЯМБДУ из дома, потому что желание в очередной раз залезть на мамочку было слишком велико. Будучи первоклассным инженером, СТРАУСТРУП начал искать решение проблемы. Для разминки он решил повторить таблицу умножения до 12 на 12. Он 2 часа стоял на одном месте и смотрел в никуда, потея как свинья. Пока он боролся с таблицей умножения, из за угла вышел измазанный в говне АНДРЕЙ АЛЕКСАНДРЕСКУ и осмотрелся. Рядом стояли несколько зданий, включая психбольницу для буйнопомешанных и тюрьму. АНДРЕЙ задумался и понял, что в округе нет ни одного настолько больного и гнилого человека, чтобы продать ему свою книгу. Небрежно посвистывая, АНДРЕЙ удалился. СТРАУСТРУП закончил разминку и начал думать, как прогнать ЛЯМБДУ. Вдруг его осенило. Его дом был скомпилирован последней версией GNU G++, которая поддерживает ЛЯМБДУ. Именно поэтому, ЛЯМБДА и смогла проникнуть к нему в дом. СТРАУСТРУП понял, что ему нужна более старая версия G++, которая не поддерживала ЛЯМБДУ и тогда, при попытке компиляции дома, ЛЯМБДУ выкинет вместе с СООБЩЕНИЯМИ ОБ ОШИБКАХ. Но старую версию было негде взять. СТРАУСТРУП нанял ФУНКЦИОНАЛЬЩИКА СО ШТАНГОЙ за 5 тысяч рублей. Так как компьютера у них не было, ФУНКЦИОНАЛЬЩИК вначале написал на бумажке компьютер в 1 строчку НА ХАСКЕЛЕ:
Computer = Computer
ФУНКЦИОНАЛЬЩИК сожрал бумажку и высрал работающий системный блок с ВОДЯНЫМ ОХЛАЖДЕНИЕМ и предустановленой WINDOWS 7. На компьютере уже был установлен АЛАН ВЭЙК и ХАСКЕЛЛ ПЛАТФОРМ. Корпус был красного цвета, с наклейкой ТУРБО на прозрачной боковой крышке. Затем ФУНКЦИОНАЛЬЩИК написал в 2 строчки старую версию G++:
Compiler :: [C++SourceCode] -> [ExecutableFile]
Compiler source =(Link . Compile) source
СТРАУСТРУП взял исходники своего дома и запустил компиляцию. Компилятор начал дристать СООБЩЕНИЯМИ ОБ ОШИБКАХ. СТРАУСТРУП попытался разобрать первую строчку, но увидев такое, дальше лезть не решился(таблица умножения и так вымотала его):
std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::map<std::basic_string<std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >
Высрав 10 000 СТРОК СООБЩЕНИЙ ОБ ОШИБКАХ, компилятор скончался от ЛЕНИВЫХ ВЫЧИСЛЕНИЙ ПРЯМОЙ КИШКИ и из монитора вылетела ЛЯМБДА. Придерживая круглые скобки квадратными скобками, ЛЯМБДА в ужасе съеблась под ближайший камень. Ей еще долго не захочется принимать и возвращать значения. Довольный СТРАУСТРУП плюнул в руку, чтобы наслюнявить хуй и уже решился залезать на мамочку, но передумал и решил вначале запостить эту историю на ДВАЧ.
902155
#355 #902155
>>902144
Поясните дауну, чем так ЛЯМБДЫ не угодили?
902166
#356 #902166
>>902155
Это хуйтер опять свой хаскел сюда притащил
Не обращай на него внимания
Завидует, что ему лямбду не завезли
902198
#357 #902198
>>902166
А зачем лямбды нужны? Неужто лень создать еще одну, нормальную функцию?
902601902661902694
#358 #902601
>>902198
А потом еще 140 и потом сидеть разгребать кучу дерьма.
#359 #902618
>>901666
Читаешь самое начало Шлее. Первых три главы. Ну и все. Потом в документации читаешь про нужные классы и ебашишь.
#360 #902661
>>902198
Ага, в скопе текущей функции, захватив несколько переменных.
#361 #902682
Банально не знаю, как гуглить такое.
Попался кусок кода, а я в нем не понимаю, что делает конструкция такого вида:
(--top) = n;
n имеет это int
топ до этого объявлялся так:
int
arr, top;
arr = new int[size];
top = arr + size;
штука с -- мне понятна, оставил ее на всякий случай, а вот что делает * слева от знака присваивания непонятно.
902684902692
#362 #902684
>>902682
Забыл про макабу
фикс
(тут звездочка)(--top) = n;
n это int
топ до этого объявлялся так:
int (тут звездочка) arr, top;
arr = new int[size];
top = arr + size;
#363 #902692
>>902682
Звездочка означает рызыменование указателя
902778
#364 #902694
>>902198
в крестах лямбды - синтаксический сахар
и если принять это и не бесится по этому поводу, то они катастрофически сокращают объем кода в нужных местах, упрощают его понимание (что и должен делать хороший syntax sugar)
902706
#365 #902706
>>902694
Ага. Поэтому ядро linux на Haskell переписывают?
902711902715903246
#366 #902711
>>902706
Что за дичайший хайп вокруг хаскеля??
sage #367 #902712
стл пиздец мозги коробит. Уже стал замечать, что начинаю забивать на структуры и юзать только pair. Говнокод состоит из
for (const auto& hui : pizda)
hui.second.second.fist.second()

чуть менее чуть полностью.
902716
#368 #902715
>>902706
Вернись в похапе-тред.
#369 #902716
>>902712
Хороший код
#370 #902724

> for (const auto& hui : pizda)


у меня встал
#371 #902778
>>902692
Какой смысл разыменовывать указатель слева от знака равенства? Мы получим доступ к объекту разве? А не к его копии? Ну вообще да это логично.
902792
#372 #902783
>>899052
d.B::MethodB
11 Кб, 1067x74
#373 #902792
>>902778
Ньюфагов полон тред.
#374 #902851
Есть двумерный массив элементов PictureBox pb. Есть двумерный массив Arr такой же размерности с некими данными. Как сделать, чтобы при нажатии на, к примеру, pb[1, 2] в переменную A записывались данные из Arr[1][2]?
902854
#375 #902854
>>902851
Например у каждого PictureBox выставляешь таг в зависимости от координат PictureBox. Пишешь обработчик события onClick который считывает таг PictureBox которое вызвало событие и записывает нужные данные. Вешает обработчик на все PictureBox.
902863
#376 #902863
>>902854
Думал об этом, но как через таг 2 значения передать?
902866
#377 #902866
>>902863
таг = ширина * у + х
902873
#378 #902873
>>902866
У меня лётчик.жпг
for(int i...)
for(int j...)
{
pb[i,j] = gcnew System::Windows::Forms::PictureBox();
pb[i,j]->Tag = ???;
}
...
System::Void PictureBox_Click(System::Object^ sender, System::EventArgs^ e)
{
a = Arr[???][???];
}
Что должно быть вместо вопросительных знаков?
902877902975
#379 #902877
>>902873

>Что должно быть вместо вопросительных знаков?


Должно быть пошёл уже нахуй отсюда в C#-загон
902879
#380 #902879
>>902877
Нет, сам нахуй иди.
902888
#381 #902888
>>902879
Нет.
#382 #902935
Возможна ли перегрузка статической функции?
902936
#383 #902936
>>902935
Да.
Если ты имеешь в виду виртуальную статическую функцию - нет.
902987
#384 #902941
Мне непонятно почему ни в одном из тредов про языки нет ссылок на стандарты. Имело бы смысл, не правда ли? Причём на все.
#385 #902975
>>902873
Отнаследуйся от PictureBox и добавь две переменных для индексов.
889 Кб, 1885x719
1229 Кб, 1527x941
#386 #902987
>>902936
Из этого что будет правильно?
902989903739
#387 #902989
>>902987

>Из этого что будет правильно?


Нахуй иди. Надо было учиться весь семестр, а не последние 2 недели
902991
#388 #902990
Объясните еще раз, какие преимущества у крестов перед, ну например, джавой?
902992903277
#389 #902991
>>902989
На хуй тебе дорога, шкура

Я это уже сдал и сейчас просто хочу узнать ответ
902998
#390 #902992
>>902990
Они не тормозят.
902997903004903279
#391 #902997
>>902992
Я знаю, что джава не тормозит, а у крестов есть преимущества?
#392 #902998
>>902991
Спроси у препода, гений
903005
#393 #903004
>>902992

>Они не тормозят.


А можно ссылочку на замеры?
#394 #903005
>>902998
Ты думаешь они особо разговаривать с нами хотят?
903006
#395 #903006
>>903005
Сам виноват, школодебил.
903020
#396 #903008
Анон, если скомпилить файл.о в исполняющий, он же должен как и в линукс так и в виндовс запускаться, ведь верно же?
903021903023
#397 #903020
>>903006
Я не твой отец чтобы меня венить в чём-либо
Свали в /b уже, уёбок
903024
#398 #903021
#399 #903023
>>903008
Нет. Там разные форматы (ELF и PE).
903038
#400 #903024
>>903020

>венить


>Свали в /b уже, уёбок


Лучшей демонстрации твоего невежества сложно придумать
#401 #903038
>>903023
А как же кроссплатформенность? там и там gcc, на виндовс запилить ехе на линукс свой формат
903043903052903083
#402 #903043
>>903038
Два раза компилить надо
#403 #903052
>>903038
GCC то соберет, а вот как ты виндовский бинарник будешь на линупсе запускать без вина, вот это мне уже интересно. У них, мало того, что загрузчик в память различается, так еще и API совсем разные.
903067
#404 #903067
>>903052
Ну так я и не собирался ехе под линукс, у линукс есть свой формат, не знаю какое расширение, ну ведь хелло форлд запустится, какие-то общие моменты можно найти
903083903098
#405 #903083
>>903038
Под кроссплатформенностью подразумевается компиляция из одних исходников без их изменения.
>>903067

> хелло форлд запустится, какие-то общие моменты


"хелло форлд" это I/O - там просто так никаких общих моментов не может быть, разработчикам нужно договариваться. Хелло ворлд - технически достаточно сложная программа. У нее исходник простой, так как сложность скрыта библиотеками и системным апи.
#406 #903098
>>903067
Взгляни на программу для DOS и Linux на ассемблере (простейший hello world) и увидишь, что уже, как минимум вызываются программные прерывания с разными номерами, это простейшие примеры того, что бинарники не совместимы теперь уже совсем.
#407 #903100
Пасибо
903166
#408 #903166
>>903100
Пажаста
#409 #903246
>>902706

>ядро linux на Haskell переписывают


Никто ничего на него не переписывает.
На хачкеле свои ОСи и ядра имеются, но их никто не использует.
18 Кб, 419x638
11 Кб, 306x459
#410 #903251
Ананасы, в вузике пытаются скормить пикрил. Это пиздец или я чего-то не понимаю?
903264
#411 #903264
>>903251
Да, это пиздец.
Вызывать методы у nullptr это UB. Но такую хуйню, как на твоих картинках, делают даже в казалось бы нормальных проектах типа Qt. интересно, что мартышки, хуесосящие STL и восхваляющие Qt на это скажут, лол. Но этому недолго осталось быть, недавно вышедшая версия g++-6 при constant propagation наконец-то полагает, что this != nullptr и, следовательно, код вида if (this == nullptr) { do some shit } просто вырезает, т.к. условие всегда ложно.
903267
66 Кб, 1386x361
#412 #903267
>>903264
Вот, clang просто предупреждает, gcc выпиливает
https://godbolt.org/g/sCwgwN
903278
242 Кб, 1266x1240
#413 #903270
Мне кажется я достиг уровня Бога крестов, сучечки.
#414 #903272
>>903270
Как цветовая схема называется?

боги используют корутины, а не колбэки
903274
#415 #903273
>>903270
Жаваскрипт у тебя какой то.
903280
#416 #903274
>>903272

>Как цветовая схема называется?


Вручную настраивал.

>боги используют корутины, а не колбэки


Это клиентский код мобильныйх платформ.
Да, я рву шаблоны С++14 кроссплатформой под мобилы.
Конечно корутины и там можно сделать, но в крестах корутины в принципе ненужная вещь в себе.
903275903276
#417 #903275
>>903274

>кроссплатформой под мобилы.


И на каких платформах это работает?
903280
#418 #903276
>>903274

>Вручную настраивал.


Табы или пробелы?
903280
#419 #903277
>>902990
первое: прямой доступ к памяти (тк нет виртуальной машины)
второе: предсказуемое время выполнения исполняемого кода (тк нет сборки мусора)
третье: механизм реализации шаблонов отличен от механизма ява дженериков, что в конечном итоге дает более быстрый код
63 Кб, 1415x300
#420 #903278
>>903267
Ну или так, отдельно в методе тоже выпиливает
#421 #903279
>>902992
лучше говорить что с++ код имеет предсказуемое время выполнения
в общем это справедливо будет для языков с прямым управлением выделения-освобождения памяти и языков с управлением памяти основанным на подсчете ссылок и неверно для языков где реализована сборка мусора
#422 #903280
>>903273
А так и должно быть, кресты скоро взъебут джаваскрипт изъебством синтаксиса, при сохранении перформанса, и это прекрасно.
>>903275

>И на каких платформах это работает?


Ну mobile-first крестоядро, Ios и Android, для взаимодействия с Java и Swift кодом - кодогенераторы интерфейсов.
Можно под windows-phone легко портировать, там кресты искаропки. А так как вообще взя бизнес логика в крестоядре, линкуемом с опенсорсными статик либами, то и под десктопы влегкую.
>>903276
Табы
903284
#423 #903284
>>903280

>Табы


Адекват в треде.
#424 #903285

>2к77


>даже хачкель уже компилируется род мобилы


>нет я буду отправлять и принимать запросы на крестах

903297
324 Кб, 1274x1834
372 Кб, 1286x2170
511 Кб, 1288x1886
#425 #903297
>>903285
Хачкель ненужное говно для матанонеудачников.
Ты не поверишь, но я как то компилил Окамль со всем рантаймом внутри в статик либу под Ios.
Но при этом я бы никогда не смог объяснить заказчику, да и себе, зачем это нужно на реальном проекте.
Да и на крестах можно такие боярские изъебства с дженериками мутить, что можно смотреть на хачкеледаунов свысока.
Вот тебе отрывок из constexpr string'ов, с возможностью constexpr хэшинга, которые я как то для фана писал.
903328903340903418
#426 #903301
>>903270
Чёт не понял.
Что делает onError, если onResponce приходится проверять?
903311
#427 #903311
>>903301
В первый раз onError колбэкается при низкоуровневых ошибках, вроде отсутствия интернет-соединения, в onResponce делается парсинг джсона от сервера и там тот же самый onError колбэкается, если сервер в джсоне ответил ошибками валидации данных.
Потом вся эта хрень пропагируется из крестоядра через автогенерируемые интерфейсы (Errordescriptions - это typedef для автогенерируемого класса) в ui-код на Swift и Java 8, где уже и показывается пользователю. Отака хуйня.
#428 #903328
>>903297
Зачем constexpr в параметре шаблона? Что за constexpr inline? Почему касты C-style?
903411903414
#429 #903329
>>903270
логин/пассворд поменяй на const ссылку
903411
#430 #903340
>>903297
А теперь, друг мой дорогой, объясни нам, глупышкам, кому вообще сдалось хешировать строки на этапе компиляции, нахуя ждать по десять минут пока скомпилится твой высер и насколько это быстрее аналогичного кода на С длиннй в 20 строчек. а еще насколько читабельнее ошибки компиляции
903411903413
#431 #903411
>>903328

>Зачем constexpr в параметре шаблона?


Нет такого

>Что за constexpr inline? Почему касты C-style?


Потому что constexpr прилепил к C-коду, оно конечно всегда inline, но компилится и похуй.
>>903329

>логин/пассворд поменяй на const ссылку


Оно по std::move в эту функцию приходит
>>903340

> нахуя ждать по десять минут пока скомпилится твой высер


Ох уж эти маразматичные одеревенелые борцуны с темплейтами. На Pentium 3 компилишь?
Принципиально на с++98 пишешь и всех вокруг заставляешь? А то ишь понакодили синктаксических сахаров, деды без auto писали, пусть и они страдают!
Из-за таких как ты кресты не станут great again.
Cпециально же отметил, что писал для фана. Вообще мне захотелость передавать constexpr стринги как параметр темплейта, а там и со string literal operator templates можно мутить всякое, вроде:
https://habrahabr.ru/post/243581/
Но, еще раз повторяю - оно для фана, и ,вообще, да, нахуй оно никому не сдалось, конечно.

>а еще насколько читабельнее ошибки компиляции


Статик ассерты повтыкал с нужным тебе сообщениями ошибок и теперь хоть обдрочись на читабельность ошибок
903415
#432 #903413
>>903340

>нахуя ждать по десять минут пока скомпилится твой высер


Каково это кстати в 2017-м без STL жить из-за фобии долго компилить темплейты?
Туда ли ты вообще зашел, plain-С петушок?
904163
#433 #903414
>>903328

>Зачем constexpr в параметре шаблона?


А все таки есть, лол. Ну компилится и похуй как я уже сказал.
903668
#434 #903415
>>903411
Вкинь ещё пожалуйста статей по с++11\14.
Почти освоил Майерса, но этого чего-то мало.
903423903425
#435 #903418
>>903297
Это же только предложение, насколько я понимаю, или уже внесли в стандарт?
903423
#436 #903423
>>903415
Самого трупа страуса посмотри/почитай, он годно всех призывает перебороть академическую закостенелость в массовом кресто писательстве и войти в светлый мир современных крестов.
Он вообще советует начинать изучение с 11 и 14 стандартов, а прошлый забыть как страшный сон. Как бы только еще эту мысль самого создателя языка донести до лысеющих тимлидов под 40 и совсем уже лысых преподавателей в вузиках, считающих, что всякая auto и лямбда от лукавого. Вот сириусли, так же как церковь в свое время тормозила прогресс, сжигая ученых, так же и они своим превратились в неадекватных консерваторов, не принимающих новое только из-за своей закостенелости.

https://www.youtube.com/watch?v=1OEu9C51K2A
Five Popular Myths about C++
https://isocpp.org/blog/2014/12/myths-1
https://isocpp.org/blog/2014/12/myths-2
https://isocpp.org/blog/2014/12/myths-3

>>903418
Ты про что, про string literal operator?
Везде где есть с++14 компилится уже, правда у меня с определенного момента изъебства Clang начал компилится через раз, лол. Добавишь пробел - компилится, уберешь - segfault компилятора.
Я поэтому и написал свой класс constexpr стрингов с объявлением из макроса, тому шо через литеральный оператор падало.
903431
#437 #903425
>>903415
А ну и конечно главный дар человечеству, подаренный 11-м стандартом - это модель памяти.
Читай про std::atomic и учись его применять.
Сначала прочитай главу 5 параллельного программирования на c++ в действии
https://rutracker.org/forum/viewtopic.php?t=4373610
Потом можешь читнуть цикл статей про lock-free структуры этого достойного человека
https://habrahabr.ru/post/197520/
903434
#438 #903431
>>903423
Про передачу строк в качестве шаблонных параметров, или как оно там правильно называется (проебал номер предложения), в общем это:

>>template<typename char_t, char_t ... chars>

#439 #903434
>>903425
Кстати, про lock-free структуры. Этот тип упомнял про семантики acquire/release/consume/relaxed/seq.cst., однако нихуя не рассказал про семантики #LoadLoad, #LoadStore, #StoreLoad, #StoreStore, поэтому (во всяком случае для меня) начало статьи было нихуя не понятно. Вот тут про них подробнее:
http://preshing.com/20120913/acquire-and-release-semantics/
903436
27 Кб, 549x412
#441 #903518
Если я -- умственно отсталый, изучающий кресты ровно один месяц, стоит ли мне уже сейчас пробовать использовать библиотеки из boost? Например, там есть is_palindrome.hpp; мне можно элементарно включить в проект VS, затем вызывать, когда необходимо?
903650
#442 #903650
>>903518
Можн. Если не лезть внутрь - стоит конешно, как минимум доки научишься читать.
#443 #903668
>>903414

>>Зачем constexpr в параметре шаблона?


>А все таки есть, лол. Ну компилится


http://ideone.com/sb69ee
#444 #903681
На чем лучше рисовать графику простую? SFML или QT? Или еще что?
903719
#445 #903719
>>903681
А directx или opengl не нравится?
903722
#446 #903722
>>903719
А я не пробовал. Мне они кажутся сложными для моих целей. Я ошибаюсь?
903726903731
#447 #903726
>>903722
ошибаешься.
903732
#448 #903731
903733
#449 #903732
>>903726
Ну, спасибо тогда.
#450 #903733
>>903731
Я линуксобог
#451 #903739
>>902987
Бамп
903763
#452 #903763
>>903739
Первый вопрос - какой-то бред. Второй - 1.
903811
#453 #903811
>>903763
Ну на первый я тоже замучился отвечать,а второй парень с потока ответил 'Ю', хотя я прям уверен, что "\022"
903821
#454 #903821
>>903811
Ну с 'Ю' там сложный вопрос. Стандарт никак не определяет какой набор символов можно использовать. Возможно в С стандарте что-то определено, хотя бы минимум. То есть, является ли 'Ю' допустимой символьной константой будет зависеть от компилятора. Но. В задании вопрос про "недопустимую запись символьной константы". 'Ю' это допустимо записанная символьная константа, даже если она сама по себе не является допустимой для конкретного компилятора. А "\022" это именно недопустимая запись символьной константы
903834
#455 #903834
>>903821
У меня на MVS2015u3 это какая-то вертикальная черта.

Ноя проверить не мог тк в аудитории делал и поэтому засомневался

Я точно знал что константа записывается в одинарных ковычках, но то ещё с потока парень давай писать, что не верный вариант 'Ю'

Но ответил в что строка не является константой
#456 #903877
>>902596
Бампну
#457 #903882
Бля. Хочу срач устроить. Только не дебильный типа "табы против пробелов".

Что бы такое придумать?
903889903919
#458 #903889
>>903882
Точки против стрелочек
903919
#459 #903919
>>903882
Монады vs что угодно.
>>903889
Дык, точки заставляют писать на 2 символа больше чем стрелочки (скобочки требуются при разыменовании), это однозначный вин стрелочек.
903920
#460 #903920
>>903919

>Монады vs что угодно.


Все знают, что монады — лутший подход. Никакого срача не выйдет.
903923
#461 #903923
>>903920
Ну я вот считаю что текстовые макросы лучше этого говна на тайпклассах. Давай, сучка, возрази мне. на самом деле я хочу быстрее заспамить этот тред и перекатить в новогодний но нг, лол
903924
#462 #903924
>>903923

>Давай, сучка, возрази мне.


Возразил за щёку.
903926
#463 #903926
>>903924
С мамкой своей так разговаривать будешь.
#464 #903927
А я пока пойду наебашу монадный трансформер на макросах и няшной.
#465 #903930
тайпклассы >> наследование
903931
#466 #903931
>>903930
Интерфейс > тайпкласса. В нем данные можно хранить.
903940
#467 #903940
>>903931

>В нем данные можно хранить.


Любишь в попу?
903957
#468 #903957
>>903940
говно соси пидор
#469 #903966
Господа, имею вопросы:
скачал себе книгу Страуструпа, установил CLion. Что я вижу? Он предлагает записывать хелловордл так:

#include "std_lib_facilities.h"
int main(){
cout<<"Hello, World!";
return 0;
}

ПОшёл на его сайт, скопировал оттуда код для этой библиотеки. В итоге ничерта не работает код, пишет ошибки в этом стд
Работает в CLion (они даже сами создают хелловорлд, когда новый проект делаешь):

#include <iostream>
int main(){
std::cout<<"Hello, World!";
return 0;
}

Стоит ли дальше по этой книге продолжать изучать? не будут ли такие расхождения нарастать в количестве? Что это вообще?
903967904082904154
#470 #903967
>>903966
Страуструп пишет справочники, а не учебники, у него такой вот жутко нудный стиль. Найди себе в шапке что-то для нюфагов.
903968
#471 #903968
>>903967
Так это и есть из шапки и для нюфагов
#472 #903978
Адреса в стэке это адреса в виртуальной памяти? Значит при каждом следующем запуске хэлоуворда все адрреса должны быть одинаковыми? Тогда почему отсчёт идёт не с нуля? Почему у функции main каждый раз разный адрес? По ассемблеру давно какую-то брошюру читал. Что почитать чтобы понять как компилятор и линковщик с этими адресами работают?
903980
#473 #903980
>>903978
Бля пздц.
903981
#474 #903981
>>903980
Чего? Книжку дай. Но маленькую
903982
#475 #903982
>>903981
Короче, гугли "ASLR" и не приставай больше к нам. Без тебя дел хватает.
903984
#476 #903984
>>903982

>ASLR


Не это не всё. Вот например если создать объект в одной программе. Ввести его адрес в другую и разыменовать. Естественно с самым послушным кастом превратить его в указатель нужного типа. Вторая программа не найдёт объект первой программы. Даже если адреса специально рандомизированы, то это должно было сработать. А раз не сработало, то эти адреса в виртуальной памяти. Тогда что с динамической линковкой? Там же происходит почти то же самое. Известны только относительные адреса и надо передать их другой программе.
903985
#478 #903986
>>903985
Это всё? А есть набор статей курс на эту тему где я по оглавлению буду выбирать какие темы я не знаю и что нужно прочитать?
903987
#479 #903987
903988
#480 #903988
>>903987

> Date: 1999/06/09 00:48:48


Есть что-нибудь из этого тысячелетия?
903989
#481 #903989
>>903988
Бóльшая часть того, что там изложено, принципиально не менялось с конца 40-х.
903990
#482 #903990
>>903989
Ну ок. Спасибо.
#483 #904082
>>903966
бамп вопросу
904091904094
#484 #904091
>>904082
Вась, блядь, ну тебе же по-русски сказали сменить книжку.

И да - пока ты не вбросишь код самой ошибки никто тебе не скажет в чем дело, запомни это, так везде.
904150
#485 #904094
>>904082
Зачем тебе std_lib_facilities.h?
Естественно, чтобы это начало собираться, тебе необходимо наличие этого файла в путях поиска или в текущей рабочей директори.
ЕМНИП, он в этот файл заносит включения необходимых заголовочных файлов из std, ничего более. Так что можешь выкидывать файл к ебени матери и заменить этот include непосредственными включениями стандартной библиотеки.
Как раз в твоем случае #include <iostream> вполне досаточно.
904131904150
#486 #904131
>>904094

>>в текущей рабочей директори.



Я её на рабочий стол скопировал
904148904150
#487 #904148
>>904131
пиздец
#488 #904150
>>904094
Спасибо, именно этот ответ и хотел услышать.
>>904131
Не притворяйся мной
>>904091
Блядь, эта книжка в шапке для нюфань. Ну посоветуй лучше какую-либо.
#489 #904154
>>903966

>В итоге ничерта не работает код, пишет ошибки в этом стд


Которые ты, пидорас, нам не покажешь.
904156
#490 #904156
>>904154
Только не воспринимай это как приглашение показать.
904162
#491 #904161
Ребят, блядь, ну 10 постов-то поднажмите, высрете перед нг.
904164
#492 #904162
>>904156
Тщщщ, а то еще выложит и помогать проидется же.
#493 #904163
>>903413
STL не настолько вымазана шаблонами (по крайней мере, те ее части, которые всеми используются.
3 Кб, 128x128
#494 #904164
>>904161
вот один.
sage #495 #904166
904168
#497 #904168
>>904166
РАНО
sage #498 #904169
С новым годом!
sage #500 #904171
Все. Фух. Всегда напряжно.
904254
#501 #904254
>>904171
Долбаёб
#502 #907986
>>899536
прописать пути до либ и инклудов и
#pragma comment(lib,"zalupa.lib")

с SDL в 15\17 студиях много проблем, придется гуглить про legacy_stdio_definitions
909184
#503 #909184
>>907986
Давун
Тред утонул или удален.
Это копия, сохраненная 1 февраля 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски