Не позволяй плюсовику плюсится.Чтоб воду в ступе не толочь,крестовики обязаны трудиться,и день и ночь, и день и ночь.Коль отведёшь хотя б мгновеньеОдно для отдыха его,То сразу рухнет без сомненья,Производительность софта.А коли дашь ему доп. пайкуОберегая от забот,То он последнюю фуфайкуНа драфт стандарта проебёт.А ты лупи его по заду,За пейсики дери его,Такой язык для этих гадов,Поверь, доходчивей всего.(с) Страуструп, 1983. Апокрифы крестового завета.Шапка: https://github.com/sosachbot/cppthreadhat/wikiПрошлый: https://2ch.hk/pr/res/886043.html
Не пиздите только ногами за проёбанный заголовок треда, я вам зато покушать шапку принёс!
Откреплю сагу
Че свежего есть по паттернам для новичка? Книги после 11 стандарта
>>892170Хайп вокруг паттернов закончился. Они больше не в почёте.
>>892179Хайп, хуйяп, я хочу экономит время на решения задач, делая при этом их более эффективными и гибкими.
Это легитимный тред?
>>892185Я сомневаюсь, т.к. прошлый утопили искусственно.
>>892184Вот и делай, а не трать время на эту хуйню (паттерны). Своей головы что ли нет?
Эй, Страуструп. Когда в кресты завезут рефлексию или статическую сериализацию, наконец?!
>>892238https://www.youtube.com/watch?v=abdeAew3gmQ
>>892238Сегодня вечером завезу
>>892251Видевал, но вот имена полей мне где брать?!
>>892258>>892257
Есть видеоуроки по взлому одноклассников на C++
>>892287Есть
>>892354Ты уже смотрел?
>>892287Ну так делись, раз есть.
>>892287В лс скинул, проверяй.
>>892147 (OP)У вас в дропбоксе ссылки отвалились
>>892432Вась, ну я ж в оглавлении написал>Если ссылка на какую-то книжку сгнила - http://gen.lib.rus.ec
>>892438Прости, я не заметил.
>>892438Каким методом определить, что ссылка сгнила?
>>892458Тыкаешь, а там ничего нет
Всем день добрый. Как добавить новое интовое число?Хочу чтобы ABRACADABRA тоже была инт. Разумеется никаких вычислений с ней не будет, это просто число возвращаемое функцией, если результат работы не получен.
Всем привет. У меня есть очередь, состоящую из объектов класса classA, которую нужно заполнить из файла при инициализации. Я использую динамический массив, но не могу разобраться до конца как это делать, помогите пожалуйста
>>892496Не понимаю, в чём проблема?Делаешь пандорический захват, лифтишь в монаду, потом строишь рекурсивную схему (здесь подойдёт зигохистоморфный препроморфизм) как монадический трансформер из категории эндофункторов, и метациклически вычисляешь результат. Любой второкурсник справится. А если делать на анафорических лямбдах — так задачка вообще на пять минут.
>>892482Нормыльным способом — никак.Но можно сделать что-то вроде:#define A 10#define B 11#define C 12...int i = C10AB;>>892496Конкретнее.
>>892499Двачую хачкель-довна.
>>892503Спасибо, но это не позволит возвращать именно B, а не 11. Впрочем я нашел другое решение своей проблемы.
>>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 << "Ошибка";}
>>892496std::vector<classA>или std::list<classA>
>>892496ifstream 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 }); }
>>892512ifstream 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 });}
>>892514>>892511Мне нельзя использовать встроенные контейнеры. Через динамический массив никак не описать?
>>892522Ты просил динамический массив — тебе показали на нём (в плюсах это вектор). Без них — руками и scanf-ом.
>>892525Я описал динамический массив, но как-то неправильно. Прошу помощи в поиске ошибки и ее исправлении, а не в совершенно ином решении, которое мне не нужно.
>>892527Может ты задание в полном виде приложишь?
>>892528Это не задача и не задание, это проблема.
>>892527>>массивА разве массив сам по себе не является контейнером?
>>892510>mas + l sizeof(classA)) = new classA (name, p);Что ты тут вообще делаешь? Закинь на пастебин хотябы.
>>892536mas - по идее указывает на 0 объект массиваmas +l звездочка sizeof(classAзвездочка) - на l-ый объект массива. В приведенной строке кода я создаю объект и записываю указатель на него в l-ую ячейку памяти
Сап. Нужно посчитать количество двухбуквенных слов в строке. Я тут кое-что накалякал, разбил строку на слова, сравнил их длину с двойкой в ассемблерной вставке(без неё нельзя, задание такое.) А как эти самые слова дальше посчитать я не понимаю. В с++ абсолютный ноль, прошу помощи.http://pastebin.com/ed5JHXUx
>>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++; } }}
>>8925371) В mas память выделена?2) Ты уверен что нужно измерять размер указателя classA, а не его собственный?
>>8925421) Разве память не выделяется автоматически при new ?2)Не понимаю вопрос
>>892522Ну так напиши свой контейнер, маня
>>892551Я и пытаюсь написать свой динамический массив, но у меня проблемы,которые я не могу решить. Пришел сюда спросить совета , а мне в ответ "напиши свой контейнер")) Цирк
>>892552TYPE *memory = new TYPE[COUNT];и потомdelete[] memory;
>>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[]
>>892558static 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 звездочка []
>>892558А хули ты при выделении памяти размер не указал?! Он тебе гадать что-ли будет.>> mas = new classA[????]
>>892562А я его не знаю. Размера, т.е.Исправил ошибку при помощи realloc, можно ли как-то иначе?
>>892564В любом случае ты должен указать количество элементов. Динамический массив называется динамическим, потому что создается во время выполнения, а не растягивается. Если ты захочешь увеличить область памяти - нужно выделить новую, старое туда скопировать, и затем старую область памяти освободить.
>>892570Короче, стек для ЛЁХ, не уверен, насколько правильно он будет работать.http://ideone.com/PSz4Mp
>>892590блять, забыл в деструкторе память почистить, но сделай это за меня.алсо, можно припереть сюда перемещающие и копирующие конструкторы и присваивания, если желание есть
>>892538бамп
Где получить бесплатный сертификат что я знаю С++?
>>892722https://www.upwork.com/tests/1012?pos=42
>>892748Ме именной сертификат дадут? А в резюме такое можно вписать?
>>892564Ты, по моему, хуйню какую-то делаешь. Возможно я чего-то не понимаю, но вот, как все это выглядит: ты пытаешься создать динамический массив, то есть массив, который может там расширяться-сужаться, сальтухи мутить. Это нужно в случаях, когда ты не знаешь конечного размера этого массива и все зависит от входных данных (в них, естественно тоже нигде размер не записан и тебе тупо надо считывать, пока ты не дойдешь до конца). И вот ты говоришь программе найти тебе какой-нибудь указатель в памяти (static classA mas) и дальше сохраняешь свои элементы один за другим, начиная с этой позиции ((mas + l sizeof(classA)) = new classA (name, p)). Я, чесно говоря, заебусь описывать все ошибки, которые ты допустил в своем подходе. Но из основных: на с++, как впрочем и на любых других языках, создать идеальный динамический массив просто не возможно. Это объясняется тем, что память представляет собой что-то вроде большой строки, рандомные отрезки, которой бронируются компьютером для хранения в них данных (например, когда твоя программа просит выделить ей память). И, если мы, как и ты, будем просить компьютер найти нам какое-то место в этой памяти, а потом записывать туда даные, одни за другими, то мы обязательно, рано или поздно, наткнемся на уже занятую часть строки и начнем там творить невъебенную такую ахинею (это не учитывая еще много других пиздецов, которые непременно случатся при таких действиях). Все это является базовыми знаниями, без которых человека не следует вообще подпускать к с++ или не учить их работать с динамической памятью. Очень удивлен, что ты ими не обладаешь. Ну а для того, чтобы все-таки реализовать эти "динамические массивы" используют либо стэки, либо вектора, либо, возможно, много чего еще. Тебе советую воспользоваться вторым методом
Лабодаун на связи. Отличается ли чем-нибудь вызов функции от вызова метода? Меня пытались убедить в том, что вызов метода намного медленнее. Но, если это так, то почему? Запихивание this в ecx (для x86) перед вызовом метода не намного же уменьшит скорость
>>893004Только если метод виртуальный (да и то уже давно не сильно медленнее). В остальном — разницы 0.Уточни, не спутал ли твой советчик плюсы с явой/шарпом.
Аноны, я совсем ничего не понимаю. http://pastebin.com/rsjVwLKQhttp://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 их всего по одному?
>>893024Самое интересное, что даже при копипасте примера с той же страницы, где и находится эти сорцы, он выдает такой же выхлоп.
>>893024Отбой, анон, проблема была очевидно Как же стыдно, что вглаза ебусь
Джосатиса кто-нибудь читал? Хороший справочник? Или нет пророка кроме Страуструпа?
>>893182https://github.com/sosachbot/cppthreadhat/wiki#Справочники>нет пророка кроме Страуструпаа вы говорите ситхи в шапке нинужны
>>893182Мельком пробежаться можно, но многое из чего там просто нахуй не нужно. Достаточно емкое описание библиотеки, согласно стандарту, конечно же.
>>893187Я потому и спросил, что в шапке только его книги.
>>893217>в справочниках по ссылке только 2 книги СтраусаС тобой всё в порядке?я когда переносил шапку конечно думал что будут сложности, но что придётся учить читать кого-то точно не думал.
Так и знал что вы педики нихера не поможете, сам всё сделал.>>892538-кун
Подскажите, каким образом писать модульные приложения, чтобы была некая оболочка, которая могла скачивать плагины для себя. А также обновлять их. Может есть какие-то книги, тэги по этой теме.
>>893284Тебе нужна динамическая зпгрузка разделяемых библиотек. Это совсем несложно, попробуй libltdl. Только там сообщения от ошибках ебанутые. https://www.gnu.org/software/libtool/manual/html_node/Using-libltdl.html
Есть что-нибудь хорошее, чтобы в stl потренироваться на практике?
>>893182Читал. Читать стоит, но выборочно. Алгоритмы нужны точно, локали точно не нужны.
Аноны, каким образом можно сослаться в реализации метода на самого себя?Т.е. есть, например, методworld->Draw(world,1);Семантически выглядит не очень. Дублирование world как-то не в тему.
>>893498Зачем ты передаешь ему самого себя Вызов нестатического метода уже подразумевает передачу себя (this) по указателю неявным образом.
>>893515Велосипедным мастером хочу статьРазобрался, я до этого this использовал, а надо было *this.
Анон, как вывести контейнер multimap с конца?Этот кусок говнокода не работает, хотя при выведении с начала (.begin(); .end(); ++)всё ок.multimap<unsigned int, string>::iterator curItem; for (curItem = sortedDict.end(); curItem != sortedDict.begin(); curItem--) file << (curItem).first << " : " << (curItem).second << endl;sortedDict соответственно мультимапа
>>893635Какой паршивый синтаксис у плюсов!У хачкеля намного лучшО.
>>893635http://ideone.com/OqAOvP>>893638Хачкель хороший язык. Но иногда слишком медленный.
>>893641>>Но иногда слишком медленный.Не похуй ли?Купят новый I7
>>893643Если он хотя бы на уровне явы работал - купили бы. Дык и на i7 тормозить будет.
>>893641Если нужен функциональный язык не страдающий тормозом головного мозга - всегда есть окамл.
>>893646Тредов нет. Библиотек нет. С работой на сперме проблемы.OCaml — хороший язык. Был.
>>893648Треды есть, библиотеки есть. Работает на сперме прекрасно, но чтобы накатить сам компилятор с окружением нужно хорошо потрахаться, есть такое.ИРЛ используется побольше чем хачкель кстати, лол.
>>893645>Дык и на i7 тормозить будет. Что тогда в нём хорошего?
>>893645Нужно как для явы, покупать мейнфрейм у IBM.
>>893635Обходи не через begin и end, а rbegin и rend
>>893651Да нет, яву уже довели до состояния когда можно работать на нормальном домашнем процессоре. И мейнфреймы у них кстати оверпрайснутое гуано.>>893650Синтаксис. Можно подрочить на него, можно описать парсер в 10 строк который на других языках займёт несколько сотен, можно сделать парсер метапарадигм.
Кстати, а вот и влияние раста встаём с колен!.https://msdn.microsoft.com/en-us/library/mt762841.aspx#Anchor_2Осталось дождаться пока нормально форматировать сообщения об ошибках научатся а ещё выкинут половину языка нахуй.
>>893641>>893652Благодарю
>>893655Пусть сначала лямбды научатся форматировать
>>893646>не страдающий тормозом головного мозга Насмешил. К тому же АхВерблюд - это объекто-ориентированная параша похлеще эфшарпа.
>>893685Ору с рвущегося довна.И кстати да - окемл не навязывает никакой парадигмы как и плюсы, в отличие от жав, хачкелей и прочей хуйни.
>>892722Кто, интересно, будет смотреть на него?
>>893689> окемл не навязывает никакой парадигмы как и плюсыИ как можно видеть на примере C++ и кокамла — "мультипарадигменность" работает плохо. Как и мультикультурализм.
Тоже решил вкатиться в С++. Какую литературу посоветуете, нашел относительно свежий список https://tproger.ru/books/cpp-books-definitive-guide/ Может еще что добавить?
>>894019Шапку открой.>>894015Забавно от пейсателя кластеров мультипарадигм на хаскелях слышать что-то про "работает плохо", когда мир программирования поделен на мультипарадигменные и несуществующие языки.
>>893641>Хачкель хороший язык. Но иногда слишком медленный.Хочешь делать системые ультрахайлоад приложения с байтоебством вроде движка БД или 10K сервиса - бери pure C и\или Erlang, хочешь делать прикладуху с кучей высокоуровневой бизнес-логики - бери Хаскель и не парь себе мозг байтоебством. Всякие там common языки вроде сиплюсов, жавы и сисярпа - суть одно и то же, неудачная попытка скрестить ужа с ежом, причем непонятно зачем.
>>894015>Как и мультикультурализм.У тебя Гитлер отклеился.
>>894055>несуществующие языкиСоси говно, пидор.
>>894305Почему для бизнес-логики ты выбрал Хаскель, а не ООП на плюсах, например? И у перечисленных тобой common языков, хотя бы нормальные IDE завезли c профилировщиками и групповой работой.
>>894403>IDE завезли c профилировщиками и групповой работой.Не тыкай ножом язву. Им иде с нормальным автокомпилтом до сих пор не завезли, лол.
>>894403>не ООПЯ описываю процессы, а не объекты.>на плюсахНадо уделять слишком много времени\внимания различным низкоуровневым аспектам. И даже при это велик риск получить ошибки на продакшене. Хаскель же часть ошибок исключает как класс, часть позволяет обнаружить на этапе компиляции, короче если и будет ошибка на продакшене - то скорей всего это будет архитектурная ошибка алгоритма, но не ошибка реализации данного алгоритма.>хотя бы нормальные IDE завезлиДа, с этим беда>c профилировщикамиGHC имеет профилировщик>групповой работойК языку это тащемта отношения не имеет.
>>894457В хаскеле нужно извернуть мозги через зад в рот. Не надо ляля, его система типов с чистотой и траляля создаёт ещё больше проблем чем решает, а поиск утечки с его ленивостью повеселее чем в плюсах. При этом писать негде, тулкитов нету, библиотек относительно плюсов нету, тормозит как залупа (а мы сравниваем с плюсами, которые бегают на уровне си). Будь то опенсорс/коммерческий проект — программистов для него ты не найдёшь.Вот какой смысл его брать, кроме как подрочить на крутые фичи?
>>894457Хаскель мне даст хотя бы приблизительный перформанс? Или любая бизнес задача ограничивается на крудом?
>>894464>плюсы бегают на уровне сиНе топлю за хаскель, но потоньше будь.
>>894464>В хаскеле нужно извернуть мозги через зад в рот. Ты наверно имел в виду в целом ФП?>система типов с чистотой и траляля создаёт ещё больше проблемКакие?>а поиск утечки с его ленивостьюЕсть профилировщик хепа.>При этом писать негдеВыше писал, да с IDE проблемы.>тулкитов нетуЕсть>библиотек относительно плюсов нетуНу если бы ты про Erlang так сказал - прокатило бы>тормозит как залупаЯ выше писал - для хайлода бери pure С. Для прикладных приложений гораздо важней высокая доступность. А проблемы производительность куда проще решаются горизонтальным масштабированием.>>894468>Хаскель мне даст хотя бы приблизительный перформанс?Приблизительный к чему и перфоманс в чем?
Бля
>>894487Что такое? У нас новый пуревасикдовн у которого конструкторы тормозят?>>894494>Какие?Ну ты открой фп тред, посмотри как там писали najtiElementVMassive подсчёт высоты бинарного дерева. Хороший, годный язык.>Ну если бы ты про Erlang так сказал - прокатило быПро хаскель тоже прокатит. Или у него библиотек уже как у плюсов? вместе с си.>для хайлода бери pure СДа нахуя мне твой веб. Нету в вебе понятия "хайлоад" пока ты не гугл/фейсбук. А когда ты гугл — начинаются плюсы где-то у первых был пейпер как это им экономит миллионы.Вот мне нужно в риалтайме распознавать изображение/выводить йоба-картинку/сделать ин-мемори бд/и тд — мне хаскель сильно поможет? и зачем мне вообще он когда на дворе есть питоны и прочее?Так же не понятно зачем оно мне при написании верхнего уровня — есть варианты от питона до жвм языков, которые делают хаскель по всем параметрам ах да — твой круд же типобезопасный! Теперь-то заживём!Алсо, у меня есть опыт поддержки проекта на няшной. И плюсовой код поддерживать несравнимо легче. инб4: кококо 10 этажей шаблонов — в плюсах можно спокойно писать без них, а вот в си такие проблемы не решаются без 10 этажей макросов или еще лучше — кодогенератором сверху.
>>894487>>894494Не понимаю, как можно в 2016 писать что-то сложное, как хайлоад на Си. Это бред полнейший. Зачем жертвовать гибкостью и безопасностью ради 1% ускорения?
>>894547>как там писали подсчёт высоты бинарного дерева.Открыл. Никаких проблем, связанных с чистотой или системой типов, о которых ты говоришь, не увидел. Собственно вообще проблем не увидел.>Или у него библиотек уже как у плюсов?Более 10000 в репозитории. Маловато?>Да нахуя мне твой веб.Не знаю. Я нигде про веб не писал. Ты сам себе что-то придумал и сам себе что-то пояснил.>ин-мемори бд/и тд — мне хаскель сильно поможет?Нет, мой дислексичный падаван, чуть выше я писал, что например для движка БД лучше взять C. Хотя на Хаскеле можно и операционную систему написать.>есть варианты от питона до жвм языковМультипарадигменное динамикоговно. Нет спасибо.>И плюсовой код поддерживать несравнимо легче.Любишь пердолиться с ромбами?>кококо 10 этажей шаблонов — в плюсах можно спокойно писать без нихВ плюсах можно спокойно писать и без плюсов.>>894576>как можно в 2016 писать что-то сложное, как хайлоад на Си.А на чем нужно? Поясни, бро.
>>894588>А на чем нужно? Поясни, бро. На Go.
>>894592И чем Go более гибкий чем C?
>>894588>Более 10000 в репозитории. Маловато?http://githut.info/На одну позицию обгоняет Lua. По мне так количество либ уровня Lua это как-то мало.>>894588>Мультипарадигменное динамикоговно. Нет спасибо.Вполне симпатичный язык. Ты что из этих? Ну кто дрочит на чистоту и метаобъектные манатки? Это говно без задач.
>>894691>languages in GitHub>количество либПонятно. А по мне так количество либо ниже уровня JS тоже как-то мало. Шах и мат.>Это говно без задач. Ну раз на дваче ниосилятор так сказал - ок.
>>894719>>ниосилятор>>C++ слишком сложныйЯснопонятно
Была возможность вкатиться в плюсы через фирму, которая занимается написанием софта для трейдеров. Я пропустил годноту?
>>894932Как минимум проебал самую денежную отрасль в программировании.
>>894934Пойду вскроюсь.
>>894939Я бы даже сказал, ты потратил весь запас удачи своего рода, который копился в генах твоих предков со времён австралопитеков. Да, ты прав, можешь Роскомнадзор, потому что тебе скоро либо сосуля на голову упадёт, либо даги собьют.
Анон поясни за (void(⭐)()) - это привидение к типу "указатель на void" ?
>>895084...........O...........||\...........||.\(void(⭐)())........../..\
>>895084Указатель на функцию, ничего не возвращающую и имеющую 0 аргументов.
>>895136Спасибо.вот для чего нужно было, если чо - (void(*)()) vptr - указатель на функцию в таблице виртуальных функций
>>894547При чем тут конструкторы? О чем ты? Посмотри на код среднего C++ проекта и на плюсовый и подумай что именно может тормозить.
>>895298>При чем тут конструкторы? О чем ты? Это мемасик от местного персонажа выгнанного отсюда нахуй пол года назад.>подумай что именно может тормозить.Посвяти уж.Не вижу ничего. Виртуальный функции/RTTI/итд — если в си возникает в них потребность работает точно так же, только работы в 5 раз больше. разве что намного реже удаётся избегать лишних аллокаций в контейнерах и при наследовании.
>>895307Идеология кода несколько иная, очень долго чистим эксепшены вместо обработки сообщений по селекту, очень долго сидим в ядре и ждем пока очередное future настанет вместо форка через пайп с месседжем, дергаем семиэтажные IOC контейнеры и прочие DI конструкции с горой виртуальных вызовов, вместо сишных get_component_handle ( COMPONENT_ID ) - подобных разрешений . Это как пример, таких можно много наковырять. Естественно я не про сфероконя и laba1, а про то как реально эти языки применяются.
>>895315Ты про сфероконя из мира явы/шарпа по большей части и рассказал. Что нибудь из разряда "тормозящего в языке" а не "тормозящего от ява-энтерпрайз-архитектуры" есть?
>>895323Ну, язык бессмысленно рассматривать без его применения. Как что-то может "тормозить в языке"?
>>895336Ну я потому и написал про сфероконя — не видал я чото бэкэндов с энтерпрайзными архитектурами на плюсах. Повезло видимо.С другой стороны говорить что язык тормозит только потому что написано "как-то сяк" тоже неправильно.>Как что-то может "тормозить в языке"?Ну ты сам как думаешь?
>>895342>повезлоИменно. Язык - это стандарт, стандарт не тормозит. Он бумажный. Тормозят специфические решения свойственные языку. Я выше тебе расписал примеры, если остановиться на чем-то одном: нынешний подход в плюсах к потокам на практике значимо медленнее того, что обычно используется в си. Сравни производительность решения на селекте с коллбеком и RAI решения с future. Естественно в плюсовых проектах используется зачастую первый подход когда появляется необходимость в производительности, но это решение проблемы, а не факт ее отсутствия.
>>895208>если чо - (void(*)()) vptr - указатель на функцию в таблице виртуальных функцийШтобля?
>>895412Чему ты удивляешься? Я же писал, что он наркоман.
>>895315> дергаем семиэтажные IOC контейнеры и прочие DI конструкции с горой виртуальных вызовов"IOC" и "DI" можно реализовать и на C (только там вручную и через жопу), и работать они на обоих языках будут с одинаковой производительностью. Такой подход в C++ применяется не сильно чаще, чем в C, и там, где он действительно оправдан. Сейчас мейнстрим разработки и идеология - метапрограммирование и ехал темплейт через темплейт, а не энтерпрайз.> Сравни производительность решения на селекте с коллбеком и RAI решения с future.Какой селект с коллбеком? При чем здесь RAII? И почему надо сравнивать future, а не, скажем, lock-free структуры данных, если речь идет об организации работы потоков?
переопределение стандартных операций == перегрузка стандартных операций?
>>895624Нет.
>>895607>первая частьЧто сказать то хотел?>lock-freeЭто отдельная тема, смысл ее затрагивать? я говорю про специфичные для языков подходы. Я сравниваю параллельное выполнение а не атомарный доступ, это скажем так, принципиально разные вещи.
>>894932И как контора называлась?
Почему у меня одна строка в проге не переведена?Суть: C++/Qt5, в *.ts файле переведёно всё (включая ту самую строку), lupdate/lrelease делал перед сборкой (он автоматически выполняется), но несмотря ни что одна из строк на форме не переведена.Что это вообще может быть?
>>895702Всё, я разобрался.Оказалось я не туда обновлённый .qm файл клал и использовался старый
>>895674> Что сказать то хотел?Хотел сказать то, что и сказал - "про специфичные для языков подходы". Ты утверждаешь, что для C++ специфично писать IOC. Так вот, это неправда.> Это отдельная тема, смысл ее затрагивать? я говорю про специфичные для языков подходыИ я про них. Специфичный для C++ подход - взять готовую библиотеку, которых для lock-free несколько.> Я сравниваю параллельное выполнение а не атомарный доступТы вообще непонятно что сравниваешь. Накидал терминов для той и другой стороны без упоминания конкретной задачи.
>>895412http://kaisar-haque.blogspot.ru/2008/07/c-accessing-virtual-table.html>>895519Может это ты наркоман? Где ты написал, что я наркоман, дебил блять?
>>895922Что мне должна дать эта ссылка, довн? Ещё больше убедить в твоей неадекватности?Даже если в данном ABI вызов member-функций не отличается от вызова обычных функций (прост опервым параметром идёт this), то тип у функций, на которые указывает vtable, никак не (void())
Class Base{//содержимое}int main(){Base *p;}При таком объявление у создаётся объект пользовательского типа Base и доступ к нему осуществляется через указатель? Или я через указатель обращаюсь к классу?
>>896024Или я говорю, что указатель *p типа данных Base.
>>896024Указатель на класс вижу, объекта пока не наблюдается. Вот если бы былоBase p = new Base();илиBase p;p = new Base();тогда объект.
>>896116Я понял уже.Это указатель пользовательского типа данных
>>896116Может быть ты имел ввиду Base* p = new Base();или если без newBase p;
Анон, где можно почитать о "переопределение стандартных операций"
>>896190Нигде.
>>896191Чаму?
>>896193Тому що нет такого.
>>896214не не нравится как он пишетhttp://ad.cctpu.edu.ru/cpp/glava21_1.htm
>>896214Вот нашёлhttp://www.amse.ru/courses/cpp2/2010_11_22.htmlОн свои названия придумает что ли...
>>896131Именно так. Блядская макаба.И еще, в первом случае с new, объект создается в куче, и при завершении области видимости, не могу вспомнить, вызывается ли деструктор. Во втором случае, без new (если еще и без звездочки), объект создается в стеке, и для него при завершении области видимости вроде бы должен деструктор вызываться.
>>896305Студент?
>>896305Для всего, что выходит из области видимости, вызывается деструктор.
>>896409Не пиздишь?Мне тут один писал, что при этом происходит утечка памятиДеструктор вызывается при использовании умного указателя
>>896409Не пиздю.Но ты не понимаешь, что выходит из области видимости. На это и был мой расчёт.
>>896413Объект типа Base
>>896415Указатель у тебя вышел из области видимости, а объект как был в куче, так и остался, только теперь на него никто не ссылается.
>>896418Нет, если у тебя указатель на тип Base в нем объявленые простые типы, то память освободится нормально. Но, если у тебя там еще что-то динамическое, то нужно писать свой деструктор с delete'ми, чтобы освободить все динамическое. Поправьте если ошибаюсь.
>>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
>>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
>>896429auto a = std::make_unique<int>(5);
>>896422Как же ты заебал. Эта тема тут обсасывалась уже десятки, если не сотни раз.Если ты делаешь объявление переменной:>> Base *p;то в таком случае, при выходе переменной p из области видимости ничего не произойдет, кроме высвобождения куска памяти под указатель размером size_t байт. Если ты не пользуешься умными указателями, деструктор тебе необходимо вызывать вручную, потому что иначе память под ОБЪЕКТ будет висеть без ссылок и освобождена не будет. Автоматически освободится только память под УКАЗАТЕЛЬ.Память, на которую ССЫЛАЮТСЯ УКАЗАТЕЛИ не освобождается сама.
>>896441Спасибо что прояснил
>>892147 (OP)Порадовало обилие литературы в шапке, в отличие от шапок с другими языками. Буду читать.
Анон , подскажи как перейти на компелируемый C++ после приятных интерпритируемых змей ? Может литературки подкинете , или тип того.
>>892147 (OP)Есть ли смысл НЕ использовать using namespace std? Те какой вв этом профит и чем вредно то, что я его постоянно использую?
>>896532Дело в том, что ты можешь подрубить какуе-нить либу в которой будет такое же имя класса или объекта как в std, ну тогда получится передкларирование, ошибка.
>>896532Пространства имен создали, чтобы изолировать множества имен друг от друга. Использование директивы `using namespace abc` позволяет обращаться к именам пространства имен abc без указания этого самого пространства имен (например, если указывать using namespace std, то векторы можно объявлять уже при помощи vector<...> а не srd::vector<...>), как минус - возможная коллизия имен. В глобальной области видимости такой хуйней заниматься не советуют (а если ты залепишь такую штуку где-нибудь в начале одного из заголовочных файлов своей программы, опять же в глобальной области видимости, то искать этот косяк будет еще веселее, когда ты про него забудешь и увидишь воочую коллизию имен). А вообще, в теле функции, да, можно, я так сам часто делаю, когда мне лень писать префиксы.
Как подключить библиотеку glaux к проекту? В примере говорят что нужно положить glaux.dl в корень проекта, и в dev-cpp в линкере указать -lglaux. Но в итоге выходит undefined reference to `auxSolidTorus'. Как сделать чтобы это говно нашло что ей нужно и запустилась?
>>896548Спасибо тебе!
>>896549Спасибо!
Антоши, есть одна windiws form, там рисунок(многоугольник), нужно этот рисунок закрасить. На сколько я понял нужно просто передать координаты точек в FillRegion, но бля, как я не изгаляюсь - шлёт меня нафиг, а в инете примеры с прямоугольнами/треугольниами и там на этом всё и завязано. Как же передать эти точки?
Аноны, в каком случае функция void operator a()Не имеет параметров?Мне желательно её сделать без параметров как член класса
>>897163Она не имеет параметров когда не имеет, лол, что за тупой вопрос?
>>897163Оператор без параметров?
>>897174И да, и нет. Правильный ответ - функция-элемент "операторOP()" без явных параметров. Т.к. неявно все равно по ссылке передается вызывающий объект.
>>897184Ах ты ж блин, про скобки забыл. Спасибо.
>>897171>>897174Компилятор говорит:"слишком мало параметров для этой функции оператора"
>>897204Ты точно operator()() пишешь?
>>897206void operator % () - не работаетvoid operator % (&pes) - РаботаетЕщё не получается передать более 1 параметра
>>897209Так ты спрашивал про % а не ()? /0Ясен хуй что у оператора % не может не быть аргументов/больше одного, сам подумай почему.
>>897212Начинает доходитьА у каких операторов не будет параметров?
>>897214Только () и [].
https://ru.wikipedia.org/wiki/Операторы_в_C_и_C%2B%2B - справка справка по всем оператором, на русском с примерами.
>>897219! и ()[] - нужны параметры
>>897221Спасибо
>>897221Какой же все таки нищенский язык.
Робяты, дайте советоу.Хочу написать свою игру, по типу VN. Хочу именно на С с классами, так что RenPy не советуйте. А посоветуйте лучше каким графонием обмазаться. Пока смотрю на curses (для моего нище ноута) и SDL. Но рынок мной не до конца изучен, может есть что то что я не учел. Второй вопрос, упарывался ли кто TDD на плюсах? Как? Чем ? Подводные камни?
>>897404SDL.
>>897404>А посоветуйте лучше каким графонием обмазаться.Каким ещё графонием? У тебя картинка с квадратиком и текстом, это даже на голом opengl в пару строк делается.Чем тебе так всрались плюсы для такой хуйни — понятия не имею зато мысленно покатываюсь когда вижу что вместо перехода на какую-то ветку сюжета игра падает нахуй. Алсо, если всё же хочешь плюсы, но лень самому всё рисовать и писать совсем низкоуровенную еботу вроде менеджера ресурсов — посмотри на тот же Qt можешь даже на QML если анальной ненависти к жс-подобному говнецу нету.TDD — это в первую очередь о динамических языках, в которых всегда нужно знать что вернёт функция (в т.ч. особенно её тип), и во вторую очень высокоуровенный, когда сделать ошибку в самой функцие а не алгоритме достаточно сложно. В статических, и тем более низкоуровенных языках мягко говоря бесполезна, как и остальные юнит тесты. Обычные ассерты помогают отловить куда большую часть ошибок. А дальше помогут только полноценные функциональные тесты с тестировщиками.
>>897404cocos2D-x
Сап аноны. Животрепещущий вопрос. Знаю кресты на уровне T ptr = new T(); delete T;Хочу вкатиться в современные плюсы. Как у вас сейчас модно передавать параметры? Пытался разобраться с пикрелейтедом, сложна. То есть сейчас по старинке писать f(const T&)? И что за хайп по owner<T> уже прошел, не надо так делать?
>>897714Тут один студен сидит >>897163
Почему в GCC и libc++ std::array<T, N>iterator и T-указатель это одно и то же, а в MSVC++ - нет?Куда комитет смотрит? Это СТАНДАРТНАЯ библиотека. Каждый блядский компилятор все делает по-своему.Теперь я понимаю, почему так популярны толстые буст и Qt.
>>897762Что такое одно и то же в твоем понимании? Неявный каст? Детали внутренней реализации?
>>897714move тебе нужен только тогда, когда у тебя определен конструктор &&. Т.е. у тебя там нетривиальный конструктор: память, например, выделяется и еще че нить.Хотя я сам не уверен
>>897769В буквальном смысле, в GCC, например, там просто typedef value_type звездочка iterator;И когда я объявляю метод возвращающий итератор, как указатель, он не ругается, а MSVC ругается.
>>897762> Почему в GCC и libc++ std::array<T, N>iterator и T-указатель это одно и то же, а в MSVC++ - нет?Потому что так можно.> Каждый блядский компилятор все делает по-своему.Имеет право.> Теперь я понимаю, почему так популярны толстые буст и Qt.Ну давай, расскажи, что ты там понял.
>>897778>И когда я объявляю метод возвращающий итератор, как указатель, он не ругается, а MSVC ругается.Так это метод, возвращающий итератор или указатель? Определись.
Собственно начал учить кресты, потому что не хочу клепать сайты и мобильные аппы, но теперь вопрос, в какие области нужно копать помимо с++?
>>897786В плане, где востребованы плюсовики
>>897788В гей-шлюхи.
>>897786Делаю на c++ сайты и мобильные аппы. Ха-ха. Блять.
>>897791нет>>897796Но вроде как сайты на скриптах пишут, а мобильные на джаве и свифт, я что-то не понимаю
Есть один вопрос, как создать инициализировать объект другого класса в конструкторе другого Грубо говоря есть класс:class foo { private: int x; public: foo(_x) { x = _x;} //тут все ок}И второйclass bar { private: foo x; private: bar(int _x) { x(_x); } //вот это падает с ошибкой. }
>>897808public* где функция во втором классе фикс
>>897808member initialization list
>>897811thanks
>>897811Я почитал конечно, но все таки почему нельзя просто создавать экзкмпляры других классов, как например в джаве без костылей, типо объявил T x, как поле класс и потом в конструкторе сделал x = new T(парамс)
>>897847Все разобрался, нужно было просто через указатели сделать.
>>897847Когда начинает выполняться тело конструктора, то все члены уже инициализированы.Если хочешь инициализировать их — в initialization list.
>>897852Ок, но через указатели все заработало внезапно, когда полем сделал указатель на объект класса и в конструкторе как раз сделал T x = new T(params) или это плохая практика?
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?
>>897892Смотря что тебе нужно.
>>897897Ты о `class T` ?Так это не пользовательский тип а объявление того, что параметр шаблона T должен быть классом.
>>898007А класс это не описание пользовательского типа данных?Вообще разобрался. Это из-за того, что typename раньше не было и пока допускается такая запись
>>898016Хм, действительно. Я вот до этого момента как-то не задумывался даже.
Сап, двощ. Кто нибудь вообще знает более-менее вменяемые гуй-библиотеки на плюсах, которые не требуют кучу $ за коммерческое использование? Желательно кроссплатформа и функционал больше чем отрисовать окошко и кнопочку. А если таковых нет...
>>898101gtkmmwxwidgetsfltkНу а вообще, насколько я знаю, можно динамически линковать Qt и слать всех нахуй, потому что LGPL.
Хочу скачать слайды САМОГО, но не могу, помогитеhttps://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Keynote-Bjarne-Stroustrup-Cpp11-Style
>>898217https://github.com/ashishlal/c--/blob/master/docs/C%2B%2BStyle/GN12Cpp11Style.pdf
>>898206gtk — жопаель.wx и fltk — что-то уровня mfc, чесслово.В куте меня смущает что часть библиотек под жопаелью, а так же там несколько редакций LGPL. Кстати, они что, берут деньги только за поддержку?
>>898220Слоников на 3-м и 4-м слайдах в зеленый покрасить надо было.
Сап, крестаны.Кто нибудь умеет в опенгл хотяб на уровне хелловорлда?
>>898223> Кстати, они что, берут деньги только за поддержку?Коммерческая версия же, плюшки из которой попадают в опенсорц только через несколько релизов.
>>898223http://licenseit.ru/wiki/index.php/GNU_Lesser_General_Public_License_version_3Как-то так. Посмотрел с англицкой версией LGPLv3, перевод, вроде бы нормально. Естественно, все лицензии ты должен приложить
>>898251https://2ch.pm/gd/res/195365.html
>>898270Окай.
>>898276>последнее сообщение год назадБлять.
Аноны, нужен советЕсть класс NvectorВ нём массив Требуется в оператор передать числовое множество(или список. Не знаю как правильно) {1, 2, 3} в operator = ()Не знаю, что в скобки вписать чтобы он его принял
>>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) , во втором - будешь тыкать вектор.
>>898414в с++11 std::vector можно инициализировать так std::vector<int> mem = {1,2,3};http://en.cppreference.com/w/cpp/language/list_initialization
>>898430 >>в с++11Его самому надо написать
>>898352#include <initializer_list> class Nvector { Nvector(std::initializer_list<int> list) {...}}
>>893649Тредов таки не завезли, вернее завезли, но на одном ядре. Окамль не умеет в multicore.Хотя что то пилится, но что хуй пойми.Такие дела.Но сам по себе язык охуенный и довольно быстрый, если компилируемый.>ИРЛ используется побольше чем хачкель кстати, лол.Хачкель не используется вообще нигде.А на окамле пишется куча компиляторов, например компилятор Rust изначально был написан на нем.Из крупных дохуя продакшн он используется в Xen'еПруф:https://mirage.io/https://github.com/mirage
>>898455>Окамль не умеет в multicore.Окамл-то может во всё, это то же самое что написать, мол, на плюсах до тредов в стд не было способа паралелить код.>Хачкель не используется вообще нигде.Ты сейчас удивишься, но используется. Другое дело что окемла больше он, внезапно, тупо намного практичнее, хотя и не так фичаст.Думаю, стоит закончить минутку флуда т жизни в человеческих языках, пока кресторабы не забили насмерть.
>>898441СпасибоЧуть позже попробую
>>892147 (OP)чего книги из шапок не открываются?
Какую бесплатную иде под линукс убунту посоветуете для кресты? Эклипсе? нетбинс у меня будет занят пхп и жавой.
>>898592Самое начало шапки попробуй осилить.>>898596QtCreator.
>>898615>>QtCreator.Он жеж платный и за комерческое использование надо платить
>>898619В каком-то параллельном мире, да?
Продолжаю изучать С. Прата - "Язык программирования С++. Лекции и упражнения, изд. 4".Дошел до абстрактного типа данных "Очередь (Queue)". И не могу разобраться в одном моменте из примера удаления элемента из начала очереди (см. пик). Может кто объяснит эту строчку кода?P.S.: Попутно передаю привет издательству Вилльямс за перевод 6го издания, у которых "оператор" вдруг становится "операцией", а "бит - это набор единиц..." (в оригинале units of...). И за этот перевод они просят 2-3 килорубля.
>>898688Что зачем? Ты вдруг ты захочешь как-то распорядиться удаленным элементом?По идее, этот метод должен возвращать Item а не bool, а для индикации ошибки делать или ассерт(как в Qt) или дропать исключение (как в stl). Но тут сделали так.
>>898688> примера удаления элемента Это не только удаление, но и возврат элемента вызывающему.
>>898699>По идее, этот метод должен возвращать Item а не bool, а для индикации ошибки делать или ассерт(как в Qt) или дропать исключение (как в stl)Или возвращать optional.
>>898101Например http://nanapro.org
>>898223> В куте меня смущает что часть библиотек под жопаелью, а так же там несколько редакций LGPL.В куте множественное лицензирование, GPL/LGPL/проприетарка.Так что твой вариант - Qt. Ах да, это еще и самая лучшая гуй-платформа вообще.
>>898699>>898701Все равно непонятно. Объясните на пальцах. Что нам мешает удалить элемент без item=front->item?
>>898772Ты дурак что ле? Ничто не мешает, но тогда ты не получишь экземпляр удаляемого элемента. А эта операция называется "получить первый элемент и удалить его из списка". Вытолкнуть в простонародье.Типо как ты достаешь жевачку из пачки орбита - ты достаешь экземпляр для своих целей (сожрать), а в пачке эта подушечка исчезает. То что ты предлагаешь - просто достать ее и выбросить, не имея возможности сожрать.
>>898772Ничего.
>>892147 (OP)Планирую с НГ начать учить С++ и делать свою простую игру.
>>898779>>898701>>898699>Ты дурак что ле?Да вы сами ебланы. Вы блядь не могли сказать, что очередь - не самоцель. И что объекты из очереди берутся именно для того, чтобы над ними произвести какие-то действия.
>>898807Ты че ебанутый? Тебе именно это и сказали.
>>898807Дэбыл. Часто контейнеры для данных нужны как "самоцель"?
>>898802Лучше бы рефлексию планировал
Есть ли какие-нибудь годные сертификаты по плюсам?
>>898843Нахуй тебе сертификат? лучше норм портфолио на гитхабе иметь
Есть типичное ромбовидное наследование пикрилУ B есть метод MethodB, виртуальныйТворим такое: A a = new A();D d = a;Как из переменной d вызвать MethodB, акромя использования dynamic_cast?
>>899052Не знаю.
>>899052быстрофикс:A a = new A();D d = a;Ну а дальше вопрос тот же
>>899070Ответ тот же.
>>899052Используя static_cast.
>>898596KDevelop.
>>899141Редкостное говнище, как и весь KDE—шофтваре.
Анон, помоги. Есть таблица с использованием Unicode символов при её выводе через cout все символы заменяются на знаки вопроса, как это исправить? некоторые из символов, которые я использую
>>899155хех, они и тут не отобразились(
>>899156хех
>>899155вот символы
>>899155wcout
hell yea
>>899165>wcoutНенужен.
>>899165не помогло(
>>899151Гномопидор бомбанул разорваным очком.
>>899155Для начала - чем выводишь? встроенным логгером в IDE, или все плохо и прям в если у тебя сперма - в ее сосноль?С другим утф работает? В частности с русскими буквами?
>>899174Вывожу через локальный отладчик(консоль). С русскими буквами - работает.
>>899155Если под виндой#include<io.h>#include<fcntl.h>_setmode(_fileno(stdout), _O_U16TEXT);
>>899172Пока голая DE из коробки не перестанет лагать (причём на хорошем железе, что как бы намекает) можешь пососюкать писю.
>>899277kdevelop лагает, конечно да, но лагает и qtcreator
>>899280Претензии к кедам а не к ним были. Им до лагов ещё надо хотя бы треть функционала той же идеи выполнять научится.
>>899289Это кстати очень похоже на байт от гугла: они выпускают язык, пиарят его, мол, позволяет экономить на железе, а сами реализовывают идеи быстрее чем модные стартаперы с го и имеют с этого хороший профит.
>>899300>то самое чувство, когда промазал мимо сральника го-треда
>>898964Как сделать норм портфолио на гитхабе за короткий срок?
>>898843bb
Пишу курсач на С++, компилирую через clang++ 4.0Задача - просто выводить на экран текстуру.Решил быстренько сделать это через opengl, но вообще не понимаю, как прикрутить glfw или sdl - готовые бинарники обычно скомпилированы для vs или mingw, да и хуй его вообще поймет как заставить линковщик их подхватить.Пытался собрать из исходников с помощью cmake, но эта срань не видит clang и пытается собрать для msvc.Если использовать либы для msvc15, и в коде написать#pragma comment( lib, "glfw3" )#pragma comment( lib, "glfw3dll" )то получаю огромный список unresolved external symbol.Что делать, как быть?
>>899536Отклеилось:код: pastebin.com/P1nRWcvhошибки: pastebin.com/9z49Pvqzкак лежат файлы:-main.cpp-glfw3.dll-glfw3.lib-glfwdll.lib-GLFW---glfw3.h---glfw3native.h
>>899536У GCC (он же миниговны) и MSVC разные манглеры имен (да и форматы либ тоже), так что тут нужно точно знать для чего у тебя либы.Алсо, посмотри чуть-чуть CMake, емнип, на нем GLFW3 собирается нормально, будет проще, чем вот разбирать твою хуйню.
>>898596CLion.
Cкажите, правильно я написал про signal/slot в QT или нет."Сигнал" - это вовсе не сигнал (какой придурок его так назвал?), а заголовок функции, который привязывается с помощью QObject::connect к существующей функции или методу, одному или нескольким, каждый из которых вызывается с теми же аргументами, с которыми выпущен сигнал.При этом ввиду кривости языка C++ connect принимает не два аргумента (сигнал и слот, выраженные через объекты, которые связываются), а четыре (ссылки на объекты и ссылки на сигнал и слот).
>>899645В 80-е шпана била лампочки по подъездам и привязывала кошкам консервные банки к хвосту.В XX1-м веке у шпаны появились компьютеры и она привязывает заголовки функций к существующим функциям или методам.Что ж, хоть лампочки и кошки целы.
>>892147 (OP)>Не позволяй плюсовику плюсится.>Не позволяй ... плюсится.>тсяТипикал деC++шник.
Привет, мейлач. Можете гнать ссанными тряпками, я пойму, но интересует ответ на один вопрос. Вкатится в кресты решил ради одного эксперимента, сам до этого нихуя толком не изучал. Как-то пытался что-то сделать на PHP, дальше простенького кредитного калькулятора не ушел.Суть вопроса: допустим, чисто теоретически, есть один пользователь. После всех приемов соц. инженерии, вы понимаете, что у вас есть возможность заставить человека запустить какой-то файл ровно один раз и ни разом больше. Цель: получение полного доступа к файлам компьютера, вебкамере, микрофону и т.д.Что уже понятно: вы не будете использовать какие-то известные трояны, ratы и прочую залупу ибо раз они побывали в общем пользовании, то в 99% случаев палятся антивирусами. И вот вы решаете писать что-то самостоятельно, обладая нулевыми начальными навыками. Чтобы написать полноценный ратник уйдет охуенно большое количество времени, поэтому нужно более простое и быстрое решение. Какой бы вы выбрали путь? Т.е. что именно вы бы попробовали написать? Мне в голову пришла только одна идея: написать какие-то ворота так скажем, какую-то простую утилиту, которая после установки человеком даст вам очень простой функционал: прием и запуск любых файлов с правами администратора на зараженном компьютере. Такая утилита помогла бы установить какой-нибудь кейлогер, какой-нибудь файловый менеджер с откликом на отдельный ip, какую-нибудь программу для трансляции с вебкамеры и т.д.Собственно вопрос: я ебанулся и это нихуя не простая утилита получится, которую тоже охуенно долго писать придется? Есть какие-то более простые способы? Что бы ты выбрал, анон?
>>899671Лучше к ОГЭ готовься.
>>899672Тебя не спросил, что мне лучше.
>>899671Современные бесплатные антивирусы уже давно юзают поведенческий анализ.Им все-равно публичный бэкдор или нет, но если они видят, что это чудо тянет свои ручонки к вводу/выводу системы, они отрубают ему руки и рапортуют юзеру об очередном наглеце.Платные антивирусы еще и анус досматривают.
>>899679Спасибо за ответ, тогда переосмыслю свои желания, отрекусь от идеи и пойду лучше в дотку катать.
>>899671>Какой бы вы выбрали путь? Т.е. что именно вы бы попробовали написать?Как раз пишу ратник, сейчас пилю келоггер на основе RegisterRawInputDevice. Самое сложное, видимо, будет написать графическую оболочку для админки (наверно, буду юзать кьюте) и свой сетевой протокол для более удобного получения инфы.>Современные бесплатные антивирусы уже давно юзают поведенческий анализ.Обламывается же антиэмуляцией, не? Во всяком случае, мой криптор позволяет бес палева запускать всякие спидораки. Как еще можно повысить беспалевность?
>>899684>бес палеваБлять, проиграл с опечатки, сотона.Алсо, что еще можно предусмотреть для успешности back connect'а?
>>899671>вы не будете использовать какие-то известные трояны, ratы и прочую залупу ибо раз они побывали в общем пользовании, то в 99% случаев палятся антивирусамиУ меня кейлоггер на основе лоулвл-хука и raw input палился уже после компиляции в релизе, так что остается только криптовать.Алсо, читали, какая дыра была в К. Спермском, благодаря которой raw input кейлоггер перехватывал данные даже из защищенного окна с виртуальной клавиатурой?
>>899684Насчет крипторов тоже кстати искал тему. Ну изначально я смотрел в сторону самых свежих паблик ратов + криптора, но потом читал и читал форумы, еще раз читал и читал форумы, как итог понял следующее: паблик раты палятся, сильно и всеми палятся, дико ненадежные и отваливаются очень часто + вещают на сторону ибо постоянно с чем-то склеены, а паблик крипторы тоже палятся + еще и убивают стабы ратов часто так, что от него толку становится 0, он просто не установится. Если есть какой-то отдельный тред для обсуждения подобной хуйни, я б перекатился, чтоб вам не засирать тут не по теме, но что-то при беглом взгляде не нашел ничего подходящего.Все тот же кун с вопросом
>>899687>а паблик крипторы тоже палятся + еще и убивают стабы ратов часто так, что от него толку становится 0, он просто не установитсяИбо надо писать рантайм криптор, а не пидорасить экзешник.
>>899689Я правильно понял, что это криптор который будет вшит в тело программы и запускаться будет раньше основных функций программы, чтобы водить антивирусы за нос?
>>899691Распаковка программа в памяти и запуск тоже в памяти. Гугли RunPE, LoadPE, LoadDLL.
>>899693Бегло погуглил и понял, что я от этого вообще очень далек. Эх, хуй с ним, может удастся найти какого-нибудь человека, который за небольшое количество шекелей реализует мою затею.
>>899698За большое количество шекелей сделают. Алсо, нормальный ратник одному написать тяжело, а сделать народную малварь всем форумом не получится, ибо командная работа обязательно развалится. Так что давай сам учись.
>>899669Одно журацкое слово вместо другого, в чём разница?
Есть пик 1 и код, с пик 2.Что я делаю не так, антош? Помоги :3
>>900366У тебя textBox2_p не определён в текущем контексте. Перед ним ещё что-то должно быть.
>>900371Например что?
>>900378p.s. Во всех примерах пишут именно так и всё работает, а тут ...
>>900378Это зависит от того, что такое textBox2 и что из себя представляет sender. Там, наверно, должно быть что-нибудь вроде static_cast<MainWindow1>(sender)->textBox2 ... Неужели нигде нет подобного участка кода, чтобы посмотреть, как там обращаются с подобными объектами?
>>900366Это не C++, так что изволь удалиться отсюда.
>>900382Ну вот есть подобный участок кода.textBox2_p это элемент windows forms, строка в которую юзер вводит данные, ну и мой код, который вызывает ошибку, я прописываю в кнопку.
>>900383А что же это?
>>900384Ну, попробуй ui->textBox2_p->Text
>>900384А что за _p вообще на конце? может, просто textBox2->Text ? Или this->textBox2->Text хули тут думать прыгать надо
>>900406То же самое...>>900407>_p Это просто буква "р" на конце, не суть ведь.Как ни странно, но ничего из этого не работает, всё та же ошибка. Может ещё где-нибудь копнуть?
>>900410Где это определяется? ты можешь объявление textBox2_p в классе найти?
>>900385Это clr-залупа с похожим синтаксисом для биндингов.
>>899052Используй mega_cast.
>>898460>Окамл-то может во всёДа не может он в multicore, это самый недостаток ocaml>Ты сейчас удивишься, но используетсяТы сейчас удивишь, но не используется нигде.
стоит ли смотреть ковыряться в с++ для расширения кругозора? или сразу раст пробовать?мимо джава-миддл
>>900450Для расширения кругозора лучше сразу Хачкель, после него расты, шарпы, свифты и современные кресты гораздо лучше пойдут.
>>899671то что ты описал, это функционал дроппераа не полноценного ратника
>>900411Как-то так.
>>898843stepik.org/course/Подготовительная-программа-по-программированию-на-СC++-144stepik.org/course/Углубленное-программирование-на-CC%2B%2B-153stepik.org/course/Многопоточное-программирование-на-СС%2B%2B-149/
>>900461Я лошара, всё понял -_-Спасибо, анон.
>>899645Сигнал - это функция, но ее генерирует MOC. Сигналы ты можешь вызывать без ключевого слова emit, в коде оно не значит ничего, даже для MOC-препроцессора.
>Ошибка C2440 инициализация: невозможно преобразовать "System::String ^" в "char"Как преобразовать этот злоебучий String^ хоть во что-нибудь, хоть в std::string, хоть в char?
>>900774>>900383
>>900774Пиздуй в дотнет-тред.
>>900366Нахуй ты это делаешь, извращенец?
>>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
>>900852Что именно?
>>900933Жрёшь гов^W C++/CLI
>>900933Живешь.
>>892147 (OP)бля я раньше писал на крестах (до выхода c++ 11), потом несколько лет в него не лез, ЧТО СДЕЛАЛИ С ЯЗЫКОМ?? какие нахер decltype(auto)? constexpr? std::initializer_list? и еще куча говна, зачем они его так усложнили..
http://templeos.org
>>901441>ЧТО СДЕЛАЛИ С ЯЗЫКОМПопытались привести его к юзабельному виду. Не всегда удачно, но, в общем, стало заметно приятнее пользоваться языком. До этого он был вообще неюзабелен.
Есть литература по Qt чтобы быстро въехать? Посмотрел Шлее, эт пиздец, очень много воды и всякого.
>>901666Ты не знаешь, что такое виджеты?
>>901666http://www.bogotobogo.com/cplusplus/files/c-gui-programming-with-qt-4-2ndedition.pdf
>>901666doc.qt.io
>>901666Шлее - полная хуета, как по мне. Там две трети книги можно выкинуть и все равно останется еще до кучи всякого говна.Однако же, для самого начала, все же нужно разобраться, как работают сигналы-слоты (по-хорошему сразу красивый синтаксис, который пришел с c++ 11, а не то ебаное говно SIGNAL(signame) ... SLOT(slotname))А так, проще всего будет научиться по примерам, если уже в крестах чего-нибудь да шаришь, да и документация у них небедная (не то, что у некоторых по доксигену - ни примеров, нихуя, своя терминология, заебешься порой).
Есть функция, которая в качестве одного из аргументов принимает float (*f)(float). Есть советы как написать передаваемую функцию внутри списка параметров функции принимающей? не гуглится
>>902086>>написать передаваемую функцию внутри списка параметров функции принимающейЗачем?Ты хочешь передаваемую функцию написать внутри принимающей. Как функция "Запустится" если не примет функцию?
Жил-был СТРАУСТРУП. Шел обычный, скучный день. СТРАУСТРУП занимался рутинными вещами, такими как ебля своей трехсоткиллограмовой матери в зад. Только успев кончить матери в пердак и вынуть измазанный в говне хуй, СТРАУСТРУП услышал стук в дверь. Не заметив, что его мать умерла от сердечного приступа еще 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 СТРОК СООБЩЕНИЙ ОБ ОШИБКАХ, компилятор скончался от ЛЕНИВЫХ ВЫЧИСЛЕНИЙ ПРЯМОЙ КИШКИ и из монитора вылетела ЛЯМБДА. Придерживая круглые скобки квадратными скобками, ЛЯМБДА в ужасе съеблась под ближайший камень. Ей еще долго не захочется принимать и возвращать значения. Довольный СТРАУСТРУП плюнул в руку, чтобы наслюнявить хуй и уже решился залезать на мамочку, но передумал и решил вначале запостить эту историю на ДВАЧ.
>>902144Поясните дауну, чем так ЛЯМБДЫ не угодили?
>>902155Это хуйтер опять свой хаскел сюда притащилНе обращай на него вниманияЗавидует, что ему лямбду не завезли
>>902166А зачем лямбды нужны? Неужто лень создать еще одну, нормальную функцию?
>>902198А потом еще 140 и потом сидеть разгребать кучу дерьма.
>>901666Читаешь самое начало Шлее. Первых три главы. Ну и все. Потом в документации читаешь про нужные классы и ебашишь.
>>902198Ага, в скопе текущей функции, захватив несколько переменных.
Банально не знаю, как гуглить такое.Попался кусок кода, а я в нем не понимаю, что делает конструкция такого вида:(--top) = n;n имеет это intтоп до этого объявлялся так:int arr, top;arr = new int[size];top = arr + size;штука с -- мне понятна, оставил ее на всякий случай, а вот что делает * слева от знака присваивания непонятно.
>>902682Забыл про макабуфикс(тут звездочка)(--top) = n;n это intтоп до этого объявлялся так:int (тут звездочка) arr, top;arr = new int[size];top = arr + size;
>>902682Звездочка означает рызыменование указателя
>>902198в крестах лямбды - синтаксический сахари если принять это и не бесится по этому поводу, то они катастрофически сокращают объем кода в нужных местах, упрощают его понимание (что и должен делать хороший syntax sugar)
>>902694Ага. Поэтому ядро linux на Haskell переписывают?
>>902706Что за дичайший хайп вокруг хаскеля??
стл пиздец мозги коробит. Уже стал замечать, что начинаю забивать на структуры и юзать только pair. Говнокод состоит изfor (const auto& hui : pizda) hui.second.second.fist.second()чуть менее чуть полностью.
>>902706Вернись в похапе-тред.
>>902712Хороший код
> for (const auto& hui : pizda)у меня встал
>>902692Какой смысл разыменовывать указатель слева от знака равенства? Мы получим доступ к объекту разве? А не к его копии? Ну вообще да это логично.
>>899052d.B::MethodB
>>902778Ньюфагов полон тред.
Есть двумерный массив элементов PictureBox pb. Есть двумерный массив Arr такой же размерности с некими данными. Как сделать, чтобы при нажатии на, к примеру, pb[1, 2] в переменную A записывались данные из Arr[1][2]?
>>902851Например у каждого PictureBox выставляешь таг в зависимости от координат PictureBox. Пишешь обработчик события onClick который считывает таг PictureBox которое вызвало событие и записывает нужные данные. Вешает обработчик на все PictureBox.
>>902854Думал об этом, но как через таг 2 значения передать?
>>902863таг = ширина * у + х
>>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[???][???];} Что должно быть вместо вопросительных знаков?
>>902873>Что должно быть вместо вопросительных знаков?Должно быть пошёл уже нахуй отсюда в C#-загон
>>902877Нет, сам нахуй иди.
>>902879Нет.
Возможна ли перегрузка статической функции?
>>902935Да.Если ты имеешь в виду виртуальную статическую функцию - нет.
Мне непонятно почему ни в одном из тредов про языки нет ссылок на стандарты. Имело бы смысл, не правда ли? Причём на все.
>>902873Отнаследуйся от PictureBox и добавь две переменных для индексов.
>>902936Из этого что будет правильно?
>>902987>Из этого что будет правильно?Нахуй иди. Надо было учиться весь семестр, а не последние 2 недели
Объясните еще раз, какие преимущества у крестов перед, ну например, джавой?
>>902989На хуй тебе дорога, шкураЯ это уже сдал и сейчас просто хочу узнать ответ
>>902990Они не тормозят.
>>902992Я знаю, что джава не тормозит, а у крестов есть преимущества?
>>902991Спроси у препода, гений
>>902992>Они не тормозят.А можно ссылочку на замеры?
>>902998Ты думаешь они особо разговаривать с нами хотят?
>>903005Сам виноват, школодебил.
Анон, если скомпилить файл.о в исполняющий, он же должен как и в линукс так и в виндовс запускаться, ведь верно же?
>>903006Я не твой отец чтобы меня венить в чём-либоСвали в /b уже, уёбок
>>903008
>>903008Нет. Там разные форматы (ELF и PE).
>>903020>венить>Свали в /b уже, уёбокЛучшей демонстрации твоего невежества сложно придумать
>>903023А как же кроссплатформенность? там и там gcc, на виндовс запилить ехе на линукс свой формат
>>903038Два раза компилить надо
>>903038GCC то соберет, а вот как ты виндовский бинарник будешь на линупсе запускать без вина, вот это мне уже интересно. У них, мало того, что загрузчик в память различается, так еще и API совсем разные.
>>903052Ну так я и не собирался ехе под линукс, у линукс есть свой формат, не знаю какое расширение, ну ведь хелло форлд запустится, какие-то общие моменты можно найти
>>903038Под кроссплатформенностью подразумевается компиляция из одних исходников без их изменения.>>903067> хелло форлд запустится, какие-то общие моменты"хелло форлд" это I/O - там просто так никаких общих моментов не может быть, разработчикам нужно договариваться. Хелло ворлд - технически достаточно сложная программа. У нее исходник простой, так как сложность скрыта библиотеками и системным апи.
>>903067Взгляни на программу для DOS и Linux на ассемблере (простейший hello world) и увидишь, что уже, как минимум вызываются программные прерывания с разными номерами, это простейшие примеры того, что бинарники не совместимы теперь уже совсем.
Пасибо
>>903100Пажаста
>>902706>ядро linux на Haskell переписываютНикто ничего на него не переписывает.На хачкеле свои ОСи и ядра имеются, но их никто не использует.
Ананасы, в вузике пытаются скормить пикрил. Это пиздец или я чего-то не понимаю?
>>903251Да, это пиздец.Вызывать методы у nullptr это UB. Но такую хуйню, как на твоих картинках, делают даже в казалось бы нормальных проектах типа Qt. интересно, что мартышки, хуесосящие STL и восхваляющие Qt на это скажут, лол. Но этому недолго осталось быть, недавно вышедшая версия g++-6 при constant propagation наконец-то полагает, что this != nullptr и, следовательно, код вида if (this == nullptr) { do some shit } просто вырезает, т.к. условие всегда ложно.
>>903264Вот, clang просто предупреждает, gcc выпиливаетhttps://godbolt.org/g/sCwgwN
Мне кажется я достиг уровня Бога крестов, сучечки.
>>903270Как цветовая схема называется?боги используют корутины, а не колбэки
>>903270Жаваскрипт у тебя какой то.
>>903272>Как цветовая схема называется?Вручную настраивал.>боги используют корутины, а не колбэкиЭто клиентский код мобильныйх платформ.Да, я рву шаблоны С++14 кроссплатформой под мобилы.Конечно корутины и там можно сделать, но в крестах корутины в принципе ненужная вещь в себе.
>>903274>кроссплатформой под мобилы.И на каких платформах это работает?
>>903274>Вручную настраивал.Табы или пробелы?
>>902990первое: прямой доступ к памяти (тк нет виртуальной машины)второе: предсказуемое время выполнения исполняемого кода (тк нет сборки мусора)третье: механизм реализации шаблонов отличен от механизма ява дженериков, что в конечном итоге дает более быстрый код
>>903267Ну или так, отдельно в методе тоже выпиливает
>>902992лучше говорить что с++ код имеет предсказуемое время выполненияв общем это справедливо будет для языков с прямым управлением выделения-освобождения памяти и языков с управлением памяти основанным на подсчете ссылок и неверно для языков где реализована сборка мусора
>>903273А так и должно быть, кресты скоро взъебут джаваскрипт изъебством синтаксиса, при сохранении перформанса, и это прекрасно.>>903275>И на каких платформах это работает?Ну mobile-first крестоядро, Ios и Android, для взаимодействия с Java и Swift кодом - кодогенераторы интерфейсов.Можно под windows-phone легко портировать, там кресты искаропки. А так как вообще взя бизнес логика в крестоядре, линкуемом с опенсорсными статик либами, то и под десктопы влегкую.>>903276Табы
>>903280>ТабыАдекват в треде.
>2к77>даже хачкель уже компилируется род мобилы>нет я буду отправлять и принимать запросы на крестах
>>903285Хачкель ненужное говно для матанонеудачников.Ты не поверишь, но я как то компилил Окамль со всем рантаймом внутри в статик либу под Ios.Но при этом я бы никогда не смог объяснить заказчику, да и себе, зачем это нужно на реальном проекте.Да и на крестах можно такие боярские изъебства с дженериками мутить, что можно смотреть на хачкеледаунов свысока.Вот тебе отрывок из constexpr string'ов, с возможностью constexpr хэшинга, которые я как то для фана писал.
>>903270Чёт не понял.Что делает onError, если onResponce приходится проверять?
>>903301В первый раз onError колбэкается при низкоуровневых ошибках, вроде отсутствия интернет-соединения, в onResponce делается парсинг джсона от сервера и там тот же самый onError колбэкается, если сервер в джсоне ответил ошибками валидации данных.Потом вся эта хрень пропагируется из крестоядра через автогенерируемые интерфейсы (Errordescriptions - это typedef для автогенерируемого класса) в ui-код на Swift и Java 8, где уже и показывается пользователю. Отака хуйня.
>>903297Зачем constexpr в параметре шаблона? Что за constexpr inline? Почему касты C-style?
>>903270логин/пассворд поменяй на const ссылку
>>903297А теперь, друг мой дорогой, объясни нам, глупышкам, кому вообще сдалось хешировать строки на этапе компиляции, нахуя ждать по десять минут пока скомпилится твой высер и насколько это быстрее аналогичного кода на С длиннй в 20 строчек. а еще насколько читабельнее ошибки компиляции
>>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/Но, еще раз повторяю - оно для фана, и ,вообще, да, нахуй оно никому не сдалось, конечно.>а еще насколько читабельнее ошибки компиляцииСтатик ассерты повтыкал с нужным тебе сообщениями ошибок и теперь хоть обдрочись на читабельность ошибок
>>903340>нахуя ждать по десять минут пока скомпилится твой высерКаково это кстати в 2017-м без STL жить из-за фобии долго компилить темплейты?Туда ли ты вообще зашел, plain-С петушок?
>>903328>Зачем constexpr в параметре шаблона?А все таки есть, лол. Ну компилится и похуй как я уже сказал.
>>903411Вкинь ещё пожалуйста статей по с++11\14.Почти освоил Майерса, но этого чего-то мало.
>>903297Это же только предложение, насколько я понимаю, или уже внесли в стандарт?
>>903415Самого трупа страуса посмотри/почитай, он годно всех призывает перебороть академическую закостенелость в массовом кресто писательстве и войти в светлый мир современных крестов.Он вообще советует начинать изучение с 11 и 14 стандартов, а прошлый забыть как страшный сон. Как бы только еще эту мысль самого создателя языка донести до лысеющих тимлидов под 40 и совсем уже лысых преподавателей в вузиках, считающих, что всякая auto и лямбда от лукавого. Вот сириусли, так же как церковь в свое время тормозила прогресс, сжигая ученых, так же и они своим превратились в неадекватных консерваторов, не принимающих новое только из-за своей закостенелости.https://www.youtube.com/watch?v=1OEu9C51K2AFive Popular Myths about C++https://isocpp.org/blog/2014/12/myths-1https://isocpp.org/blog/2014/12/myths-2https://isocpp.org/blog/2014/12/myths-3>>903418Ты про что, про string literal operator?Везде где есть с++14 компилится уже, правда у меня с определенного момента изъебства Clang начал компилится через раз, лол. Добавишь пробел - компилится, уберешь - segfault компилятора.Я поэтому и написал свой класс constexpr стрингов с объявлением из макроса, тому шо через литеральный оператор падало.
>>903415А ну и конечно главный дар человечеству, подаренный 11-м стандартом - это модель памяти.Читай про std::atomic и учись его применять.Сначала прочитай главу 5 параллельного программирования на c++ в действии https://rutracker.org/forum/viewtopic.php?t=4373610Потом можешь читнуть цикл статей про lock-free структуры этого достойного человекаhttps://habrahabr.ru/post/197520/
>>903423Про передачу строк в качестве шаблонных параметров, или как оно там правильно называется (проебал номер предложения), в общем это:>>template<typename char_t, char_t ... chars>
>>903425Кстати, про lock-free структуры. Этот тип упомнял про семантики acquire/release/consume/relaxed/seq.cst., однако нихуя не рассказал про семантики #LoadLoad, #LoadStore, #StoreLoad, #StoreStore, поэтому (во всяком случае для меня) начало статьи было нихуя не понятно. Вот тут про них подробнее:http://preshing.com/20120913/acquire-and-release-semantics/
>>903434Пардонте, не та ссылка:http://preshing.com/20120710/memory-barriers-are-like-source-control-operations/
Если я -- умственно отсталый, изучающий кресты ровно один месяц, стоит ли мне уже сейчас пробовать использовать библиотеки из boost? Например, там есть is_palindrome.hpp; мне можно элементарно включить в проект VS, затем вызывать, когда необходимо?
>>903518Можн. Если не лезть внутрь - стоит конешно, как минимум доки научишься читать.
>>903414>>Зачем constexpr в параметре шаблона?>А все таки есть, лол. Ну компилится http://ideone.com/sb69ee
На чем лучше рисовать графику простую? SFML или QT? Или еще что?
>>903681А directx или opengl не нравится?
>>903719А я не пробовал. Мне они кажутся сложными для моих целей. Я ошибаюсь?
>>903722ошибаешься.
>>903722http://pmg.org.ru/nehe/
>>903726Ну, спасибо тогда.
>>903731Я линуксобог
>>902987Бамп
>>903739Первый вопрос - какой-то бред. Второй - 1.
>>903763Ну на первый я тоже замучился отвечать,а второй парень с потока ответил 'Ю', хотя я прям уверен, что "\022"
>>903811Ну с 'Ю' там сложный вопрос. Стандарт никак не определяет какой набор символов можно использовать. Возможно в С стандарте что-то определено, хотя бы минимум. То есть, является ли 'Ю' допустимой символьной константой будет зависеть от компилятора. Но. В задании вопрос про "недопустимую запись символьной константы". 'Ю' это допустимо записанная символьная константа, даже если она сама по себе не является допустимой для конкретного компилятора. А "\022" это именно недопустимая запись символьной константы
>>903821У меня на MVS2015u3 это какая-то вертикальная черта. Ноя проверить не мог тк в аудитории делал и поэтому засомневалсяЯ точно знал что константа записывается в одинарных ковычках, но то ещё с потока парень давай писать, что не верный вариант 'Ю'Но ответил в что строка не является константой
>>902596Бампну
Бля. Хочу срач устроить. Только не дебильный типа "табы против пробелов". Что бы такое придумать?
>>903882Точки против стрелочек
>>903882Монады vs что угодно.>>903889Дык, точки заставляют писать на 2 символа больше чем стрелочки (скобочки требуются при разыменовании), это однозначный вин стрелочек.
>>903919>Монады vs что угодно.Все знают, что монады — лутший подход. Никакого срача не выйдет.
>>903920Ну я вот считаю что текстовые макросы лучше этого говна на тайпклассах. Давай, сучка, возрази мне. на самом деле я хочу быстрее заспамить этот тред и перекатить в новогодний но нг, лол
>>903923>Давай, сучка, возрази мне.Возразил за щёку.
>>903924С мамкой своей так разговаривать будешь.
А я пока пойду наебашу монадный трансформер на макросах и няшной.
тайпклассы >> наследование
>>903930Интерфейс > тайпкласса. В нем данные можно хранить.
>>903931>В нем данные можно хранить.Любишь в попу?
>>903940говно соси пидор
Господа, имею вопросы:скачал себе книгу Страуструпа, установил CLion. Что я вижу? Он предлагает записывать хелловордл так:#include "std_lib_facilities.h"int main(){ cout<<"Hello, World!"; return 0;}ПОшёл на его сайт, скопировал оттуда код для этой библиотеки. В итоге ничерта не работает код, пишет ошибки в этом стдРаботает в CLion (они даже сами создают хелловорлд, когда новый проект делаешь): #include <iostream>int main(){ std::cout<<"Hello, World!"; return 0;}Стоит ли дальше по этой книге продолжать изучать? не будут ли такие расхождения нарастать в количестве? Что это вообще?
>>903966Страуструп пишет справочники, а не учебники, у него такой вот жутко нудный стиль. Найди себе в шапке что-то для нюфагов.
>>903967Так это и есть из шапки и для нюфагов
Адреса в стэке это адреса в виртуальной памяти? Значит при каждом следующем запуске хэлоуворда все адрреса должны быть одинаковыми? Тогда почему отсчёт идёт не с нуля? Почему у функции main каждый раз разный адрес? По ассемблеру давно какую-то брошюру читал. Что почитать чтобы понять как компилятор и линковщик с этими адресами работают?
>>903978Бля пздц.
>>903980Чего? Книжку дай. Но маленькую
>>903981Короче, гугли "ASLR" и не приставай больше к нам. Без тебя дел хватает.
>>903982>ASLRНе это не всё. Вот например если создать объект в одной программе. Ввести его адрес в другую и разыменовать. Естественно с самым послушным кастом превратить его в указатель нужного типа. Вторая программа не найдёт объект первой программы. Даже если адреса специально рандомизированы, то это должно было сработать. А раз не сработало, то эти адреса в виртуальной памяти. Тогда что с динамической линковкой? Там же происходит почти то же самое. Известны только относительные адреса и надо передать их другой программе.
>>903984http://eli.thegreenplace.net/2011/08/25/load-time-relocation-of-shared-libraries/http://eli.thegreenplace.net/2011/11/03/position-independent-code-pic-in-shared-libraries
>>903985Это всё? А есть набор статей курс на эту тему где я по оглавлению буду выбирать какие темы я не знаю и что нужно прочитать?
>>903986http://www.iecc.com/linker/
>>903987> Date: 1999/06/09 00:48:48Есть что-нибудь из этого тысячелетия?
>>903988Бóльшая часть того, что там изложено, принципиально не менялось с конца 40-х.
>>903989Ну ок. Спасибо.
>>903966бамп вопросу
>>904082Вась, блядь, ну тебе же по-русски сказали сменить книжку.И да - пока ты не вбросишь код самой ошибки никто тебе не скажет в чем дело, запомни это, так везде.
>>904082Зачем тебе std_lib_facilities.h?Естественно, чтобы это начало собираться, тебе необходимо наличие этого файла в путях поиска или в текущей рабочей директори.ЕМНИП, он в этот файл заносит включения необходимых заголовочных файлов из std, ничего более. Так что можешь выкидывать файл к ебени матери и заменить этот include непосредственными включениями стандартной библиотеки.Как раз в твоем случае #include <iostream> вполне досаточно.
>>904094>>в текущей рабочей директори.Я её на рабочий стол скопировал
>>904131пиздец
>>904094Спасибо, именно этот ответ и хотел услышать. >>904131Не притворяйся мной>>904091Блядь, эта книжка в шапке для нюфань. Ну посоветуй лучше какую-либо.
>>903966>В итоге ничерта не работает код, пишет ошибки в этом стдКоторые ты, пидорас, нам не покажешь.
>>904154Только не воспринимай это как приглашение показать.
Ребят, блядь, ну 10 постов-то поднажмите, высрете перед нг.
>>904156Тщщщ, а то еще выложит и помогать проидется же.
>>903413STL не настолько вымазана шаблонами (по крайней мере, те ее части, которые всеми используются.
>>904161вот один.
ПЕРЕКОТhttps://2ch.hk/pr/res/904165.htmlПЕРЕКОТhttps://2ch.hk/pr/res/904165.htmlПЕРЕКОТhttps://2ch.hk/pr/res/904165.htmlПЕРЕКОТhttps://2ch.hk/pr/res/904165.html
ПЕРЕКОТhttps://2ch.hk/pr/res/904165.htmlПЕРЕКОТhttps://2ch.hk/pr/res/904165.htmlПЕРЕКОТhttps://2ch.hk/pr/res/904165.htmlПЕРЕКОТhttps://2ch.hk/pr/res/904165.htmlПЕРЕКОТhttps://2ch.hk/pr/res/904165.html
>>904166РАНО
С новым годом!
Все. Фух. Всегда напряжно.
>>904171Долбаёб
>>899536прописать пути до либ и инклудов и #pragma comment(lib,"zalupa.lib")с SDL в 15\17 студиях много проблем, придется гуглить про legacy_stdio_definitions
>>907986Давун