Вместо шапки - https://github.com/sosachbot/cppthreadhat/wikiОтветы на все вопросы - http://en.cppreference.com/w/ http://www.cplusplus.com/reference/Прошлый - https://2ch.hk/pr/res/1295983.html
>>1307271Самый выразительный - пайтон. Кресты - нагромождение костылей и нечитаемое говно, если пишется кем угодно, кроме тебя самого.
Атомики на многопроцессорных машинах это нонсенс. Даже костыли для контроля когерентности памяти не решают всех проблем связанных с архитектурными особенностями процессоров. Прув ми вронг.
>>1307284Самый выразительный - forth. Питон - вот это реальное нагромождение костылей, лучше уж C++ чем это раздражающее def __govno__.
сап, смплюсачи, а есть ли библиотеки для отображения графики в консольке, по типу far. кнопочки, окошки...
ООП самый большой костыль когда-либо придуманный по причине человеческой лени, безответственности и человеческого фактора в коллективной работе. Классы и объекты это лишь сегментация высокоуровневой абстракции, оберегающей программиста от детских ошибок в личном проекте (из-за невозможности нормально проектировать программы), а также спасающей от полного понимания проекта при разработке в команде от двух и более людей (лень, преумножающая награмождения избыточными конструкциями).В итоге проекты на данной парадигме развиваются абы как с кучей навоза лишнего кода, но этот код работает и даже не взрывает компьюктеры при запуске программы. Однако такое балавство чревато десериализацией личности, осуществляющей выробатку самых низших качеств и разрушением ментального потенциала. Проекты на ООП живут в кризисе продуктооборота и при достижения критической точки выбрасываются без возможности быть разобранными падальщиками, так как кишки настолько сильно переплетены и набиты говном, что от них воротит только при одном виде (в результате время потраченное на проект равно нулю).В этих ваших плюсах есть конечно что-то и хорошее, те же шаблоны и перегрузки, но и они не нужны, так как необходимость в их использование лишь возможно при отсутствии воображения и фантазии программиста не способного для анализва при близко-сопряженного спектра функций определить минимально возможное отличие и привести реализацию к выворачиванию функционала наизнанку, ведь для этого нужно такое большое усилие мысли, которое отсутствует у большинства, потому что они над своим разумом не работают от слова совсем.Наслаждайтесь и обмазывайтесь своими Сипюлями без возможности на реабилитацию от ментальной дистрофии.
>>1307371ты так боишся серьезных языков программирования? так может тебе дальше vb лучше и не смотреть?
>>1307371видишь ли, на с/с++ можно делать практически все, по той причине, что пракатически все сделано на этих яп.
>>1307371>ООП самый большой костыльчто плохого в том чтобы делать композицию данных с методами, их обрабатывающими?что плохого в том чтобы инкапсулировать данные, скрывая и защищая их?что плохого в том что на уровне языка реализуются семантические конструкции реализующие статический, динамический и ad-hoc полиморфизм?что плохого в том, чтобы проектировать архитектуру приложения как совокупность объектов, взаимодействующих друг с другом через посылку сообщений? для многих прикладных областей это очень полезно
>>1307399>мимо академикну как с ооп вообще все задачи моделирования удобней делатьесли язык не поддерживает ооп из коробки, то приходится руками многое делать, например, в случает когда задачи моделирования решаются на си
годные онлайн курсы для новичесовна степике лучше пройти курс от cs center, чем аналогичный от mail.ru, это https://stepik.org/course/7и его продолжениеhttps://stepik.org/course/3206этот курс бесплатныйвторой курс от ребят из яндекса и физтеха на платформе cousera:https://ru.coursera.org/specializations/c-plus-plus-modern-developmentучтите, что он платный, но, в принципе, если вы готовы платить за обучение, лучше взять этот курс, а не другие которые есть на рынке, imhoбазовые знания с которыми вы должны выйти на собес можно взять из мейерс "эффективный и современный c++. 42 рекомендации по использованию c++11 и c++14"джосаттис "шаблоны c++: справочник разработчика" второе изданиевведение в параллельную обработку для самых маленьких:энтони уильямс "параллельное программирование на c++ в действии"все на русском, все есть в цифре в сетивидео с конференций и митапов, надеюсь кого-то они развлекут:cppcon russiahttps://www.youtube.com/channel/UCJ9v015sPgEi0jJXe_zanjA/featuredcorehard братишек-белорусовhttps://www.youtube.com/channel/UCifgOu6ARWbZ_dV29gss8xwcpp-party от ребят из яндексаhttps://events.yandex.ru/events/cpp-party/cppconhttps://www.youtube.com/user/CppConboostconhttps://www.youtube.com/user/BoostCon/featuredmeeting c++ от дойчейhttps://www.youtube.com/user/MeetingCPP/featuredстарички accuhttps://www.youtube.com/channel/UCJhay24LTpO1s4bIZxuIqKw/featuredпитерский митап по с++https://www.youtube.com/playlist?list=PLtDc3cNvuhAIU_LRYg6xFaJV_95Kkt79n
Ку. Что такое внешний метод? Реализовать в классе метод упорядочивания информации в массиве, а так же внешний по отношению к классу метод реверсивного переворота информации в массиве.Где мне его объявлять получается?Класс шаблонный ес чо.
Перестали подчеркиваться ошибки в VS.Теперь не подчеркивает, например, что я не объявил переменную, что нельзя такое значение присвоить, что нету такой функции и т. д. Делал сброс настроек, но не помогло.
Это нормально что long и long long у меня занимает одинаковое количество байтов? Какой тогда профит от использования long long?linux 64bit g++ c++11
>>1307701Да, всё верно. По стандарту си int должен быть минимум 2 байта, long - четыре байта. long long - 8. На некоторых платформах int в самом деле 2 байта (на ардуине, лол). Видимо, на современных системах 2 байта не дают выигрыша по сравнению с 4 и они увеличили int до 4, ну и ещё там всякое выравнивание в памяти, всё такое.mingw-64, ексешник компилируется под х64, "-std=c++14".В первый раз напоролся на четырёхбайтовый long и почти час пытался понять в чём дело.long double 16 байт, но реально используется только 10, если оценивать машинную эпсилон. То есть шесть остальных можно свободно перезаписывать под что угодно, на значение они не оказывают влияния.
>>1307701В никсах используется LP64В виндах LPP64. Вот там как раз лонг будет 32 битаhttp://www.unix.org/version2/whatsnew/lp64_wp.html
По поводу использования unsigned: (паста)В игре Civilization есть баг с механикой агрессии и миролюбия. Суть такова, что агрессивность цивилизации измерялась по шкале от 1 до 10. Девятки и десятки были у всяких Чингисханов, Монтесум и Сталиных, а у духовного пацифиста Махатмы Ганди была единичка. И ещё были модификаторы — строй «республика» уменьшает агрессивность на 1, «демократия» — на 2. Соответственно, сразу же, как только индусы открывали Демократию, у Ганди становилась агрессивность −1.А теперь внимание. Эта переменная была однобайтная и строго неотрицательная(unsigned), от 0 до 255. Соответственно, агрессивность Махатмы Ганди становилась равна 255 из 10. Поэтому, построив у себя демократию, Ганди двигался рассудком, клепал ядрёные бомбы и умножал всех на ноль.
Сап плюсаны, недавно коллеги джавоскипто-петухи наехали на моё желание изучать плюсы в 2к18, стали гнать меня, насмехаться. Я конечно аргументированно послал их чистить вилкой свой говнокод, но сомнения таки закрались. Учу плюсы чтобы перекатиться из своей уютной Java веб-разботки финансовых сервисов в хардкорный HFT, где без плюсов никак. Развейте сомнения, аноны.
>>1307737>Ганди двигался рассудком, клепал ядрёные бомбы и умножал всех на ноль. Типичный undefined behaviour.
>>1307738Пока вот так пофиксил:meaning(const char s[]) { strcpy_s(str, s); }word(const char s[]) { strcpy_s(str, s); }Есть варианты получше ?
>>1307763Ты все правильно сделал, потому что текстовый литерал это const char*. Другой вариант -- использовать std::string в аргументе конструктора. Кстати, использование C-style кастов (type) obj считается плохим тоном (у нас в продакшене правда всем похуй, там таких большинство).
>>1307766Лучше написать вот так:dictionary.insert(pair<word, meaning>(static_cast<word>("Home"), static_cast<meaning>("Дом"))); ?И так на месте всех (type) obj ? А если я определю преобразование obj в int, тоже нужно писать через static_cast<int>(obj) ?
>>1307768В твоем случае приведение типа вообще не оправдано. Если определен конструктор, лучше написать просто word("Home"). В случае с кастом из класса обратно в базовый тип -- да, надо делать статик каст.
Аноны, киньте книгу/ресурс почитать о формате PE, желательно разжеванный до мелочей материал. Я уже блять не могу, какие-то ебанутые структуры в структурах структур, все эти секции, хедеры и прочие пердолинги. С меня как всегда.
>>1307737По поводу использования signed: (не паста) В transport tycoon при приближении денег к 2 147... я начинал сносить горы и строить острова в морях чтобы потратить их и не получить два миллиарда долга.
Ананасы, поясните за приведение enum class к интуНапример, в чём разница между:static_cast<std::underlying_type<MyEnum>::type>(MyEnum::Value);и простоint( MyEnum::Value );?
Здравствуйте.Пишу свой велосипед, не кидайтесь говном.https://ideone.com/L9rtWthttps://ideone.com/L9rtWthttps://ideone.com/L9rtWtТак вот, проблема в том, что функция get_element возвращает какой-то мусор, когда условие не выполняется, несмотря на то, что в блоке else нет оператора return. Почему такой код компилируется и вообще работает, несмотря на то, что не все ветви кода возвращают значение?
>>1307988Бля, ты сконструировал массив с нулевым размером, и пытаешься туда запихнуть какой-то элемент, а потом еще получить элемент по индексу в массиве размером 0. Ты ебанутый или что?
>>1307995>Бля, ты сконструировал массив с нулевым размером, и пытаешься туда запихнуть какой-то элементТы посмотри функцию add_element. Там я делаю realloc, и размер массива увеличивается на 1.>а потом еще получить элемент по индексу в массиве размером 0Нет. Я добавил нулевой элемент в массиве. Теперь его размер равен 1. А теперь хочу получить первый элемент в массиве. Так как элемент у меня пока там только единственный (нулевой), первый элемент я получить не могу. И функция не должна мне его возвращать, потому что я поставил ограничения.Ты мне лучше расскажи, почему функция get_element вообще компилируется и работает? Если что, я про код в else. По-идее функция не должна скомпилироваться из-за того, что не все ее ветви возвращают значения.
>>1307999>Ты мне лучше расскажи, почему функция get_element вообще компилируется и работает? Компилируй с -Wall -Werror:>g++ aaa.cpp -Wall -Werroraaa.cpp: In member function ‘int Array::get_element(int)’:aaa.cpp:36:6: error: control reaches end of non-void function [-Werror=return-type] } ^cc1plus: all warnings being treated as errorsПочему - потому что философия С++ предполагает, что ты понимаешь, что делаешь, даже если ты стреляешь себе в ногу
>>1308030Ок, а что тогда за неизвестный мусор возвращается из функции, в случае, если она ничего не должна возвращать?
>>1308042Зависит от соглашения вызовов - или содержимое стека в том месте, в котором должно было бы быть возвращаемое значение, или содержимое регистра, если по соглашению вызовов возврат значения производится через регистр.
>>1308042Что значит ничего, блятб? У тебя написано int get_element(), значит будет возвращать инт, какую бы хуйню ты внутри не писал.обколются своими джаваскриптами и ябутся в жопу
>>1308068>значит будет возвращать инт, какую бы хуйню ты внутри не писалну типо я написалif (условие) return что-тоelse {нихуя не написал}Я понимаю, что возвращается int, но мне хотелось узнать, откуда берется тот мусор, когда работает else.>>1308053Спасибо
Считается ли проебом оптимизации использование string вместо строк с завершающем нулём ? Насколько сильно теряется производительность при этом ?
>>1308168кажется парадоксально, но зависит от того, что ты со строками делаешьпотому, что, внезапно, string знает свою длину, а длину сишной строки нужно каждый раз считать, пробегаясь по всей ее длине..поэтому некоторые алгоритмы со string работают быстрее..
>>1308188>кажется парадоксальноПочему? Это нормально.Если у него много вставок в большую строку например, то вообще надо rope использовать.
>>1308188Как правило сишные строки быстрее если забить хуй на проверку переполнения буфера и внимательно следить за тем, не вызываешь ли хочешь ли ты в конец строки от ее начала случайно, вызывая тот же strlen. А так они медленнее. Особенно когда string может хранить короткие строки прямо на стеке.
>>1308322Функция, возвращающая указатель на type.Почему в 2018 году пишут так, а не type* func() для меня загадка.
>>1308325Привычка.Мне быстрее понятнее если указать или ссылка стоит вместе с переменной, а не с типом.
Ананасы, я тут задумался.Получил от stepik.org лицензию на продукты JetBrains, поставил ReSharper C++ и увидел, что по его мнению никакого кэмелкейса или названий переменных, совпадающих/похожих со стандартными, не должно быть.Второе - ладно, логично.Но насчёт первого я видел и вариант такихПеременных, и таких_переменных.Есть вообще где-то конкретное соглашение по стилю кодирования?
>>1308336> Есть вообще где-то конкретное соглашение по стилю кодирования?https://fabiensanglard.net/fd_proxy/doom3/CodeStyleConventions.pdf+ свой .clang-format
Аноны, я вот разбираюсь, что и как можно в плюсах делать. (Знаю все темы, что были в Шилде и совсем немного QT). Так вот, могу ли я найти сейчас работу, пусть и самую днищенскую, но по плюсам ? Мне бы опыта набраться. А то я в теории знаю как создать интерфейс и всё такое, но практики очень мало.
>>1308340clang format вот прямо щас рулит, кстати, прямо вот недавно, с этого года-двухво многих топовых проектах на гитхабе используется
>>1308359не хотелось бы тебя расстараивать, но вакансий джунов на кресты очень, очень малопо крайней мере, по сравнению с другими платформамиможешь сразу попытатся устроится на мида, иногда некоторые фирмы отчаиваются искать нормальных людей и берут новичков с надеждой на то что они быстро вырастутно готовся к косым взглядам других людей на работе, потому что ты им будешь тупо мешать следующие два года и если бы не приказ сверху, они бы тебя нахуй послали и все, не стали бы ни помогать, ни учить
>>1308325Указатель же относится конкретной переменной, а не к типу в целом. Аще, когда звездочка должна стоять в скобках, вся твоя изячная конструкция пойдет по пизде.
>>1308402А куда мне стоит дальше вкатываться ? Есть знания из 1 книги Шилтда(которая для начинающих). Думал Рихтер Дж - Видновс виа, чтобы в api вкатиться, или Шлее М - Qt
>>1308477эээ, никудавезде ты будешь посылаем нахуй с такими "знаниями"десктоп разработка на винде мертва, на с++ декстоп разработка под винду мертва 10 раз, от чтения рихтера тебе ни будет никакого проку, хоть это и охуенная книга, это будут мертвые знанияебучий qt нужен в россии по большей части во всяких нии и полугосударственных конторах, которые тупо распиливают государственный и военный бюджет, писать на qt - это получать в 3-4 раза меньше веб-макаки, по сути выполняя ту же работу
>>1308340>https://fabiensanglard.net/fd_proxy/doom3/CodeStyleConventions.pdfОткрыл, первой строчкой в лицо:>Use real tabs that equal 4 spaces.>real>настоящиеА разве не правильней использовать 4 пробела, вместо таба?
>>1308499>нахуй тогда сипласплас нужон?разное говно, которого мало в россии и которое недоступно простым долбоебам вроде меня и возможно тебякомпьютерное зрениемашобвысокочастотный трейдингразное говно связанное с программированием под виндус и линукс, в частоности беккенд для йоба-сервисовразная научная и околонаучная хуитав общем, если хочешь денех, учи джаву, жс, пеашпи, сишарп, 1с - с этими языками ты никогда не умрешь с голоду. А с 1с так вообще в любом селе можно хорошие бабки делать.а вот разное говно: раст, питон, го и прочая модное говно никому ненужно в снг.опыт байтоебли возможно полезен, алгоритмы поучить, понять, как работает память, но не больше. потом нужно пересаживаться на промышленный язык и уже грести на нем.
>>1308511А в Геймдев вкатиться на плюсах же самое то ? Видел вакансию у себя в городе от Ubisoft, программиста на С++
>>1308513>А в Геймдев вкатиться на плюсах же самое то ? Не знаю, наверное геймдев у нас в основном это какие-нибудь игры уровня три в ряд на андроид на юнити. можешь сходить в юбисофт, чому нет?сам я у себя работаю в мухосранской галере на аутсорсе, пишем софт для работы с геоданными
Анон, что делать после курса по крестам на степике? Есть вариант через пару недель устроить собес по знакомству на мухосранскую галеру крестоджуном, сжимается очко, что даже если и пройду собес- пнут через месяц работы. Дабы это устранить хотелось бы получить какие то представления о собственных знаниях ака: реальную, не учебную практику. Но всё, что видел по теме представляет собой сложные полноценные проекты, в которых не понятно откуда ноги растут.
>>1308513Если хотят именно программиста, а не стажера, то там наверняка нужен опыт и скорее всего опыт на коммерческих проектах.
>>1308617В жабе нужно знать две книжки - по жабе и по спрингу. В С++ вакансии будешь искать когда сможешь без подсказок написать свой type_traits>>1308488Qt в индастриал ПО под нефтянку и разработку недр активно используется.
>>1308617И останавливаются в развитии. Если вкатываться, то серьезно. В плюсы от полугода до года активной учебы точно уйдет.
>>1308639Не преувеличиваешь? Моя ситуация: мат фак (не окончен по проёбам), некие способности на уровне "в школке и на практиках в вузе всё легко с полпинка давалось" + 2-3 месяца изучения конкретно крестов не хватит 100% на должность стажёра-джуна?
>>1308643В моём мухосранске берут и с хуем в руке, лишь бы в голове что то было, кроме хуёв. По крайней мере насколько мне известно.
>>1308541Чо, нету никаких вариантов? Только два стула?1)реализуй лопату, чтобы сама копала.2)напиши программу, считающую сумму двух апельсинов.
>>1308359Прочитай K&R, Мейерса и Саттера. Я сделал это за неделю в 20 лет и стал богом С++ по сравнению с типичным тридцатилетним дядей.А работу найдешь, хули не найти. Демпинганешь от рынка процентов 30 и она твоя
>>1308541Возьми "сложные полноценный проект" на гитхабе и разберись откуда в нём ноги растут. Уметь искать ноги - чуть ли не самый полезный скилл в кодинге.
>>1308651> Демпинганешь от рынка процентов 30и тебя не берут, потому что ты себя слишком низко оцениваешь и это подозрительно.
>>1308656Видишь ли, там говорится одно и то же. То есть усвоил 10% K&R, усвоил 10% Мейерса, усвоил 10% Саттера, а у Мейерса две книжки, у Саттера тоже две - итого уже получается усвоил 50%. А это дохуя по сравнению с типичным дядей, который использует голые new в коде.Это мой метод. Я быстро читаю много книг об одном и том же, рассчитывая на то, что подсознание будет выхватывать то, что повторяют все - это скорее всего действительно важное, а не просто случайные кукареки автора. И это работает.>>1308658Студент без опыта низко себя оценивает? Охуенно подозрительно, ага.
>>1308664>Охуенно подозрительно, ага.Если речь идет о недооценке относительно рынка студентов без опыта, то подозрительно. Точнее даже не подозрительно, а на 146% выдает, что соискателю лишь бы взяли, а там трава не расти. Абсолютно не практично такого брать: он либо не осилит вовсе, либо через ~пол года начнет терзаться, что мало получает.Петя получает 50к, Вася 35к, оба тратят по 30к в месяц. Вася откладывает 5к с зарплаты, а Петя 20к. Петя богаче Васи на 300 процентов, а не на 30, как казалось в начале
>>1308655Походу надо искать что попроще, но там вообще есть такое? Я там в топе выхватил какую то телегу по фейсбуку. Там всевозможные языки и файлов в принципе чуть меньше чем дохуя. Глаза на лоб сьехали.
>>1308651Чё толку от чтения без практики? За неделю ты много учебных заданий из тех же книжек выполнишь?
Аноны, написал калькулятор для булевых функций, и хотел задать вопрос: его можно заливать на гит разберусь с ним наконец, или засмеют?
>>1308681Никогда не делал задания в книжках, они скучные и зачем мне это делать, если я могу прочитанное сразу применять на практике.Еще они как правило расчитаны не на изучение языка, а на основы программирования, которые НЕ нужно учить на си или с++. Да и сами основы программирования нужно учить не на переворачивании строк и разворачивании списков, что тоже дико скучно, а хотя бы тетрис написать.
>>1308674>Если речь идет о недооценке относительно рынка студентов без опыта, то подозрительно. Нет такого рынка. Вы сами жалуетесь, что во всех вакансиях опыт от года. Вот ты стучишься на такую вакансию и говоришь, мол, я хуй простой, хочу 70% от з/п первый год, а потом уже 100%, ведь опыт от года. Если ты при этом сам что-то из себя представляешь, тебя с радостью возьмут.
>>1308689Ну, это уже похоже на деловой разговор. Только 70% от з/п специалиста - это сильно оверпрайс. В среднем за год он выдаст половину от того, что сделает человек с годом опыта.+ Зачастую опыт приобретается на ошибках. Если брать человека с опытом, то ошибки остались на чужих проектах. Если брать человека без опыта, то ошибки будут на твоем проекте.Так что 50% - верхняя граница, выше нецелесообразно.
>>1308618Я бы скинул, но ргхост пидор не даёт файл загрузить.500-600 кб загружает и всё, останавливается.
>>1307268 (OP)Aноны, что за хрень?Eсть функция, в начале которой я создаю переменную int i=0;Дальше идет цикл, в котором переменна i увеличивается. После цикла вывожу ее и она опять 0. Что я делаю не так?
>>1308688Да не, на гит можно простячковые проекты заливать или потом кто-то посмотрит что я змейками весь профиль забил и скажет что я довбойоб?
>>1308753Если у тебя эта переменная вне цикла также обьявлена и инициализирована 0 то ты скорее всего в функцию ее передаешь по значению, соотвественно ты передаешь копию объекта, а после выполнения функции всё что с ней было уничтожается вместе с ней. Так что либо передавай по ссылке/указателю, либо возвращай значение из функции и присваивай его куда-то
Аноны, надо собрать древнюю C-программу под винду.Скачиваю исходники, запускаю mingw32-makeПолучаю пикрилейтед.Не подцепились библиотеки, видимо. Как их подцепить? И почему не работают сишные ключевые слова? Попробовал подключить libc, получаю mingw32/bin/ld.exe: cannot find -lc
>>1308664Ну ахуеть. Пойду задрачивать скорочтение и пилить по 5 книг в неделю. Не верю, что ты 5 книг по 500-1000 страниц мог прочитать за неделю, это блять нужно каждый день от 5 часов сидеть читать.
>>1308783Я поехал на рыбалку с батей, кроме самой рыбалки делать было ВООБЩЕ нехуй, но я прихватил с собой ноут с залитыми djvu.А так в чем проблема читать пять часов. Это вообще хуйня, если книга интересная. Мне было интересно.
>>1308704> В среднем за год он выдаст половину от того, что сделает человек с годом опыта.Хуй знает, опыт опыту рознь
Хочу мьютекс сначала покрутить в трайлоке несколько тысяч циклов и если не залочится, лочить уже на жесткую. Такой гибрид спинлока и мьютекса. Прокатит?
>>1308871В смысле "прокатит"? Спинлок с траем быстрее, чем жёсткий лок (зависит от реализации мьютекса, но в 99% случаев это так).
>>1308777Очень странно. У меня практически сразу собралось.Сначала make clean, а потом просто make вызвал и всё ок.
>>1307395>что плохого в том чтобы делать композицию данных с методами, их обрабатывающими?Это называется инкапсуляция. Композиция - это другое.>что плохого в том чтобы инкапсулировать данные, скрывая и защищая их?Это называется абстракция.>статический, динамический полиморфизмНапридумывают дебильных терминов, а потом ябуться в жёппы.Это всё Ad-hoc полиморфизм.>что плохого в том, чтобы проектировать архитектуру приложения как совокупность объектов, взаимодействующих друг с другом через посылку сообщений? для многих прикладных областей это очень полезно В си++ не используется модель акторов искаропки. Используется типичное императивное программирование приправленное особой модульностью под названием объекты.
Сап, программач!Я нуфаг, пытаюсь вкатиться в язык, но никак не могу разработать такую поеботу. Может кто помочь?
>>1308960С контрольными и прочим сразу нахуй. Заебали уже эти хелоуворлдщики из вузов, которые элементарных вещей не знают.
>>1308885Я хочу чтобы, если есть возможность, обойтись спином. А если ожидание затянулось, то лочить таки мьютекс, чтобы не тратить процессор. adaptive mutex так это вроде называется.
>>13089601000 рублей, яндекс деньги+ проведу консультацию по непонятным вопросам, полчаса в скайпе, но это максимумустраивает?
>>1309081Нет, отсюда скачивалhttps://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/8.1.0/threads-posix/dwarf/
Сейчас начал читать Эффективный и современный С++ после Шилтда (для начинающих). И что-то сложно, в книги подразумевается, что я знаю об универсальных ссылках и прочем, но я соответственно не знаю о новых приблудах. Пришлось гуглить и потом только в книжку возвращаться, не очень удобно. Есть учебник, который объясняет всё это детально, а не только говорит, в чём польза ?
Я тут подумал сделать пару простых игр, чтобы автоматизировать навыки и укрепить знания. Думаю вкатиться в OpenGL для этого или Win api, какие хорошие книги есть по этому ? OpenGL для С++ востребован ?
>>1309243>какие хорошие книги есть по этому ? Я бы посоветовал очень быстро пролистать redbook по диагонали - это совсем древний opengl версий 1.*, но идеалогия почти не поменялось. Потом Боресков "Расширения OpenGL". Но я понятия не имею что есть на других языках по теме.>сделать пару простых игрА возьмёшь с собой?Я бы тоже не против укрепить знания. Можно попробовать сделать что-то вместе (хотя вот это мне немного не по себе), а можно порознь что-то похожее, что бы ориентировать друг на друга и подсказывать друг другу всякое. Чуть-чуть в теории помню логику opengl и нескольких самых простых графических эффектов, но не более - книжки то прочитал и вроде даже интересно, но по факту едва ли три программы с ним написал, из которых все на уровне хелловорлда.
Объясните нюфане, кто пользуется парашей пикрил и самое главное ЗАЧЕМ? С таким же успехом можно набирать код в обычном нотепаде, какой в этом смысл когда есть великолепная IDE - Visual Studio, которая увеличивает скорость разработки и написания кода в РАЗЫ. Оправдывайтесь, линуксодебилы.
>>1309264>А возьмёшь с собой?Взял бы, но я ещё совсем ньюфаг в плюсах, только на дно потяну. Пока даже змейку в консоли не с первого раза могу сделать.
>>1307284>Самый выразительный - пайтонНу такое.>>1307314Лучше не начинай, под капотом питона до сих пор говно и палки.
Как сделать мапу в которую нельзя добавлять элементы, но можно модифицировать уже имеющиеся. Куда cv пихать?
>>1309291>Visual Studio, которая увеличивает скорость разработки и написания кода в РАЗЫТолько если ты совсем нюфаня
>>1309373через константную ссылку на существующий map? или предоставляя доступ к твоей мапе через константные итераторы?но, к сожалению, не знаю рабочее это решение или нета так, по старинке, обычно map агрегируется в пользовательский класс, и дальше работа идет через объект этого класса
>>1309322Это лямбда выражение, видимо создающее пустое замыкание-заглушку которое там нужно по синтаксису, но не по семантике.
>>1309291>которая увеличивает скорость разработки и написания кода в РАЗЫНормальные разработчики больше думают, чем педалят код, и скорость написания кода вобщем-то не особо важна.Если ты имеешь ввиду разные полезности, то для VIM есть куча плагинов. Но ты либо нюфаня, либо макака на галере и тебе важнее быстрее наговнокодить.
>>1309339Разница в том, что инициализация может вызвать только конструктор, а присвоение - деструктор и любой конструктор.
Аноны, есть один код. Нужно в одном цикле изменить массив так, что бы в начале были нули, а в конце отрицательные числа. я так заебался писать это в одном цикле, я просто блять ебал в рот эту оптимизацию, на пикче то, до чего я додумался, и это не работает сука
>>1309876хуй знает. попробуй хранить индекс последнего нуля и первого отрицательного числапри проходе если нашел ноль свапаешь его с индексом последнего нуля +1если нашел отрицательное, свапаешь его с индексом первого отрицательного -1
>>1309876https://ideone.com/ADokFjТипа такого?Не уверен насчёт граничных условий, правильно ли оно сработает если последнее сортируемое число 0, не будет ли бесконечного цикла если все числа отрицательные, и так далее - но вот что-то типа такого костыля без изменения j при перестановки (потому что переставиться может другой ноль или отрицательное, причём неопределённое число раз, из-за чего тут и нужен дополнительный цикл или подобный костыль).
>>1309876размер массива известен?"в одном цикле" - это значит что одно слово "for" должно быть?1 - рекурсивно. вызывай сам себя с разным размером массива пока не надоест внутри одного цикла.2 - в одном цикле захуярь два счетчика. иди с начала и с конца массива и меняй элементы местами.
>>1309909Кажется, всё верно я учёл.Я проверил на миллионе итераций для 8, 10 и 60 элементов, и алгоритм каждый раз сработал правильно.Но rand() даёт последовательность всего на 32к или 64к, потому я заменил его нормальный рандом из std и проверил на 100кк при длине массива от 4 до 20, и всё-равно всё стабильно работает.> иди с начала и с конца массива и меняй элементы местами.После смены просто не меняй индекс "обхода" (для for напиши i--, например), потому что сменяемый элемент тоже может быть нулям или отрицательным.
>>1309983Продублирую сюда, так как у меня есть вижуал сдудио и я немного ковырялся в срр. Напишите мне пожалуйста СКЕТЧ кода, как надо сделать, а я доосилю.
>>1309984Полноэкранные программы не перекроешь никаким адекватным способом.Ставишь старую версию делфи на 70 мб, в настройках окна ставишь нужную прозрачность, цвет, галку, то что окно должно быть поверх всех окон и пишешь четыре строки для выставления нужных координат. Самый простой вариант, кодинг и winapi вообще не надо знать.Создаёшь окно вообще без флагов (примеров сотни по запросу "окно на winapi" - просто в коде заместо всяких WS_OVERLAPPEDWINDOW оставь нули), ставишь ему HWND_TOPMOST, чёрный цвет и ставишь ему что-то вроде пикрелейтед. В идеале ещё дописать код, которые будет заново передвигать окно на первую позицию, если ещё какое-нибудь окно с HWND_TOPMOST вылезет наверх.
>>1310007> Ставишь старую версию делфи на 70 мбА вот это, получается, будет нормально работать даже поверх полноэкранных вещей?
>>1309876>в одном циклеЭто лабораторка такая дибильная у тебя или ты прост полагаешь, что выиграешь в производительности?Двумя циклами гораздо читабельнее будет выглядеть, а общее кол-во операций не больше, чем в одном цикле; а то и вовсе быстрее будет, т. к. меньше условий проверяется.
>>1309916Так там нужно обращаться к ранее просмотренным индексам. Это не рекурсия получится, а спагетти-код.
>>1310008Нет, не будет. Поверх полноэкранных это нужно что-то типа стимовского оверлея писать. Я как-то пару лет назад пробовал это нагуглить в течении пары часов, но в результате я не нагуглил даже из какой области там функции. Наверное, это делается или через какое-нибудь чугуниевое winapi, или через какие-то особые фичи directx.Если таки найдёшь об этом инфу, мне тоже будет очень интересно послушать.Ушёл, ответить до вечера не смогу, тому что с мобилки не работает ввод капчи из-за уёбища на админе.
>>1310012Окей, спасибо.Интересно - насколько сложно реализовать мой черный прямоугольник на уровне самого монитора, лол? Даже не знаю как это назвать - это всплывающее окошечко с настройками яркости и прочим говном. Туда как-нибудь можно по-простому присобачить лишнюю фигуру? Это-то точно будет поверх всех остальных окон.Тоже пойду спать до вечера.
>>1310010считай что у тебя весь массив уже отсортирован, кроме двух крайних элементов, к примеру. фикси крайние и вызывай сам себя рекурсивно для середины. но это я так, примерно, саму идею.
>>1310034>считай что у тебя весь массив уже отсортированВ общем случае так считать нельзя.Если, допустим, в массиве первый ноль встретится на 10-й итерации, нужно будет нулевой с девятым местами поменять.Если чистую рекурсию пытаться сделать, придется очень некрасиво костылить, чтобы на десятой итерации получить доступ к нулевому.
Аноны, а что быстрее - скопировать значение или создать указатель и присвоить ему адрес этого значения?
Как в TCP/IP задектить, что клиент отключился? То есть если клиент просто закрыл окошко и не посылал никаких сигналов, что он отключился.
>>1310279Если нормальное отключение, то read/recv вернёт ноль прочитанных байт. http://man7.org/linux/man-pages/man2/recv.2.html#RETURN_VALUEЕсли жёсткое, то >>1310288
Где еще можно работать language-lawyer-ом?https://stackoverflow.com/questions/53151521/could-we-access-member-of-a-non-existing-class-type-object
Гляньте, плиз, код: https://ideone.com/Ctdr71Как мне сделать так, чтобы я мог проверить тип параметра шаблона, например чтобы функция f работала для vector<int> и set<int>, но не для list<char>?
>>1310665>https://ideone.com/l3eMJqСпасибо, но я и сам так могу. Я просто думал как-то в самом шаблоне это все прописать, шоб на этапе компиляции проверялось.>>1310651Погуглил, возможно то, что нужно. Спасибо, пойду пробовать.
>>1310674> Я просто думал как-то в самом шаблоне это все прописать, шоб на этапе компиляции проверялось.Тогда юзай enable_ifОдна функция для char, а другая для всего остального
>>1310718>Отличается Через первый указатель b ты можешь изменить объект, на который указывает b; b не может указывать на константу.Второй указатель b может указывать на любой char, константный или нет. Но нельзя изменить объект, на который указывает b, не важно на константу он указывает или нет, через этот b изменить ничего выйдет.
>>1310724Спасибо>>1310721Строковый литерал в 11 с++ это массив const char, так почему компилятор не ругается на первую запись?
>>1310730Так у тебя нигде литерал не используется, в обоих случаях ты инициализируешь б неконстантным массивом, что допустимо.Будет ругаться, когда ты попытаешьсяchar *b;b = "Literal";
Есть объект класса, содержащий указатель на другой объект. Перед завершением работы программы оба объекта записываются в файл. Можно ли сделать так, чтобы при повторном запуске программы и чтении из файла их связь сохранилась? Т.е. указатель указывал не в ебеня, а на второй объект.
>>1307268 (OP)Тру крестоносцы помогите, ничего не могу нагуглить, нужен крч вывод в определнном формате примерно как на пике. Есть какие идеи? МБ кто изобретет велосипед? Либо просто нужна норм функция для возвращения позиции курсора мб подскажет кто ?
>>1311532блят, крч есть определенные классы предметов и суть в том что предметы из одного класса со своими именами и свойствами должны выводиться в столбик, но при том столбики находятся в одной строчке. опять ебано объяснил наверн.
>>1309964Ааа... всё равно никак. Это ограничение STL такое. Логично, что значение должно быть изменяемо.
>>1311296Можно, но ни в коем случае нельзяНе получится. Только если дрочить вприсядку (вроде подсовывания в insert вручную созданных нод)
>>1311479Разве что раздать объектам уникальные id и записывать в файл вместо указателей. И запилить менеджер загрузки, который при чтении объектов из файла будет расставлять им настоящие указатели.
>>1311479С помощью mmap отобразить файл на конкретный адрес памяти, всегда один и тот же.Выделять память в этом адресном пространстве
>>1311479>Перед завершением работы программы оба объекта записываются в файл.Наверное все-же не объекты а копии объектов точнее даже копии их состояний, если только ты не дамп памяти в файл пишешь. После завершения программы твои объекты всё, тю-тю.>при повторном запуске программы и чтении из файла их связь сохранилась? Т.е. указатель указывал не в ебеня, а на второй объект.Ты заного создаешь два объекта, инициализируешь из своего файла. Что тебе при этом мешает инициализировать твой указать новым адресом нового второго объекта?
>>1311695Получается, где-то надо хранить доп. информацию о том, какой объект на какой указывал, т.е. не только адрес, по которому была прошлая инкарнация второго объекта?
>>1311698>где-то надо хранить доп. информацию о том, какой объект на какой указывалНадо, если это меняется от случая к случаю. Не надо если "первый" всегда указывает на "второй".>где-тоДа где угодно, хоть в названии файла, епт.>не только адресСтарый адрес вообще хранить бесполезно.
>>1311712Читай:https://www.opennet.ru/man.shtml?topic=mmap&category=2&russian=0http://man7.org/linux/man-pages/man2/mmap.2.html>If addr is not NULL, then the kernel takes it as a hint about where to place the mappingНельзя.Если вкратце, то делай свои указатели относительными. С сырыми указателями ты каши не сваришь.На винде ты это тем более не сделаешь.
>>1312125Ясно, нескучные говнософты от васянов, единого нет.Шел 2075-й год, в крестах все ещё не было элементарного менеджера пакетов...
>>1312231У мелкософта почти всегда плохие переводы, поэтому лучше заранее перевести на en-us, чтобы не терять время. >>1312235hr-HR и правда не подвезли
auto f = std::async([](){return 42;});f = std::async([](){return 43;});Что происходит с f во второй строке?
Аноны, вкатился в сишарп. Дочитываю https://dotnetcademy.net/Что дальше читать? Есть какой-нибудь годный учебник БЕЗ интеграции сразу с вижуал студио? Просто голый сишарп?
>>1312916Первое эквивалентно *=, второе +=, можешь сделать соответствующие макросы.Для того, что в си не завезли запилили си++
>>1311479>Есть объект класса, содержащий указатель на другой объект. Перед завершением работы программы оба объекта записываются в файл. Используй реляционную БД.
>>1312974о, да, детканужно сделать персистентными 2 (два) объектаи ты советуешь изпользовать реляционную субдможет сразу технологийй big data подключить, ну а хули, кластеризация, распараллеливание, вот это все
>>1313016Тогда очевидно, что пишешь процедурку, которая их подгружает/десериализует/хуй_знает_что_там_ты_наворотил и сетит/передаёт_в_конструктор нужный указатель.
https://www.youtube.com/watch?v=p8-rZOCn5rQ Никто не упомянул C++, видимо этот язык стал нишей и используют его сейчас только энтузиасты.
Кресты, помогите. В данном говнокоде представлен алгоритм быстрого умножения больших чисел. С хуя мне выдаёт ошибку _crtisvalidheappointer(block) при числах больше 60000-значных ? Кода оставил минимум, функ мейн для общего понимания, можно туда не смотреть.https://godbolt.org/z/JI_vj2
Двощ, пилю лабу по самоучителю Шилдта. Проблема с некоторыми прогами по листам, например с этой: https://pastebin.com/aENqPSet 14.4, пример 5. Пикрил. Запускаю в VS2017. Как пофиксить?
>>1313335Даже когда С++ был везде и даже там, где не нужно, вряд ли бы кто-то, знакомый не только с С++, назвал бы его favourite с британским акцентом. За что его любить?
>>1313335>используют его сейчас только энтузиастыА геймдев? По-моему как раз наоборот: нужно быть большим энтузиастом, чтобы взяться пилить игру на чем-то кроме крестов для пекарни/консолей, про мобилки - отдельный разговор.
Есть класс А у него функция foo()Есть класс B у него функция bar()Есть шаблон класса С с функцией baz()Как через SFINAE сделать чтобы для С<A> baz вызывала x.foo(), а для С<B> x.bar()?
>>1313763Найди в алгоритме ассоциативные операции, оберни их в моноид, а распараллелить моноид - дело десяти минут.
Существуют ли автоматические методы детекта race condition? Ну там замедлять ускорять потоки относительно друг друга, например.
>>1313938миллиард итераций автотестов, если race condition есть, то с ненулевой вероятностью какой-нибудь тест споткнется
Сап, двач. Днище программирования вкатывается в тред.Объясните, почему этот код не работает?Должен удваивать все символы в строке.Например, при вводе двух букв он удваивает первую, а дальше идут непонятно откуда берущиеся символы.
>>1313938Формальная верификация. Только не программы, а её модели, и не всей, а отдельных кусков. Потому что там количество возможных состояний ебанистическое.
>>1314060Лул. И сиди потом запускай еще миллиард чтобы воспроизвести, и еще десять миллиардов чтобы пофиксить.
>>1314754А объявлять массив таким образом разве можно? Ну, переменной, которая инитится в рантайме. Еще у тебя в циклах неравенства не совпадают: внутри мейна строгое, а в фунции нет.
>>1314754Вкидывай на ideone код, что ли.Цикл неверный в функции, в остальном всё верно. Но за первый символ в scanf он принимает перенос строки, пробел или другой используемый тобой разделитель (что хорошо видно если чуть-чуть переписать вывод в Double, потому последней цифры нет (и потому же ты написал в условии <=n, наверное, что в корне неверно).Оказывается при определённых символах в printf виндоус проигрывает неприятный писк.>>1314794Можно в си, в стандарте с99, компилятор мне даже предупреждение выдаёт. Но mingw кушает такое даже в с++, тогда массив на стеке выделяется. Постоянно это использую, лол. Стек быстрый, ничего выделять-очищать не надо.
>>1314811>>1314754Забыл написать. Ну то есть тебе нужно поставить ещё один scanf на один символ (лучше используй str=getchar() для считывания одного символа), чтоб этот перенос пропустить.
>>1314794>А объявлять массив таким образом разве можно? Ну, переменной, которая инитится в рантайме. Только в С99.
>>1314811>Постоянно это использую, лол. Стек быстрыйVLA не очень эффективны как раз. Лучше фиксированный размер использовать.
>>1314817>VLA не очень эффективны как разСамо собой по сравнению с new/delete, если заранее известного размера нет.Впрочем, что-то я не обнаружил никакой особой неэффективности, не знаю как оно внутри работает, но по идее какая ему разница изменять значение указывающее на верхушку стека на 50 или на заранее неизвестное n. Вот сравнение. Функция рекурсивно вызывает сама себя n раз, в каждой итерации новый массив (размеры которых убывают от n до 1).Троеточие - вариант с заранее прописанным размером в 201 (на большее стандартного стека не хватает). 10-20% разницы вне зависимости от размеров (могу предположить, что ему при обращении к индексам массивов нужно вычитать лишние значение в случае с VLA). New-delete вообще мусор, если требуются много небольших массивов по сотне байт.
>>1307268 (OP)Есть ли литература, в которой объясняют как правильно разбить проблему на классы? Чтобы потом не ебатся из-за того, что не с того края начал.
>>1314826Я имел в виду, что размер все равно надо проверять, чтобы за стек не вылететь. Так лучше это делать вручную и осознанно ассертом, чем через непортируемые расширения компилятора.
>>1314831>как правильно разбить проблему на классыПравильно разбить проблемы на классы невозможно, потому что ООП - псевдонаучная хуита, crackpot science. Единственный способ - качать чуйку опытом.
>>1314811Я понял, что ошибка где-то в функции и последний символ при 5 элементах он не выводит. Но вот почему он выводит какой-то мусор при двух элементах и как исправить вывод, я не понимаю.
"Thread safe классы", т.е. обеспечивающие синхронизацию прозрачно для клиента это антипаттерн. За исключением случаев, если точно знаешь, что класс будет использоваться ТОЛЬКО в многопотоке. Например Add в тредпуле скрытно синхронизирующий доступ к очереди callables. External синхронизация - выбор профессионалов. Prove me wrong.
>>1313336memset(res, 0, len); -> memset(res, 0, sizeof(char) x len);все размеры массивов из int переделай в size_tchar res = CreateArray(MAX); - res не удаляешьchar s1[MAX]{ 0 }, s2[MAX]{ 0 }; load_num(s1, s2, x); - если длинн числа == MAX - strlen на ней не сработает правильнов mult10 ты каждый раз уверен, что выделил нормально памяти? я бы вообще все эти char поменял бы на векторану и тд. дальше лень смотреть.
Почему из крестов не удалили всю старую хуиту типа символьных строк в стиле C, ебанутого препроцессора, старых говнофункций и т.п.?Так-то кресты причесать и получится ява, только не жрущая террабайт памяти на хеллоуворд.Хотя бы форк какой сделали
Анон, посоветуй годный курс по крестам типо как на степике из шапки. Степик прошёл, щас до нг делать нехуй, хочу что нибудь подобное.
>>1315570Да, норм компилируется и даже вроде работает как надо.Это я уже когда сюда постить собрался, заметил, что ей почему-то не нравится имя функции far(). Меняешь на другое имя и все ок, делаешь опять far и снова она не может найти, где у нее лежит определение close().
>>1315822Far и near - ключевые слова. Так на 16-битных машинах указатели при работе с сегментной памятью помечались.
>>1315829>FarИменно как у меня в малом регистре? Ключевое FAR насколько я знаю в большом регистре.Да и пример на скриншоте я урезал, оставил только суть. Там использовались и другие библиотечные функции, но VS тупит только c close().
>>1315836Да, щас прогуглил. В Си есть far. А FAR это из WinSock.Но в любом случае, у меня far не выделяется как ключевое слово и код компилируется. Видимо нужно какую-то либу подключить, чтобы far стал виден.
Прочитал про исключения в крестах. Чуть не заблевал книгу блядь. Ну и говно сука. Такой отбитой хуйни я даже в пхп не видал.Больные ублюдки блядь
>>1316056исходи из необходимостиисключения были введены в язык с практической необходимостью: нужен был нормальный способ возвращать ошибки из конструкторов объектов и при перегрузке операторовстрауструп об этом в "дизайне и эволюции" долго расписывалте НЕ нужно проектировать систему в которой вот прямо везде будут использоваться исключения, используй их при действительной необходимости..
>>1316063как пример: та же стандартная библиотека - почти не используются исключения, но там где они действительно необходимы - используетто же касается и множественного наследованиято же касается и виртуальных функцийони используются буквально по одному разу в стандартной библиотекено используютсятем с++ и силен - на уровне языка у него много семантических возможнстей, которые в си приходилось делать на уровне библиотек
>>1316063>ребята, вы молодые, шутливые, поймите, это не то, сюда лучше не лезть, НЕ нужно использовать исключения, мы не гарантируем что это сатанинское поделие будет работать, сами блядь боимся это говно использовать даже в стандартной библиотеке...Я только на исключениях и привык писать, ибо жава-макака.В яве вообще правило номер один: есть малейшая ошибка - кидай исключение.И это нормально блять.А тут в оказывается в крестах такой ебаный пиздец в стиле 1968 года...Боюсь представить что будет, если кинуть исключение в многопоточной программе на крестах - наверное вообще пространственный континуум распидорасит.
>>1316070не, непривыкай использовать исключения только когда они необходимыте в крестах исключения это не подход к разработке, а скорее некая фича нужная в 1% случаем, НО без которой иногда не обойтисьзачастую делают, например, так: создают объекты через фабрики, при этом получается что то что может выбросить исключение в конструкторе, инкапсулируется в фабрикеа при грамотном проектировании класса делают не только пользовательские операторы (которые могут выбросить исключение), но и дублируют их функционал через обычные методы (которые уже возвращают код ошибки, но не выбрасывают исключение)а если вообще по честному писать, то 80% кодеров на крестах вообще не понимают о чем я здесь написал, всем похуйбольшинство крестового кода на гитхабе, например, это тупо приплюснутая сишка
>>1316081Но как я тебе выдам "код ошибки" для сложного типа данных?Да вообще для любого.Допустим, функция просто выдает int.Что бы она ни выдала - это будет легитимным ожидаемым ее значением.Выдавать максимальное/минимальное значение для типа int?Лол, так даже это не прокатит ввиду того, что компилятор крестов не гарантирует, что любой тип будет строго какого-то одного значения, он гарантирует лишь не меньше стольки-то байтов.Как блять я просигнализирую об ошибке, кроме как из исключения?Этот механизм во всех языках сложнее бреинфака недаром существует и по-дефолту используется.А если не используется, то используется иной способ, но проблема нихуя не игнорируется
>>1316085результат работы функции или метода возвращается через out параметрывозвращаемое значение фунции используется для возврата кода ошибки или успешного завершения
>>1316086>результат работы функции или метода возвращается через out параметрыА я все думал, почему php такой конченый. Теперь я знаю чем вдохновлялись при создании.Всегда подозревал, что пых - это лайт-версия крестов в плане проектирования и стремлении выстрелить себе в ногу.В пыхе в последние годы половина стандартной либы кидает исключения, но остальная половина нет и никто не будет переписывать из-за маня-совместимости. Кресты 2.0>out параметрыЭто же пиздец васянство. Еще пизже только возвращать в любой функции йоба-объект, в котором в одном поле ее результат, а в другом - информация об ошибке.Короче теперь можно ответственно заявить, что кресты - хуевый по современным меркам язык, архитектура которого и тонна говна ради (никому нахуй не нужной) совмесимости с C не сочетаются с реалиями современной разработки.
>>1316088>>перечитай еще разик выше зачем была необходимость вводить исключения в язык2 случая их использованияи как спроектировать классы, чтобы можно было и через исключения работать и, по необходимости, без нихя все выше написал
>>1316088стандартная библиотека php хуево спроектирована, это все признаютв то время как стандартная библиотека с++ вполне неплохо спроектированак примеру, повторюсь, она использует возможности с++ только в действительно необходимых случаев: исключения кидает лишь несколько методов классов stl, множественное наследование лишь в одном месте, виртуальные функции лишь в паре мест..те где жизненно необходимо, там они и есть..
Я написал прогу, которая просматривает множество файлов, и если там есть интересующая меня строка, записывает ее в двумерный вектор строк, на каждый файл свой вектор.Я ее сделал многопоточной, потому как файлов у меня ~60к. Она работает, только результат изменяется от запуска к запуску. То он находит совпадения в 1500 файлах, то в 1700. Я вроде бы и позаботился о том, чтобы потоки друг другу не мешали, но все равно хуйня выходит. Где я обосрался?https://pastebin.com/a2Fnck6R
>>1316137Хуй знает что там не так, но, разрешите доебацца:- 60к файлов - 60к потоков. Серьёзно? У тебя суперкомпьютер что ли? Сделай сраный пул с очередью- когда итерируешь директорию, ты поддиректории скипаешь?- нахуй обособлено выражение в 74 строке? Так у тебя с не инкрементится- контейнеры на пустоту проверяй методом empty(), а не size() > 1- есть еще мутные местаВ общем, как по мне говнокодисто вышло.
>>1316137>>1316179никакого смысла в параллельной обработке файлов здесь нет, тк в данной задаче узкое место - чтение с диска
Аааа блять, какое же конченое говно этот ваш цпп.Запускаю элементарную программу на ввод даных с консоли.Казалось бы, ну что блядь может вообще пойти не так?Когда строки на английском - все норм.Когда юникод - cout не работает после cin.Сука.Язык-чмо, язык-пидорас, язык-говно, язык-костыль.
>>1316274>элементарную программу на ввод даныхЭлементарный char весит 1 байт>Когда юникодсимвол в юникод весит два байтаДействительно, что тут может пойти не так?
>>1316274>Когда юникод - cout не работает после cin.У тебя спермопараша всесто ОС, там в принципе юникода нет.
госпаде да за что мне это?В крестах нет классических псевдослучайных чисел.Только математические генераторы, которые хуярят тебе всегда одно и то же для заданного сида.Сам сид никак не пытается вычисляться как в нормальных япах там по сумме времени, температуры, процессорным пукам и прочей хуйне.
>>1316473Бинго, туда таки подвезли (не прошло и 30 лет) классический стохастический генератор рандома - std::random_device.Только вот хуйня, эта поебень не работает в половине компляторов, лел.Язык-газонюх блядь, у каждого ебасоса свой собственный C++, даже страус-труп что-то по этому поводу говорил.
Аноны, где допустил ошибку в сортировке? Если в 2 словах, то почему то выдает странный результат.https://pastebin.com/3tVRKnq0
>>1316179> - когда итерируешь директорию, ты поддиректории скипаешь?Там их нет.> - нахуй обособлено выражение в 74 строке? Так у тебя с не инкрементится> - контейнеры на пустоту проверяй методом empty(), а не size() > 1В первых элементах хранится путь к файлу, поэтому и size() > 1>>1316195>>1316179Я попробовал сделать в один поток. Работает в 3 раза медленнее, но точно. В итоге, разделил все на 4 потока и при таком раскладе время исполнения как и при 60к потоков, да и результат всегда получается точным.
>>1316519Ты пытаешься проходить одновременно по левой и по правой половинам вектора. В случае с отсортированными половинами это прокатит, а если нет?{2, 4} и {3, 1}.2 < 3 - верно - {2}.4 < 3 - неверно - {2, 3}4 < 1 - неверно - {2, 3, 1}.Последнюю итерацию лень продумывать(там либо вставится четверка и будет {2, 3, 1, 4}, либо выход за границы вектора), но уже неправильно работает алгоритм.Вот если ты хочешь именно так делать, через половины, то тебе нужно рекурсивно вызывать эту функцию для каждой половины перед вставкой в конечный вектор.
>>1316528>Я попробовал сделать в один поток.замерь производительность в сравнении с обычным grepи обосрись
>>1316552А я и не сомневался, что grep быстрее. На винде он работает за 63 секуны, тогда как моя программа за 54. Но на федоре пкуз отрабатывает за 24 секунды. Мне нужно было свое решение, потому что я хочу проверить директорию на множестве фраз с подсчетом совпадений, и сделать это на плюсах для меня проще, чем в шелле или awk, или еще хуй пойми, на чем.
>>1316494Как же меня бесит это конченое дерьмо блядь.Добавили в язык хуйни, тип стандарт, мам, только эта параша из-под коня работает через жопу блядь и по-разному на разных компиляторах.Причем обсирается в рантайме охуительными ошибками уровня бэ, что даже место в коде не называет, где это произошло.
Поясните за эту йобу.Есть constexpr int в котором записано некое число.Эту переменную я использую как аргумент для std::array.Стоит изменить переменную как программа при запуске крашится.Приходится удалять объектные файлы и компилить заново.Как избежать подобной хуйни?
Привет, анонимусы. Я быдло, которое хочет освоить анриал энжин, просто кодить по фану всякое, это же как конструктор. Ну и есть пара годных идей для игорей, а так же свободное время.Работаю мидл пхп-макакой уже года 4 и c# ещё знаю немного.Вопрос к знатокам c++, насколько глубоко нужно знать этот язык для использования в рамках этого движка?Я смотрел, они там накодили какие-то свои базовые классы от которых почти всегда отталкиваешься, поэтому, возможно, есть смысл больше времени потратить на изучение работы конкретно с анриалом, если разработка на чистом c++ и в рамках анриала имеет из общего только синтаксис?
>>1316752лучше иметь хобби, ни как не связанное с компьютерами, если основная работа у тебя - программированиевыгоришь к хуямуж поверь мне
>>1316781Я так и так аутирую большую часть дня за пекой, какая разница что я буду за ней делать. Ну заебет - дропну.Конструкторы люблю просто.Наговнокодил недавно, чтобы человечки ходили как в стратегиях и выстраивались разными строями: клином и т.д. Мне очень доставило, но не нравится говнокод. Хочу по красоте делать ежжи.
>>1316726Дохуя временных объектов.И зачем ты делаешь функцию, которую вызываешь в другой функции, которую вызываешь рекурсивно?Сделай вызов сортировки из себя же с условием остановки, когда размер переданного вектора == 1Все равно не оптимально, но будет лучше, чем сейчас
Аноны, а как работает конкатенация в классе string? Там изначальная строка складывается с другой, я вот попытался написать такой же вариант сам, и он даже работает, но я нихуя не понимаю. Разве память не идёт последовательно, выходит я вот такой фичей могу перезаписать какую-то другую информацию или как? Или в динамической памяти это не играет большой роли?
>>1317202Хотя всё-таки попрошу хеллоуворды обьяснить. Понял что старая строка улетает в никуда утечка, и нужно перед присваиванием очистить память. Я создал новую строку, и скопировал туда значение от старой строки, после очистил память старой и переприсвоил указатель старой строки на новую объединённую. Но в итоге вылетает ошибка, о которой пишут что я пытаюсь освободить память дважды. Я не пойму где я туплю, может кто указать или намекнуть на фейл? Код cpp.sh/92cpd
>>1317278>cpp.sh/92cpd>char * first = "Hello";>delete [] first;Ты для first вызываешь delete, но не вызывал new. Какого чёрта?
>>1317285А разве нельзя просто переприсвоить указатель? Да и так тоже не работает либо я опять ошибку сделал https://onlinegdb.com/By3XiuzbN.
vector<string> text{string("Help 2ch!")}Чем является выражение в фигурных скобках?Я вижу тут одновременно приведение типа в стиле Си, вызов функции с именем string конструктора класса string? и определение безымянной переменной типа string.
>>1317380Не то. Что делают фигурные скобки мне ясно, не ясно то, что внутри скобок, сам аргумент инициализатора то бишь : string("Help 2ch!").
>>1317378настраиваешь, чтобы отладчик заходил в исходники стандартной библиотекипроходишь по вызовам, перестаешь задавать дебильные вопросы
>>1317388У вектора вызывается конструктор std::vector<string>(std::initializer_list<std::string>). Фигурные скобки - initializer_list<std::string> из одного элемента-строки, который прямо на месте создаётся с помощью конструктора std::string(const char*). tl;dr создаётся вектор из одного элемента.
>>1317399Начать писать ты можешь сразу, просто как Си со свистоперделками. Если хорошо пишешь на Си, будешь хорошо и здесь (главное не переборщить: видел несколько си программистов, увидевших TMP и иерархии классов и которые стали совать это повсюду - не надо). Но для достижения Нирваны с идиоматичными™ плюсами 11/14/17/20 нужно потрудиться и читать референсы, книжки и тд.
>>1317373Ладно, я уже реализовал что хотел с помощью связных списков, но вопрос остается открытым: как реализовать operator+ из класса string? В инете написали чтобы я хуй забил и даже не пытался, а если надо будет - используй готовое. Но мне же интересно!
>>1307268 (OP)Что можно использовать в связке с плюсами, чтобы была возможность делать интерфейс не на основе windows forms?Смотрите, уже два года сижу на билдере, вполне неплохо, но когда понадобилось сделать более-менее современный и минималистичный интерфейс не похожий на win forms, то сразу же начались костыли. Да, можно изъебнуться и начать перерисовывать стандартные кнопки, делать другую логику взаимодействия с окном и так далее, но это настолько противоестественно и костыльно, что просто вогнало меня в тоску. Есть Qt, но я его особо не изучал, так как там нет community версий, как в VS или билдере. Плюс сложно получить просто один экзешник без поиска qt-шных библиотек.Знаю, что в VC++ можно делать простенький интерфейс, но тоже на основе winforms. Ситуация кажется мне безвыходной. Я работаю с расчетными процедурами, так что c++ в моей стезе - это лучший выбор, но что делать с интерфейсом?Слышал, что на сишарпе есть куча возможностей слепить тот десктопный интерфейс, на который у тебя только хватит фантазии, но получится ли совмещать интерфейс на одном языке, а процедуры на другом? Возможно, видно, что я не особо разбираюсь в теме, но хотелось бы услышать ваше мнение по этому поводу.
>>1317278>cpp.sh/92cpdдля first вызвал delete но не было newдля temp есть new но нет deleteнахуя ты first переиспользуешь? у тебя переменные закончились?
>>1317373Можно. Ты где-то переприсваиваешь first до delete? Я не заметил.Смотри, тут три области памяти. Стек, куча, область глобальных переменных(статические переменные там же). Объявление строк по типу first/second попадает в область глобальных переменных (что видно по численным значениям указателей). Очевидно, их нельзя удалять через delete, оттого и программа падает.
>>1317454> Плюс сложно получить просто один экзешник без поиска qt-шных библиотек.Можно, но это вроде как платная фича (например десктоп клиент телеги сделан так).> Знаю, что в VC++ можно делать простенький интерфейс, но тоже на основе winforms. Это просто потому, что все либы уже в системе. И поэтому кажется что не надо искать библиотеки.https://github.com/ocornut/imgui
>>1317454вообще чтобы на цпп сделать интерфейс на windows forms надо заморочиться будет. это managed c - микрософтовское извращение.родное там mfcа для реально крутых чуваков - wtlну про qt ты уже написал.
>>1317454В сишарпе пишут сейчас дизайн на ксамле, а в кюте есть аналог - qml. У тебя там основа на крестах, дизайн в подязыке на основе json и скрипты на жаваскрипте, довольно удобно как привыкнешь.
>>1317463Так у меня идея была такая:1) Есть две строки2) Создаем третью размерами чтобы вместила обе, и копируем туда обе строки подряд3) Возвращаю ее в качестве результата Но в программе мне нужно использовать ее не один раз. Как очистить память от предыдущей строки, ведь если я просто перемещу указатель старая строка останется где-то висеть без доступа. Поэтому я пытался модифицировать в самой функции всё, но вышло тоже криво. Можешь ответить кстати, при строках вида char * str = "321321"; память в куче выделяется или в стеке? Не нашёл ничего в инете
>>1317523При строках вида char * str = "321321" память выделяется только под указатель, на стеке ясное дело. Сам строковый литерал зашивается в статической области памяти и удалять его не надо.
>>1317560А если я соеденил две строки, и присвоил значение первой. То есть код такого видаfirst = strcat_m(first,second)Со старой строкой не нужно ничего делать? Ведь в самой функции память то выделяется ну для общей строки, а если просто сменить указатель на другой, старое выделение пропадает. Я сейчас попробую модифицировать, но вот тут у меня диссонанс основной произошёл, из-за которого я в тред и отписал.
>>1317523> память в куче выделяется или в стеке?Специально же скриншот прицепил. В области статических и глобальных переменных (сегмент данных, если по науке это называть, вроде бы). Это не стек и не куча, эту память во время работы программы никаким способом нельзя освободить.>3) Возвращаю ее в качестве результата Я бы завёл статическую переменную-указатель внутри функции - если он равен 0, то функция вызывается первый раз и нужно просто вызвать new, если нет, то нужно сначала освободить старый указатель. Угу, в памяти всегда будет висеть результат последнего выполнения функции. Сам смотри, приемлемо ли это.Или можно явно потребовать, что память под новую строку должен освободить вызывающий код, что тоже вполне логично. Типа, ты просто пишешь char* s = strcat_m(,), и чуть позже delete[] s.
>>1317564Такой код корректен? Ошибок не даёт, но это такой себе показатель cpp.sh/3gqsk. В любом случае спасибо тебе и еще одному или не одному анону за помощь. Почему-то тут отвечают на вопросы, которые в инете хуй найдешь
>>1317576>cpp.sh/3gqskНет.Ты зачем освобождаешь str_dest, вдруг он ещё нужен за пределами твоей функции?Я вот это имел ввиду. Вывел значения указателей, для наглядности.https://ideone.com/Goq7nh
>>1317581>Ты зачем освобождаешь str_dest, вдруг он ещё нужен за пределами твоей функции?У меня строка выступает в роли массива. Я обьединяю старую строку и какую-то часть, после чего удаляю старую и переношу указатель на новую, объединённую. Ты делаешь примерно тоже самое, но не удаляя старую строку,а используя статическую. За помощь в любом случае спасибо, я вроде разобрался.
>>1317576А, ты таким ебанутым способом используешь strcat_m в цикле, и с помощью условия избегаешь освобождения памяти из сегмента данных. Посмотрел только код функции, не смотрел основной. Это весьма контринтуитивное поведение strcat_m. Лучше тогда в функцию передавать указатель на указатель в первом аргументе.
>>1317576>>1317581Тут надо решить какое поведение ожидаеться от функции.Если это создание новой строки с = a + b, то в функции надо выделить память подновую строку, скопировать туда переданные строки и вернуть указатель на новую строку. Прототип ф-и: char strcat_m(const char str1, const char str2)Если добавление к существующей строке a += b, то я бы первым параметром сделал указатель на указатель на модифицируемую строку. В ф-и выделить новую память, скопировать туда всё, удалить старую строку (если указатель не ноль), присвоить указателю новое значение и вернуть указатель на строку. Прототип: char strcat_m(char str1, const char* str2).В первом случае можно передавать указатели на литералы в str1 и str2. А во втором только в str2, а для str1 уже надо предварительно выделить память. Ну там strdup какойто написать можно.
>>1317587Еще раз спасибо, впрочем на данный момент я такие же мысли в голове и держу. А звёздочки из-за местного движка проебуются постоянно.
>>1317053Там не в этом проблема, из рекурсии не получается выйти. Спасибо что посмотрел на код, все равно эту сортировку оставлю и потом вернусь к ней.
>>1317596Так вот тебе и выход из рекурсии: в начале функции проверяешь размер полученного вектора, если один - возвращаешь этот же вектор(один элемент уже отсортирован), если больше - делишь на две половины, вызываешь для каждой эту же функцию сортировки и все будет работать.
Начинал серьёзно изучать программирование с С++. Изучал года 4 пока учился в универе. Дошло, что начал писать разного рода верификаторы, трансляторы, компиляторы и сборщики мусора. Очень нравилось байтоёбсто и всё это самое в виде скользких мест о которых знают только реальные олды на С++.Но чем глубже я стал углубляться тем больше понимал, что С++ мягко говоря ебал я в рот. Все олды знают какие подводные бывают и что сам С++ унаследовал из Си проблемы из-за которых работает через жопу. Понял, что лучше использовать связку Си+(Питоно например) чем С++. Короче говоря выкатился из С++ года два назад и сразу же вкатился в Java потому что нужна была работа а не хуи пинания. По началу бомбило от Java, но сейчас все устраивает, иногда тоскую, что нет возможностей Сишных. Часто приходит мысль(первая любовь) обратно вкатится в С++, например попробовать с графикой поработать. Движок дум2 поковырять - разобраться что да как в графике устроено. Физику прикрутить. То есть интересно работа над движком. С высшей математикой проблем нет. Стоит оно того или похуй! Повышать экспертность в Java дальше.
>>1317506Честно, не знаю. Есть Страуструп, но по мне он написан так, что если ты уже не знаешь основных концепций плюсов, то ничего не поймёшь. Я начал ещё школьником, который только знал Си да Паскаль вкатываться в плюсы в 2011-2012 годах, как раз когда best practices нового стандарта только начинали складываться и было много повсюду разных обсуждений, поэтому получилось получилось как-то самому разобраться. Но это довольно длительное время заняло. Так что я могу посоветовать только почитать шапку - может, там нормальные книги есть.
>>1317695И что что на си? Мне теперь делать для таких как ты поправку ой ребята а дум написан на си. Ты думаешь, что я си не знаю? Я си знаю лучше чем С++. Но суть в другом. Я жду ответа от анонов с похожим опытом, может они тоже тосковали по С++ и может даже имеют опыт обратного вкатывания.А ты можешь дальше троллить. Больше ты биссира не получишь, свинья залётная.
>>1317723Блять. Тупой же не поймет нихуя.>тосковали по С++По байтоебству, работой с памятью и всем остальным разнообразием и возможностями.
Почему все плюсовики с которыми я имел неудовольствие общаться — задроченные гнусавые худощавые мудаки?
подскажите учебник для начинающих, где рассказывается о том, как надо писать на современном c++, с учётом всех последних нововведенийили начинать лучше с учебников, где учат программировать в старом с++ стиле, игнорируя все современные улучшения?
>>1317396Что дебильного в моем вопросе? В книжках об этом не пишут, а если и упоминают, то где-нибудь глубоко в сносках.Нагуглить тоже не могу, т. к. не понимаю сам контекст, что тут собственно гуглить? Перебирать все возможные случаи и контексты применения круглых скобок? Не более ли это "дебильно", чем мой изначальный вопрос?>настраиваешь, чтобы отладчик заходил в исходники стандартной библиотекипроходишь по вызовам...и просто утопаешь в "дебильных" вопросах.Чувак, я с этим вопросом столкнулся на 357 станице книжки Липпмана ''эта книжка висит у вас в шапке в рекомеyдациях, а всего там 1124 страниц. Учти пожалуйста объективно мои возможности, ок?>>настраиваешь, чтобы отладчик заходил в исходники стандартной библиотекипроходишь по вызовамА если string заменить, скажем, на int, то никаких видимых вызовов вообще не происходит.
>>1317397>прямо на месте создаётся с помощью конструктораВот с этого места можно поподробнее?Где причина, а где следствие?Определение объекта вызывает конструктор, или вызов конструктора определяет объект?В какой момент вызывается деструктор для объекта, который "прямо на месте создаётся с помощью конструктора".
>>1318471>vector<string> text{string("Help 2ch!")}Это можно аппроксимировать по шагам вот такstd::string s("Help 2ch!");std::initializer_list<std::string> l = { std::move(s) };std::vector<std::string> text(l);Только у "s" и "l" нет имён в первоначальном примере. Они, если я не ошибся, prvalue являются.>Определение объекта вызывает конструктор, или вызов конструктора определяет объект?Какой-то философский вопрос. "Прямо на месте" я имел ввиду лишь то, что у создаваемого объекта нет имени.>В какой момент вызывается деструктор для объекта, который "прямо на месте создаётся с помощью конструктора". Тогда, когда он выйдет из скоупа. Как у всех.
>>1318471>В какой момент вызывается деструктор для объекта, который "прямо на месте создаётся с помощью конструктора". Строкой после создания управляет вектор. Читай про rvalue references.
>>1319286Зачем Страуструпа?Он для обучения плох.Он больше походит как на некий справочник с комментариями.
>>1319292Заметил. Сложно читается и такое чувство, что написано для тех, кто уже знаком с языком. Чего посоветуешь почитать нюфагу?
>>1319306Липпман/Прата/ШилдтМожно просто идти по какой-то одной книжке и смотреть параллельно аналогичные темы в других.Ну это я к тому что если что-то непонятно, то смотреть у других автором объяснение и примеры.
>>1319312Я тут под настоечкой уже свою WOW консольную пишу, лол.>>1319308Спасибо, анончик. Взял Шилдта на заметку.
>>1318477>>1318508>>1318522Все, понял, спасибо.Один вопрос только остался. В каком-нибудь отладчике можно наблюдать такие безымянные/временные объекты?В документации VS 2017 ничего подобного не нашел.
>>1319375Результат sizeof беззнаковый. В визуал студии, например, твой код вообще не скомпилируется, выдаст ошибку.Алсо, sizeof не функция, а оператор.
Пытаюсь сделать вторую задачку шестой главы из "Прата Язык программирования Ц++", вот код https://pastebin.com/7D5yZXMX. На cpp.sh все работает, а когда компиляю у себя оно игнорит ввод и сразу пишет "Average: 0". Щито делать?
>>1319759У тебя i в цикле не проинициализирована, там может быть что угодно, скорее всего там какое-нибудь очень большое число типа 12391284193, вот цикл и прерывается, не делая ни одной итерации. Студия какая-нибудь тебе просто не даст такое скомпилить.
>>1319766for (int i; i < ArSize; i++) { double temp = 0; cout << "Enter number: "; cin >> temp; if (check(temp)) { numbers = temp; total += temp; } else break; }вот первая строчка цикла for (int i; i < ArSize; i++)
>>1319759>https://pastebin.com/7D5yZXMXtotal не обнуляешькогда среднее считаешь - выводи результат в скобкахi не инициализирована реально.
>>1319809Я его внимательно читал, и есть серьезные консёрны к дядам а-ля Ниблер, которые, судя по всему, очень сильно оторваны от процесса реальной разработки в своем ворохе шаблонов. Я, скорее, на стороне простых парней, нежели этих очень умных, но далеких от нас супер-дядь.С++ знаю достаточно, чтобы выступить на С++ Russia в свое время
Почему может очень долго работать стандартная сортировка? Сортирую вектор примерно 10000000 объектов с 4 параметрами.Работает около 10 секунд
>>1320658>Почему может очень долго работать стандартная сортировка?Потому, что она очень долго работает
я опять со своим говном все также решаю задачки. вроде все работает, но после 29 строки получаю 3.99435e-315 или вообще segmentation fault , помогите плесhttps://pastebin.com/87SHDVNw
>>132066910кк элементов -- это довольно много, особенно если сравнение сложное. К тому же на таком числе элементов квиксорт вырождется в мердж сорт, скорее всего. Сортируй в несколько потоков, хули.
>>1320658используй чёт-нечётную сортировку с добавкой openmpда, сложность сортировки выше, зато параллелится не хуже мёрджа и кодится быстро (реализация под с++ на педивикии есть)отсортируется за хуйню
Устроился на работу программистом на c++. Работать нужно с микроконтроллерами. Ни разу этим не занимался. Что нужно знать из C++ для этого? Нужны ли будут классы, интерфейсы, перегрузки методов, функций, операторов, аллаха или только стандартные сишные возможности? Что нужно повторить? Программировал на c++ и на c, но в микроконтроллерах явно все не нужно использовать, поэтому прошу знающих посоветовать, что нужно освежить в памяти для успешного программирования микроконтроллеров.
>>1321007Современные контроллеры такие толстые (меньше 500 рублей за 100 мгц ARM), что использовать можно все.Обратить внимание нужно на zero-cost abstractions в первую очередь. Можешь так и гуглить.
Как свапнуть две группы объектов, не вызывая свап для каждого по отдельности? То есть вместоstd::swap(a, b);std::swap(c, d);Сделать что-то типа std::swap({a, b}, {c, d});std::tie не помогает. Можно заранее обернуть a, b и c, d в tuple/pair, но тогда их потом обратно распаковывать.
>>1321088>std::swap({a, b}, {c, d});Я имел в виду скорее std::swap({a, c}, {b, d}); Надеюсь вы поняли.
>>1321088В принципе можно сделать какую-нибудь функцию вида (набиваю от балды, давно не метапрограммировал):template <typename T, typename ...Ts>void swapmany(T& a, T& b, Ts... args){ std::swap(a,b);swapmany(args...);}Но зачем
>>1321121>>1321137В плюсах столько разных способов изъебнуться, а свапнуть две группы объектов нельзя. Мда.Юзкейс почти надуманный, для конкретного алгоса нужен был. Поменять сразу 4 пары местами. Подумал, может есть готовый способ красивее, чем писать 4 свапа.
>>1321088>Можно заранее обернуть a, b и c, d в tuple/pairлогичный и менее всех остальных извращенский способда и к тому же, если у тебя пара значений, то почему ты их изначально в std::pair не хранишь?
>>1321007тебя же таки взяли на работузначит твоей квалификации должно быть достаточно для выполнения служебных обязанностей
>>1307376>видишь ли, на с/с++ можно делать практически все, по той причине, что пракатически все сделано на этих яп.Во-первых не все сделано на них. Во-вторых это не значит, что нужно делать все на C/C++. На Лиспе, Хаскелле, Окамле или Эрланге тоже можно сделать все что угодно.У тебя выраженный парадокс Блаба.«Парадокс Блаба» описан в очерке «Побеждая посредственность». Его сущность состоит в том, что программист, знающий некоторый язык («Блаб»), «думает на Блабе» — выражает решение любой задачи в средствах Блаба, а имеющиеся в более мощном языке дополнительные средства в его глазах ничего не стоят, так как он не умеет их применять. Только когда программист по каким-то внешним, дополнительным причинам изучит более мощный язык, он получит возможность смотреть на Блаб «сверху вниз» и увидит его ограниченность. Таким образом, ограниченность Блаба сама по себе не может стать стимулом для изучения более мощного языка, так как для осознания этой ограниченности необходимо уже знать такой язык. Этим Грэм объясняет то, что программисты обычно не желают изучать более эффективные инструменты программирования, чем те, которыми они уже владеют (в частности, непопулярность Лиспа.На любом языке можно написать что угодно. Программирование это инженерия. Это значит, что программисты должны решать любые задачи. Некие инженеры то ли выпилили то ли оптимизировали сборщик мусора в Common Lisp, чтобы использовать его вместо Си. Другие пишут свои рантаймы для языков или свои языки, те же vk.com и facebook такое делали. Важно думать не на языке, а использовать язык как инструмент. Думать на языке это парадокс Блаба. Любой язык имеет хоть небольшие, но ограничения. C/C++ одни из худших языков, у которых плюсов намного меньше чем минусов. Но ты их превозносишь. А почему, потому что парадокс Блаба. Оглянись вокруг, есть языки намного мощнее с точки зрения построения простых и мощных программ. И даже если они медленнее чем C/C++ их можно ускорить, это решается. Какими бы быстрыми не были C/C++, их уже не сделаешь лучше.
>>1321794Ничего ты на нем не сделаешь. И никто другой не сделает. Даже простой алгоритм на нем будет выглядеть как простыня.
>>1307371>Однако такое балавство чревато десериализацией личности, осуществляющей выробатку >необходимость в их использование>для анализва при близко-сопряженного спектра функцийСовсем ты поехал, шизик, уже гласные путать начал.
>>1321843То что ООП костыль - он прав. В остальном, я бы по другому сформулировал почему это костыль.
>>1321843Статья "Почему объектно-ориентированное программирование провалилось?" http://blogerator.org/page/oop_why-objects-have-failed
>>1321825>Этим Грэм объясняет то, что программисты обычно не желают изучать более эффективные инструменты программирования, чем те, которыми они уже владеют (в частности, непопулярность Лиспа.Со статьи Грэма прошло 18 лет, любой фронтэндер пилит асинхронный код на жс с монадами, на питоне написаны и используются CAS для обучения нейросетей, go худо-бедно используется, взлетает rust, руби-разработчики переходят на эликсир, а лисп как был в жопе, так и остался в жопе. Но это не лисп обосрался, это ему парадокс блаба в штаны насрал."Программисты обычно не желают изучать более эффективные инструменты программирования, чем те, которыми они уже владеют" - это ложное утверждение. Программисты желают изучать более эффективные инструменты программирования, если это повышает их эффективность и зарплату. А бизнес желает вводить такие инструменты, они же эффективные. Этот процесс не очень быстрый, но работающий в эту сторону. И что языки, что фреймворки, усложняются. А вот лисп нихуя не эффективный, это хуевый язык, героически решающий проблемы, которые он сам перед собой поставил.Common Lisp непопулярен, потому что он перегруженное сущностями неортогональное говно с хуевым синтаксисом, от которого прутся поехавшие.А С++ популярен, потому что свою задачу он решает хорошо. Какую задачу? Бля, да это же парадокс блаба - лиспер нихуя не знает С++ и что с помощью него делает. Бгг.
>>1321870Лисп последний язык, который осваивает программист. Поэтому лиспер не может не знать C++, потому что в начале он освоил его, а потом Лисп. Так же и Руби, это обычно один из последних языков. К нему приходят из C/C++/Java. Но почти никогда не бывает так, чтобы в C/C++/Java пришли из Руби.Парадокс Блаба бывает у тех, кто знает только один язык, или несколько но с одной и той же парадигмой. Программисты C/C++/Java больше всех этим страдают. Потому что знают только эти 3 ограниченных языка, одинаковых по сути. Лисп почти никогда не бывает первым языком, поэтому у тех кто на нем пишет не может быть парадокса Блаба. Они уже знают несколько языков.
>Некие инженеры то ли выпилили то ли оптимизировали сборщик мусора в Common Lisp, чтобы использовать его вместо СиА могли бы сразу взять нормальный язык вместо динамической скриптодрисни. Такое себе достижение - судя по тому что ты это не используешь и даже толком не знаешь насколько успешно оно получилось.>И даже если они медленнее чем C/C++ их можно ускорить, это решается.О, мой любимый борщеаргумент. Разумеется это неправда. JS тому отличный пример, зачем далеко ходить.>>1321883>Потому что знают только эти 3 ограниченных языка, одинаковых по сути.Очнись, сейчас 2019 на дворе, все мейнстримные языки калька друг с друга. Язык без лямбд нужно с огнем искать и не найти. Это в 2000-х функциональщина была чем-то элитным, а теперь жс-дристня в каждом браузере есть, а bind в плюсовом стандарте. Уже давно не нужны все эти хаскели чтобы со всем этим играться. Твои понты устарели минимум на десятилетие. Все что могли предложить функциональные языки успешно перетекло в мейнстрим, лисп изучать совсем не обязаельно.
>>1321857>«Я уверен, что ООП методологически неверна. Она начинает с построения классов. Это как если бы математики начинали бы с аксиом. Но реально никто не начинает с аксиом, все начинают с доказательств. Только когда найден набор подходящих доказательств, лишь тогда на этой основе выводится аксиома. Т.е. в математике вы заканчиваете аксиомой.>Тоже самое и с программированием: сначала вы должны начинать развивать алгоритмы, и только в конце этой работы приходите к тому, что вы в состоянии сформулировать четкие и непротиворечивые интерфейсы. Именно из-за этой неразберихи в ООП так популярен рефакторинг — из-за ущербности парадигмы вы просто обречены на переписывание программы, уже в тот самый момент, когда только задумали её спроектировать в ООП-стиле».Чертовски прав, я, блять, стопятсот раз перепишу, потому что тот метод не обязательно здесь, блять, а эти методы в отдельную капсулу можно выделить, а вот это лишнее и можно убрать.Сколько плюсов, столько же и минусов...
>>1321892подобные != одинаковыеособенно, если из С сразу в ЖАБУ мимо крестов, врубиться в ООП сложно, знакомыми останутся разве что main, некоторые операторы и простейшие типы.
>>1321883>Лисп последний язык, который осваивает программистСогласен, когда тебе осталось жить несколько дней, только на такое говно мамонта можно их потратить. Нет, язык может и хороший, даже применяется много где, но кому оно надо? WutFace
>>1321982>А могли бы сразу взять нормальный язык вместо динамической скриптодрисни. Такое себе достижение - судя по тому что ты это не используешь и даже толком не знаешь насколько успешно оно получилось.Во-первых, есть статья на эту тему. Если не ошибаюсь 1996 года. Опубликована в специальном научном журнале. То есть прочитать ее можно только за деньги. Во-вторых, они и так взяли нормальный язык. С типизацией у CL все в порядке.
>>1321982>А могли бы сразу взять нормальный язык вместо динамической скриптодрисни. Такое себе достижение - судя по тому что ты это не используешь и даже толком не знаешь насколько успешно оно получилось.Факт в том, что инженеры сделали Лисп языком для реал-тайма. Хотя такие как ты постоянно кичатся, что такое можно писать только на C/C++. Хотя сами то никогда и не писали никакого реал-тайма.
>>1321982>Разумеется это неправда. JS тому отличный пример, зачем далеко ходить.Пример чего? У JS свой особый рантайм. Он решает свои задачи. Инженеры взяли, и обвесили его, и получился Node.js. И таким образом JS сейчас почти на любых устройствах поддерживается. За несколько лет экосистема JS обросла огромным количеством кода. В C/C++ по сей день нет такой крутой экосистемы. И никогда не будет.
>>1321982>Все что могли предложить функциональные языки успешно перетекло в мейнстрим, лисп изучать совсем не обязаельно. Система типов Хиндли-Милнера везде? А Лисповое метапрограммирование? Только в лиспах оно есть.
>>1321989>подобные != одинаковые>особенно, если из С сразу в ЖАБУ мимо крестов, врубиться в ООП сложно, знакомыми останутся разве что main, некоторые операторы и простейшие типы.Какая разница, ООП там не причем. Концептуально это Си-подобные императивные языки.
>>1321996Подобные, да. Но парадигмы отличаются. Сравнивать жабу и кресты некорректно. Сравнивай жабу с сисярпом.
>>1321990>Согласен, когда тебе осталось жить несколько дней, только на такое говно мамонта можно их потратить. Нет, язык может и хороший, даже применяется много где, но кому оно надо? WutFaceЛисп это последняя ступень языков. Не все до нее вообще доходят. Поэтому мало кто на Лиспе писал или пишет. Зато про C/C++ знает любой школьник. А это значит, что уровень программистов на этих языках в несколько раз ниже. В Лисп приходят уже с годами опыта и с десятком языков за плечами.
>>1321997>Подобные, да. Но парадигмы отличаются.Чем отличаются?>>1321997>Сравнивать жабу и кресты некорректно. Сравнивай жабу с сисярпом. Вполне корректно. Код на обоих императивный.
>>1321999Да банально тем, что в Сисьтом С нет классов, а в ЖАБЕ нет указателей - только ссылки и то на стеке...
>>1321982>Все что могли предложить функциональные языки успешно перетекло в мейнстрим, лисп изучать совсем не обязаельно. Ничего не перетекло. Лямбды это еще не все. Мышление программистов стало еще более ограниченное.Сразу видно, что ты не отличаешь языки как инструменты. Для тебя все они одинаковые, все понты, и бла-бла-бла. Это похоже на парадокс Блаба. Тебе не понятно почему на Хаскелле пишут интерпретаторы/компиляторы, а на C/C++ стараются этого не делать.
>>1322002>Да банально тем, что в Сисьтом С нет классов, а в ЖАБЕ нет указателей - только ссылки и то на стеке...И что с того. Концептуально код от этого не меняется. И там и там императивный.
>>1322006>императивныйПНаскаль тоже реализует императивную парадигму.Он тоже С от этого стал?В жабе от С только простейшие типы, операторы да сама жабаэм, почему все сгоняют в одну парашу?
>>1322007>ПНаскаль тоже реализует императивную парадигму.>Он тоже С от этого стал?Да, но он кстати не Си-подобный.>>1322007>В жабе от С только простейшие типы, операторы да сама жабаэм, почему все сгоняют в одну парашу? С точки зрения парадигмы, это похожие языки. Код на них выглядит как последовательное изменение состояния программы. Scala например уже совсем другая. Хотя и поддерживает императивщину.
>>1322015В том-то и дело, анон, что похожие только лишь с точки зрения парадигмы. Спасибо, что решил напомнить мне суть императивной парадигмы, но тогда либо перечисляй все языки с императивщиной, либо не ставь рядом жабу и кресты, это языки лишь в стопяцотом колене имеют схожие корни, но не более того. Это неприятно читать.
>>1307268 (OP)Почему visual studio так долго устанавливается?Что это вообще такое?Как я понимаю это ИДЕ и компилятор. И, видимо, еще что-то...Объясните кто разбирается, плес
>>1322005>Лямбды это еще не всеДавайте придумаем, что должно входить в Better C.Это должен быть лоу-левел язык с:>сильной системой типов (желательно с дедукцией типов, но можно и без этого)>нормальным параметрическим полиморфизмом >нормальными uniqueness type и линейными типами без костылей в виде семантики движения>с нормальной моделью компиляции>с нормальными корутинами и асинхронностью (тут либо должно быть сразу встраивание в язык, либо возможность менять синтаксис, потому что те же упомянутые выше по треду ranges, реализованные как обычная библиотека, требуют дохрена строк кода)>с поддержкой SOA/AOS в стиле Jai>со встроенной поддержкой интринсиков процессораВроде как Раст многим пунктам удовлетворяет, но что-то в нём не то.
>>1322005> Это похоже на парадокс Блаба. Тебе не понятно почему на Хаскелле пишут интерпретаторы/компиляторы, а на C/C++ стараются этого не делать.Пиздежь, я более чем уверен, что ты даже пару реализаций на Хаскеле на назовешь. Я вот с ходу могу вспомнить десяток популярных которые на С/С++. >>1321992>Хотя сами то никогда и не писали никакого реал-тайма.Вот кстати, это возражение очень смешное. Можно подумать реал-тайм это что-то такое особо элитное, дико хайтечное и недоступное обычным смертным. Хотя на самом деле - любая компьютерная игрушка это уже "софт" реал-тайм со всеми вытекающими.>>1321991>Во-первых, есть статья на эту тему. >1996 года. >Опубликована в специальном научном журнале. >То есть прочитать ее можно только за деньги. >нормальный язык. >С типизацией у CL все в порядке.Суть борщетехнологий просто. Ору
>>1322005>Тебе не понятно почему на Хаскелле пишут интерпретаторы/компиляторыНасколько я помню, тру языки для написания хай-энд компиляторов и парсеров в научной среде - окамлы и другие ML, не?
>>1322081>Пиздежь, я более чем уверен, что ты даже пару реализаций на Хаскеле на назовешь. Я вот с ходу могу вспомнить десяток популярных которые на С/С++. Я регулярно вижу вакансии на Хаскелле, а уж на гитхабе проектов на нем вообще море. И что интересно, на Хаскелле проекты всегда крутые. Зайди в Хаскелл чат и сам спроси что они пишут. Можно просто чат полистать даже чтобы понять. И сравни с тем чем в основном занимаются C/C++ разрабы, скукотищей.
>>1322081>Вот кстати, это возражение очень смешное. Можно подумать реал-тайм это что-то такое особо элитное, дико хайтечное и недоступное обычным смертным. Хотя на самом деле - любая компьютерная игрушка это уже "софт" реал-тайм со всеми вытекающими.Просто адепты C/C++ постоянно козыряют, что реалтайм. И типа на Хаскелле такое не напишешь. Чепуха, и на Хаскелле можно написать , а еще потом выясняется, что там реал-тайма у них никакого нету, а просто слова.
>>1322081>Суть борщетехнологий просто. ОруНашел статью, написана в 91, даже не в 96 https://dl.acm.org/citation.cfm?id=114679&dl=ACM&coll=DLА вот сайт этой компании http://www.gensym.com/?option=com_content&view=article&id=47&Itemid=54Почитай внизу ABOUT GENSYM, там вкратце написано чем они занимаются. Их система написана на CL. Они затюнили сборщик мусора, или выпилили вообще. И спокойно используют CL.
>>1322119>Насколько я помню, тру языки для написания хай-энд компиляторов и парсеров в научной среде - окамлы и другие ML, не? А чем Хаскелл хуже ML или Окамла? Это очень похожие языки, можно сказать из одного семейства.
>>1322077Присмотрелся.> обработка ошибок как в win32api> дженериков нет и не будет> официальный сайт и документация без подсветки синтаксиса, потому что главный разработчик (!) языка считает что она не нужна (!!)> ущербный менеджер пакетов> конфликты т.к. один монолитный путь GOPATH на все
>>1322159>Их система написана на CL.Была написана. В 1996 году. Каких-то жалких 23 года назад. Ее разработчики на пенсию уже вышли. А система могла быть 10 раз переписана с на любом языке.>>1322346>Ну давай разъясни чем они отличаются.OCaml может в ООП например. А так конечно, что один, что другой, что С++, что Python все одинаковая текстовая дрисня.
>>1322356>Была написана. В 1996 году. Каких-то жалких 23 года назад. Ее разработчики на пенсию уже вышли. А система могла быть 10 раз переписана с на любом языке.Статья 1991 года, а не 96-го. Система естественно еще старше. Она упоминается в журнале Computer World 1988 года. И работает до сих пор, ее не переписывали. Погугли G2. Вот статья 2010 года. Там про G2 и разные Лиспы http://www.ijcst.com/vol1issue2/monika.pdf
>>1322356>Была написана. В 1996 году. Каких-то жалких 23 года назад. Ее разработчики на пенсию уже вышли. А система могла быть 10 раз переписана с на любом языке.Эта система огромна. Ее не будут переписывать. Во первых это невозможно. Во вторых Лисп дает им те фичи, которые они нигде больше не получат, только в Лиспах. Эту систему используют Наса, Dow, и много кто еще.Здесь хорошо описано http://www.drdobbs.com/review-g2-82/199102973
>>1322356>OCaml может в ООП например. А так конечно, что один, что другой, что С++, что Python все одинаковая текстовая дрисня. Это не важно. Он тоже из ML семейства.
>>1322356>Каких-то жалких 23 года назад. Ее разработчики на пенсию уже вышли.Спроектировали систему 2 человека. Они же и владельцы компании. Естественно они уже не пишут код. У них денег достаточно чтобы держать штат сильных архитекторов.
>>1321988То есть программисты лиспа нужны только чтобы поддерживать легаси типа вот этого говна мамонта конца 80х, которое уже никто не берется переписать на нормальном языке? То есть как Кобол? Понятно.
>>1322427Получается все чем ты пользуешься, включая ОС - легаси-...овно. Почему тебя так крутит от того, что кто-то решает инженерные задачи успешно, создает крутые проекты вне мейнстрима?
>>1322427Ты мыслишь как дилетант. Проекту больше 20 лет. Он огромен, это не сайтик. Никто в здравом уме не будет это переписывать. Тем более что проекты на Лиспах не переписывают на другие языки, это бессмысленно. Все завязано на макросах. У них там встроенные языки. На любом другом языке такой проект потребует сотни, если не тысячи программистом, и неизвестно сколько денег и времени.
>>1322432>>1322435Круто, конечно, что когда-то там в 80х, когда С++ не было, кто-то написал нормальный софт на лиспе. А сейчас на лиспе пишут что-нибудь?
>>1322081>Пиздежь, я более чем уверен, что ты даже пару реализаций на Хаскеле на назовешьНа эМэЛях, лиспах, фортах пишутся eДСЛи, как правило они узкоспециализированные и юзаются в коммерческих проектах как ноухау, но можно и нагуглить опенсурсные.Суть в том, что любую грамотно спроектированную программу можно рассматривать как еДСЛ. Хачкель и лисп - инструменты, позволяющие выглядеть этому еДСЛ, как языку со своей семантикой и синтаксисом. В СИ, жабе и прочем говне такое невозможно - всегда будут вылезать уёбищность хост языков.
>>1322437Пишут. Clojure используют или в Boeing или в AirBus. Есть десятки и сотни очень крупных проектов на Лиспах. В основном это серьезные продукты, именно продукты, не заказной софт. В консалтинге Лиспа естественно нет. Чуть более мелких проектов еще больше. В Питере есть команда Health Samurai, они пишут на Clojure серьезную систему, уже много лет.
>>1322437>Круто, конечно, что когда-то там в 80х, когда С++ не было, кто-то написал нормальный софт на лиспе. А сейчас на лиспе пишут что-нибудь? У тебя вообще не правильная постановка вопроса. Какая разница пишут или нет? Все редкое всегда самое ценное. Например на Феррари очень мало кто ездит, на нее трудно найти запчасти, но мало кто из-за этого не стал бы на ней ездить. Или какой-нибудь раритетный хотрод. Он ценен именно тем, что сделал качественно, по старинке, не как у всех. Лисп тоже ценен этим. Его создавали математики. Давно, когда еще люди делали все с умом. Тогда не было ширпотреба. Аналогов до сих пор нет. Это вершина высокоуровневых языков.Вот и Вагиф Абилов говорит, что нет причин не писать на языке, если им мало пользуются. Они начали писать на F#. Он тоже мало распространен. Посмотри сам, он хорошо объясняет почему доводы о малом распространении неправильные. Очень интересный доклад, а Вагиф очень интересный рассказчик.https://www.youtube.com/watch?v=GXuol9L_0KI
>>1322453>пишут на Clojure серьезную систему, уже много лет.ЛОЛ, прямо как Кнут, который свою книжку писал 40 лет и так и не дописал.
Пришел какой-то дурачок, который сказал, что мы, дескать, не шарим и нужно видеть хорошее не только в своем любимом языке. А теперь сам сидит и 24/7 про лисп пиздит. Ты в себе?хватит толстить, ты ещё нам Пролог посоветуй.щ
>>1322489У меня возникает ощущение, что с тобой что-то не так. Может быть тебе найти себе другое занятие. Ты вообще понимаешь, что серьезные проекты живут много лет. Все время эти проекты поддерживают. Фиксят баги, добавляют новые фичи. У тебя извращенный взгляд на все.
>>1322489Анон тебе говорит о том, что программа написана так, что легко поддерживается и улучшается, и нет необходимости переписывать её с нуля, как это в большинстве случаев происходит, а ты со своим неуместным сарказмом тут.
>найти себе другое занятие>У тебя извращенный взгляд на все. Откуда ты все обо мне знаешь?>Ты вообще понимаешь, что серьезные проекты живут много летЯ отказываюсь это понимать.Обычно, в норме, если человек или группа людей ставят себе целью решить задачу, то они таки находят ей решение, после чего берутся за что-нибудь новое.А когда десятками лет пилят и перепиливают один и тот же электронный блокнотик, это тупо распил и желание ничего по жизни не делать.>>1322505Та, которая 40 лет писалась - она одна, в нескольких томах.
>>1322531>Обычно, в норме, если человек или группа людей ставят себе целью решить задачу, то они таки находят ей решение, после чего берутся за что-нибудь новое.Health Samurai написали медицинскую систему. И теперь продают ее в клиники США. Если они ее выбросят, то за счет чего зарабатывать? И зачем писали тогда?.
>>1322531>Я отказываюсь это понимать.Пересмотри свои взгляды на жизнь. С таким подходом тебе будет не легко. Нужно быть гибче.
>>1322531>Та, которая 40 лет писалась - она одна, в нескольких томах.Ну вот, таки написал. А говоришь, что нет. Уже 3 издание есть.
>>1322544>за счет чего зарабатывать?Погоди, ты контекст-то не упускай из виду.Речь-то о сравнительной эффективности языков программирования. В пику сиплюсплюсам поставили в пример некую мед. систему, которую делают уже 20 лет. Это какбе не в пользу эффективности языка говорит.А система оказывается уже написана и продается. И все, что в данном случае от языка требуется - это по большому счету имитация бурной деятельности. Вот не похеру на каком языке эту имитацию делать?Короче говоря, если без сарказмов, я твой пример нахожу неудачным в изначальном контексте дискуссии. Тем более, что Самураевская система не уникальна и есть много аналогов, написанных на других языках.
>>1322559>Короче говоря, если без сарказмов, я твой пример нахожу неудачным в изначальном контексте дискуссии. Тем более, что Самураевская система не уникальна и есть много аналогов, написанных на других языках. Ее пишет маленькая команда. На C++ потребовалось намного больше людей. Кода на Clojure меньше. Поэтому пишется быстрее. Сама разработка на Лиспах быстрее на много, REPL Driven Development. Поддерживать проект проще. Можно переписывать прямо рабочий код, который запущен. И самое важно, язык дает такие плюшки, которых нет в других языках. Макросы к примеру.Ты видать совсем не понимаешь как работает промышленный софт. В любой программе есть баги, и всегда появляются новые хотелки. Заказали сделать новый функционал. Сделали. Нашли багу. Выпилили.
>>1322567>разработка на Лиспах быстрее на много>Поддерживать проект проще>переписывать прямо рабочий код, который запущенВ сухом остатке>В любой программе есть баги, и всегда появляются новыеТы оказываешься с полурабочим проектом на руках. И все, что остается, это прокачивать навык продажи нерабочего говна. >Ты видать совсем не понимаешь как работает промышленный софтЯ совсем не понимаю зачем вообще курить языки программирования, если ты любое говно умеешь продавать? Не проще ли найти рынок попроще, недвижимость там, подержанные яхты или еще чего?
>>1322587>Ты оказываешься с полурабочим проектом на руках.Ты оказывается вообще не в теме. Зачем тебе программирование, если ты не понимаешь в нем ничего, и не хочешь понимать.Сколько лет пишут Windows/Linux/MacOS? И ты хочешь сказать в них нет багов? И если их будут писать еще 100 лет, в них все равно будут баги. И кроме того, нужно каждый день добавлять новый функционал.Разработка софта это не построение здания. Один раз построили и все. Софт как живой организм, он постоянно движется, его изменяют, улучшают. Если этот процесс остановится, то софт умрет.
>>1321883>Лисп последний язык, который осваивает программистТы из каких маняфантазий это взял? Почему лисп, почему не хаскель, coq, agda или ATS?Нет, чувак, лисп, это такой энтрилевел немейнстримных языков программирования. Живет себе школьник, живет, пишет хелловорлды, а потом открывает то, что, по мнению школьника, позволяет ему наебать систему: нужно выучить волшебную пилюлю, и он сразу же станет крутым высокооплачиваемым программистом. И открывает он с большой вероятностью лисп.>Парадокс Блаба бывает у тех, кто знает только один язык, или несколько но с одной и той же парадигмойНет. Парадокс Блаба никаких суженных трактовок не допускает, блабом может быть и лисп. Я на бордах давно и помню эту гонку шизиков за более крутым языком. Сначала школьники читали зеноцифала на sql.ru и приходили с лиспом. Потом кто-то выучил хаскель и начал ссать на лисперов. Потом хаскель стал слишком мейнстримом и обоссывать начали уже любители пруверов.Проблема в том, что Грэм не прав: нет никакого континуума мощности языков. И лисп говно, и хаскель говно, а пруверы нужно использовать там, для чего они разрабатывались, а не чтобы выебываться на бордах.>>1321992>Факт в том, что инженеры сделали Лисп языком для реал-тайма. Хотя такие как ты постоянно кичатся, что такое можно писать только на C/C++. Хотя сами то никогда и не писали никакого реал-тайма. Реалтайм это всего лишь гарантированное время выполнения, которое может быть произвольно большим. То есть если у тебя программа отвечает на запросы сутки, но гарантированно отвечает, то это реалтайм.В лиспе есть сборщик мусора, поэтому если использовать стандартные сборщики мусора, реалтайм в нем невозможен - в любой момент сборщик может застопорить код и начать собирать мусор.Проблема в том, что если ты знаешь лисп настолько, чтобы написать для него сборщик мусора, то писать хороший С++ код без сборки мусора совсем для тебя проблемой не будет. И получить из коробки то, длячего в лиспе нужно писать свой сборщик.>>1321994>В C/C++ по сей день нет такой крутой экосистемы. И никогда не будет. Экосистема С называется юникс.>>1321995>Система типов Хиндли-Милнера везде? А Лисповое метапрограммирование? Только в лиспах оно есть. Лисп является динамической скриптодрисней. Хиндли-Милнер есть в статических языках.Это к вопросу, о последнем языке и прочей еботе. Если бы ты действительно знал, что такое ХМ, ты бы уже перешел с лиспа на хаскель.Потому что как динамическая скриптродрисня лисп нааамного хуже питона или жс, а как йоба язык для йоба мамкиных мыслителей он сосет у статических функциональных языков.>>1322005>Тебе не понятно почему на Хаскелле пишут интерпретаторы/компиляторы, а на C/C++ стараются этого не делать. Интерпретаторы и компиляторы пишут для llvm, который написан на С++.>>1322384>Статья 1991 года, а не 96-го. Система естественно еще старше. Она упоминается в журнале Computer World 1988 года. И работает до сих пор, ее не переписывалиО том и речь, что лисп это древняя скриптодрисня, которая до сих пор используется в древнем как говно мамонта софте. Как только появились нормальные скриптовые языки, от этого фортрана мира скриптов отказались.>>1322441>На эМэЛях, лиспах, фортах пишутся eДСЛи, как правило они узкоспециализированные и юзаются в коммерческих проектах как ноухау, но можно и нагуглить опенсурсные.А вот и читатель зиноцефала. Не поскажешь, где этот мегагений сейчас, наверное запилил свой стартап и с такими-то знаниями стал триллиардером.>>1322567>И самое важно, язык дает такие плюшки, которых нет в других языках. Макросы к примеру.Макросы - зло и в 100% случаев являются неправильным решением.Добро они для программистов, которые в достаточно старой системе могут вообще не бояться увольнения, потому что кроме них в этом говнище все равно никто не разберется.
>>1322794>Нет, чувак, лисп, это такой энтрилевел немейнстримных языков программирования.Просто тебя не устраивает, что Лисп мощнее чем C++. Ты же не привел ни одного аргумента.
>>1322794>Парадокс Блаба никаких суженных трактовок не допускает, блабом может быть и лисп.Вот именно. Ты уходишь от трактовки. А она проста. Есть программист знающий язык Блаб. Он думает на нем. Но почему? Потому что не видел других языков, так написал Грэм. Именно потому, что не видел других языков. Ты опускаешь этот смысл, и еще говоришь что я неправильно трактую. Лисп не может быть Блабом, потому что в Лисп приходят из других языков. Они уже знают кучу языков, включая C++ скорее всего.Ты снова не привел ни одного аргумента.
>>1322794>Реалтайм это всего лишь гарантированное время выполнения, которое может быть произвольно большим.Так вы же говорите, что на языках со сборщиком мусора это невозможно. Я это опроверг приведя реальный пример.
>>1322794>Проблема в том, что если ты знаешь лисп настолько, чтобы написать для него сборщик мусора, то писать хороший С++ код без сборки мусора совсем для тебя проблемой не будет. И получить из коробки то, длячего в лиспе нужно писать свой сборщик.Проблема в том, что лиспер такого уровня никогда не будет писать на C++. Это подтверждают статьи и проекты. Проще решить задачу сборщика мусора один раз и потом всю жизнь писать на мощнейшем языке, нежели всю жизнь строить костыли и бороться с ограничением языка.
>>1322794>Экосистема С называется юникс.Не правда. Си и на винде работает. Получается там нет у него экосистемы. В JS экосистема кросс-платформенная.Что ты называет экосистемой? Есть в Си менеджер пакетов? В JS огромное количество удобных инструментов для решения многих задач разработки. Они единообразны. В Си все разрозненное, архаичное, устаревшее. Нет там такой простоты и удобства.
>>1322794>Лисп является динамической скриптодрисней.Снова у тебя словесный понос. Снова ты без аргументов. Никаких адекватных доводов против динамической типизации ты не приведешь. И доводов за статическую тоже. Я давно заметил, что адепты статической типизации мыслят угловато. Они очень ограничены. Категоричны. И обычно не могут последовательно излагать свои мысли. Так как их мозг связан, их руки связаны. Они привыкли быть связанными статической типизацией. Динамическая типизация развязывает руки.
>>1322794>Интерпретаторы и компиляторы пишут для llvm, который написан на С++.Да неужели. Можно подумать все они только для LLVM написаны. А что же было до LLVM? Не писали компиляторов/интерпретаторов? Снова ты без аргументов.
>>1322794>О том и речь, что лисп это древняя скриптодрисня, которая до сих пор используется в древнем как говно мамонта софте. Как только появились нормальные скриптовые языки, от этого фортрана мира скриптов отказались.Опять словесный понос без единого аргумента. Ты пишешь на потомке Фортрана если что.
>>1322794>Макросы - зло и в 100% случаев являются неправильным решением.Ты про какие макросы, про Сишные вероятно? Тогда я согласен. Сомневаюсь, что ты знаешь про Лисповые макросы.
>>1322794>Лисп является динамической скриптодрисней.Есть типизированные Лиспы, Typed Racket к примеру.
>>1322843>Просто тебя не устраивает, что Лисп мощнее чем C++.Для начала необходимо было бы дать определение "X мощнее Y", затем доказать "мощнее значит лучше" и из этого уже выводить какой-то силлогизм.Почему меня это могло бы не устраивать? Я скриптую на лиспе свой emacs и мне как-то похуй, что там за скриптовый язычок. Если бы лисп имел хоть какой-то смысл, я бы на нем писал. Проблема в том, что смысла нет.>Ты же не привел ни одного аргумента.Я не привожу аргументы за свою позицию, я планомерно разъебываю твою. Ты написал: "Лисп последний язык, который осваивает программист", что является ложью.Далее:>Проблема в том, что лиспер такого уровня никогда не будет писать на C++. Это подтверждают статьи и проекты.Они подтвеждают только то, что некоторые лисперы такого уровня не будут писать на С++. Они не подтверждают то, что все лисперы так будут делать.>Не правда. Си и на винде работает. Получается там нет у него экосистемы.Есть, cygwin называется, плюс MS запилила убунту. А вот без утилит GNU да, винда становится очень грустной для разработки на Си. Но разработка на ноде под нее ничуть не веселее.>Есть в Си менеджер пакетовdpkg, например>В Си все разрозненное, архаичное, устаревшее. Нет там такой простоты и удобства. Ну так и пиздуй писать на жс, жсребенок, при чем здесь лисп? С лиспом ты вообще охуеешь от кучи левых биндингов к сишным библиотекам, написанным аутистами-энтузиастами, и от необходимости компилировать эти библиотеки под последние версии ОС. Хули ты хотел, жизнь вне мейнстрима тяжела и страшна.>Никаких адекватных доводов против динамической типизации ты не приведешьАргумент был не против динамической скриптодрисни, аргумент был против человека, который спизданул "Хиндли-Милнер", понятия не имея, что это такое.>Да неужели. Можно подумать все они только для LLVM написаны. А что же было до LLVM? Не писали компиляторов/интерпретаторов? Снова ты без аргументов. Алё, это твой аргумент разъебан, ты писал "Тебе не понятно почему на Хаскелле пишут интерпретаторы/компиляторы, а на C/C++ стараются этого не делать", на что ответ в общем-то простой, самая популярная платформа для создания новых языков написана на С++.Ты сначала приведи аргумент, который нельзя разъебать, а потом кукакрекай что-то про то, что у меня-де аргументов нет.>Опять словесный понос без единого аргумента.Вот здесь аргумент как раз есть, попробуй его найти.>Ты про какие макросы, про Сишные вероятно? Тогда я согласен. Сомневаюсь, что ты знаешь про Лисповые макросы. Понятно, что ты сомневаешься. Ведь в твоей картине мира все убого и черно-бело: есть лисперы в белом, а есть идиоты, которые пишут на С++. Но как всегда в убогой подростковой картине мира, такой взгляд ничего не стоит.Для начала попробуй привести пример того, что требует макросов и никак иначе. А я покажу лучший способ и почему способ на макросах хуевый.
>>1322843>>1322849>>1322850>>1322854>>1322857>>1322860>>1322862>>1322863>>1322865Экак тебя пробило. О чём спор-то сам помнишь?мимо
>>1322915>Для начала необходимо было бы дать определение "X мощнее Y", затем доказать "мощнее значит лучше" и из этого уже выводить какой-то силлогизм.>Почему меня это могло бы не устраивать? Я скриптую на лиспе свой emacs и мне как-то похуй, что там за скриптовый язычок. Если бы лисп имел хоть какой-то смысл, я бы на нем писал. Проблема в том, что смысла нет.Так где критерии какой язык мощнее? Опять завуалированные пустые слова.
>>1322915>Я не привожу аргументы за свою позицию, я планомерно разъебываю твою. Ты написал: "Лисп последний язык, который осваивает программист", что является ложью.Снова без аргументов. В Лисп приходят после C++. После многих других языков. Так сложилось исторически, и так складывается логически. Потому что этот язык как дзен. Сразу его нельзя понять. Поэтому к нему приходят не сразу. Когда вдоволь намучился, когда начинаешь понимать что важно, а важна простота, универсальность, удобство, тогда и приходишь к дзену. А в Лиспе как раз все это есть, простота, удобство, универсальность.
>>1322915>Они подтвеждают только то, что некоторые лисперы такого уровня не будут писать на С++. Они не подтверждают то, что все лисперы так будут делать.Покажи хоть одну статью, где бы автор после Лиспа говорил, что C++ лучше, и писал бы на нем. Я могу привести где автор после C++ и Лиспа говорит, что Лисп лучше. После иномарок на жигули не садятся.
>>1322915>Есть, cygwin называется, плюс MS запилила убунту. А вот без утилит GNU да, винда становится очень грустной для разработки на Си. Но разработка на ноде под нее ничуть не веселее.Это все не то. Разрозненные непонятные штуки. Это не экосистема, а обрывки.>>1322915>dpkg, напримерЭто не менеджер пакетов Си. Это пакетный менеджер ОС.
>>1322915>Ну так и пиздуй писать на жс, жсребенок, при чем здесь лисп? С лиспом ты вообще охуеешь от кучи левых биндингов к сишным библиотекам, написанным аутистами-энтузиастами, и от необходимости компилировать эти библиотеки под последние версии ОС. Хули ты хотел, жизнь вне мейнстрима тяжела и страшна.Ты забыл, что Лисп это не язык, а семейство языков. Поэтому чтобы писать на Лисп никаких биндингов компилировать не нужно. JS очень зрелый инструмент. И сейчас уже более продвинутый чем C/C++. Ты снова пустословишь без аргументов.
>>1322915>Аргумент был не против динамической скриптодрисни, аргумент был против человека, который спизданул "Хиндли-Милнер", понятия не имея, что это такое.Я знаю что это. Ты писал или кто, что во всех языках есть все фичи из функциональных языков. Оказывается нету.
>>1323013<...>>>1323029Хоуми, пиши всё в одном посту, как нормальный человек. Во всём треде только у одного человека было терпение с тобой общаться, прояви к нему уважение.Мимокрокодил
>>1322915>Алё, это твой аргумент разъебан, ты писал "Тебе не понятно почему на Хаскелле пишут интерпретаторы/компиляторы, а на C/C++ стараются этого не делать", на что ответ в общем-то простой, самая популярная платформа для создания новых языков написана на С++.>Ты сначала приведи аргумент, который нельзя разъебать, а потом кукакрекай что-то про то, что у меня-де аргументов нет.Опять ты без аргументов. LLVM тут не причем. На Хаскелле за последние годы было написано много языков. На C++ думаю что единицы, а может не одного. Потому что Хаскелл дает более мощные абстракции. В нем не выстрелишь в ногу как в C++. Его код лаконичнее, его проще поддерживать.
>>1322915>Вот здесь аргумент как раз есть, попробуй его найти.Ну и где же? Это словесный понос с использованием детских обзывалок.
>>1322915>Понятно, что ты сомневаешься. Ведь в твоей картине мира все убого и черно-бело: есть лисперы в белом, а есть идиоты, которые пишут на С++. Но как всегда в убогой подростковой картине мира, такой взгляд ничего не стоит.>>Для начала попробуй привести пример того, что требует макросов и никак иначе. А я покажу лучший способ и почему способ на макросах хуевый. Обоснуй что Лисповые макросы это антипаттерн. Ты это утверждал, но не привел ни одного аргумента.
>>1323034>На Хаскелле за последние годы было написано много языковписать язык на языке а 2019... да даже 5 лет назад если, вам чё, языков мало?
>>1323016> В Лисп приходят после C++. После многих других языков. Так сложилось исторически, и так складывается логически.И где же откровения всех этих тысяч богоподобных лисперов, которые долгие годы страдали, меняя недоязыки, на пути к постижению истины?Выдаешь желаемое за действительное.
>>1323038> Для начала попробуй привести пример того, что требует макросов... А я покажу лучший способ и почему способ на макросах хуевый.> ОбоснуйЭтот демагог обосрался. Несите нового.
>>1323013>Так где критерии какой язык мощнее? Опять завуалированные пустые слова. Лол, ты пишешь "Лисп мощнее чем C++.", а потом ждешь от меня критерии? Это я тебя, манька, спрашиваю, где критерии.>Снова без аргументов. В Лисп приходят после C++. Я могу привести тебе кучу программистов, которые знают лисп, и не пишут на нем. При этом они знали лисп еще в то время, когда С++ не существовало. Алекс Степанов, например (при чем в его случае это схемка, но я-то думал, что мы в CL говорим, а тут ты говоришь, что обо всех лиспах сразу, впрочем и для CL можно найти такого человека, мне лень). Поэтому утверждение "Лисп последний язык, который осваивает программист" - ложь упоротого школьника.Истинность или ложность утверждений не зависит от наличия аргументов. Мои утверждения истинные, несмотря на то, что мне лень расписывать их такому идиоты как ты, который сначала пишет, что лисп мощнее, чем с++, а потом требует от собеседника критериев мощности языка, который не помнит нить диалога и в принципе уже доказал, что является тупым жсребенком. Ты из-за своей тупизны рискуешь попасть в ловушку имиджборд и стать очередным золотцем, если кто-то не хочет тебе что-то доказывать, это не значит автоматически, что ты прав. Вполне возможно, от тебя просто плохо пахнет.>Это не менеджер пакетов Си. Это пакетный менеджер ОС. Я тебе двумя постами назад написал, что экосистема си называется юникс.>Ты забыл, что Лисп это не язык, а семейство языков. Поэтому чтобы писать на Лисп никаких биндингов компилировать не нужно. Вот это наркомания. Лисп - семейство языков, ПОЭТОМУ никаких биндингов компилировать не нужно. Что ты там по поводу аргументов кукарекаешь, если у тебя даже подобия логики нет.>JS очень зрелый инструмент. И сейчас уже более продвинутый чем C/C++. Продвинутый по каким критериям? Я вот хочу написать VST-плагин, мне этот зрелый инструмент уже можно использовать, или в манямирке тупых школьников, рассматривающих мир исключительно через призму "кто кому даст пизды" такие вопросы в принципе не рассматриваются? ЖС нормальный инструмент, один из лучших сейчас, к сожалению. А лисп - говно ебаное. Именно как инструмент. Как развлечение для аутистов - норм.>Я знаю что это. Ты писал или кто, что во всех языках есть все фичи из функциональных языков. Оказывается нету. Хиндли-Милнер это не фича, это система типов, при чем в ней даже гетерогенный контейнер не запилишь, не говоря уже йобе типа boost::units. То есть видишь ли, в чем прикол, подобный код:template<typename L, typename R> auto add(L lhs, R rhs) { return lhs + rhs;}для ХМ-языков является невыполнимой задачей - даже если ты найдешь способ сделать operator+ полиморфным (что в хаскеле потребует переписать прелюдию, например), вывод типов сломается. А С++ похуй, он выводит типы не решая какие-то там уравнения, а тупо сверху вниз. Потому что шаблоны С++ sort of динамически типизированы и это дает большую свободу в написании кода (а как минус ты получаешь хуевые сообщения об ошибках), а ХМ-языки так не умеют. Лисп, собственно, умеет, он же является динамической скриптодрисней. И мы вместо континуума мощности попадаем в пространство, в котором языки друг с другом не сравнимы. И мечте ньюфага о серебрянной пуле сбыться не суждено: чтобы стать таким крутым как я, ты будешь должен заниматься программированием очень много лет, и хуй тебе поможет "выучить лисп" как ты думаешь. Впрочем, не похоже, чтобы ты собирался его учить.>Ну и где же? Это словесный понос с использованием детских обзывалок. Прямо в процитированном тобой тексте: лисп это древняя скриптодрисня, которая до сих пор используется в древнем как говно мамонта софте. Как только появились нормальные скриптовые языки, от этого фортрана мира скриптов отказались. Что тут непонятного? Даже твои примеры касаются именно что древнего софта. Это в 80-е альтернативой лиспу были скрипты для юниксовой консоли. Сейчас же скриптовых языков как грязи. Единственное (!!!) достоинство именно лиспа - гомоиконность. То есть фактически лисп предлагает 99% времени смотреть на уебищный синтаксис, чтобы в 1% случаев было удобнее писать макросы, которые сами по себе являются злом. Ну такое.>Обоснуй что Лисповые макросы это антипаттерн. Ты это утверждал, но не привел ни одного аргумента. Приведи конкретный пример использования макроса.
>>1323056Язык инструмент. Инструментов не бывает много.>>1323073А где ты видел тех, кто после Лиспа приходят в C++? Или вообще с Лиспа начинают? Вот как минимум один разработчик, пришедший в Лисп после C++ http://rigidus.ru/about/index.html>>1323077Ну так где аргументы, что "Макросы - зло и в 100% случаев являются неправильным решением."? Это твои слова.
>>1323016> В Лисп приходят> приходят>>1323114> Вот как минимум один разработчик, пришедший в Лисп после C++> одинinb4: дальнейшая демагогия с твоей стороны> Ну так где аргументы> Это твои слова.Я другой анон. Всё же скажи, о чём спор-то?
>>1323123>Я другой анон. Всё же скажи, о чём спор-то? Некто утверждает, что Лисп дерьмо, но не приводит ни одного аргумента. При этом расхваливая C++, про который все знают, что он спроектирован как Франкенштейн.
>>1323307Ну окъ. Можешь бойкотировать кресты, а пока сходи абулику пожалуйся, что в зекаче обсуждают плохой язык.
>>1323307>А что разве C++ хорошо спроектирован?на нём бы никто не писал тогда 1)он не развивался бы 2)
>>1323362Абсолютно нелогичная аргументация. В мейнстриме всегда все самое плохое. Так уже устроен человек. Тянет его на все самое плохое. 100 лет назад еще были здравые идеи у человечества. Сейчас уже нет. Это я к тому, что популярность не показатель качества. Популярное = ширпотреб.Все самое ценное всегда мало распространено. Умных всегда меньше чем глупых. Удачных инженерных решений всегда меньше чем неудачных. Эксклюзив всегда будет для избранных.Какой самый популярный язык - Java. Сейчас уже почти все говорят, что он ужасен. Уже понаписали кучу языков для JVM. Только чтобы на джаве не писать. Но вот парадокс, это самый популярный язык. Это не удивительно. В мейнстриме всегда трэш. Большая часть людей не умеет думать своей головой. За них думают другие, телевизор, интернет, реклама, лозунги, авторитеты. Сами они не принимают решений. Они просто их берут откуда-то. Ты в их числе кстати. Твоя аргументация это выдает.
>>1323467Ага. А Евклид со своей геометрией - ориентированный на быдло долбоеб, Колмогоров единственно верный мужик.съеби уже отсюда, немейнстримовый уникум, всем похуй на твое говно мамонта
>>1323469Ты же выбрал C++ потому что услышал (скорее всего еще в школе) что он самый крутой. Это 100%. Такой стереотип существует. И все на него ведутся. Я когда то сам в это верил. Пока не попробовал больше десятка разных языков. Мне есть с чем сравнить.Нужно же думать умом головы. А не другими местами, или слушать других. Скольким языкам ты уделил хотя бы неделю изучения?
>>1323477А ты лютый прорицатель. Я в школе на бейсике писал и узнал о плюсах только после паскаля, си, пролога и лиспа, которым уделял не только прочтение статьи на Википедии. После них были ещё джава, шарпы и PL/SQL. И я, в отличие от тебя, понимаю, что для каждого языка есть своя цель - микроконтроллер на си, задача Эйнштейна - на прологе, решение УМФ - на мэпле/маткаде, компьютерное зрение - на плюсах. Но мне нравятся плюсы и все тут, хоть я работаю на другом языке.Ты же не будешь бросать свою любимую жену просто потому что услышал, что где-то за тремя морями есть баба с сиськами больше и квадратной пиздой?
>>1307268 (OP)Чому студия ругаецца? Вроде все нормально же. Числа сгенерились, все збс. Ну подумаешь возможна потеря данных. Ну и хер с ней.
>>1323477я услышал в школе, что С++ самый крутой язык. Спустя 15 лет - работаю С++ сеньором помидором, и продолжаю так считать.
https://pastebin.com/NQSa7h24Вернитесь к программе из листинга 7.7 и замените три функции обработки массивов версиями, которые работают с диапазонами значений, заданными паройуказателей. Функция f ill_array () вместо возврата действительного количества прочитанных значений должна возвращать указатель на место, следующее запоследним введенным элементом; прочие функции должны использовать его вкачестве второго аргумента для идентификации конца диапазона данных.Когда наполняю массив, если ввести букву начинается ад и израиль. Кто может подсказать что подразумевается в функции наполнения массива под не правильным вводом?
>>1323936https://github.com/jeremimucha/Cpp_Primer_Plus/blob/master/Ch7_Functions_C%2B%2BsProgrammingModules/Examples/arrfun3.cppэто листинг 7.7
>>1323936Научись наконец инициализировать переменные (int i = 0). if (!cin) -- какая-то хуйня. Если хочешь безопасного ввода, считывай через std::getline в std::string и парси строку. В твоем случае например строка должна состоять из одного символа-цифры.
>>1323953>if (!cin) -- какая-то хуйня. Если хочешь безопасного ввода, считывай через std::getline в std::string и парси строку. У него пример из книжки Праты, епта. if (!cin) -- не какая-то хуйня, а данность, условие задачи.
>>1323936>что подразумевается в функции наполнения массива под не правильным вводом? То, что cin сочтет неправильным.
Есть тут obj-c++ господа или те кто юзает c++ для разработки под гейос вместе с obj-c/swift? 1. Есть смысл вкатываться?2. Какой диапазон задач решаешь?3. Без него можно прожить всю жизнь?мимо ios - 2 года
Аноны, не могу найти книгу: Принципы и практика использования C++ Бьерн Страуструп 2 издание 2014 года. У вас точно есть! Поделитесь pdf'кой.
>>1328855В глаза ебусь, в шапке висит оказывается! Тогда следующий реквест:Шаблоны C++. Справочник разработчика. 2 издание 2018 года.С меня как всегда.
Только недавно начал изучать плюсы, может кто-то на простом языке объяснить что такое L-value и R-value и в чем отличие? я так и не понял что в коде леввое а что правое и как их отличать
Ну типа в гугле написано что левое хранится в памяти а правое нет, но как в коде это понять? может кто-то на примере легкого кода по типу int a=5, b=6, c;c=a+b;cout<<c;что тут левое а что правое?и можно еще объяснить на примере этого кода что такое литералыя так понял это 5 и 6?
>>1335624>что тут левое а что правоеc = a + b можно разделить на два шага. Сначала ты высчитываешь значение a + b, а затем полученный результат ты присваиваешь переменной с. Так вот полученный результат (a + b) - rvalue, c - lvalue.Вроде в https://eli.thegreenplace.net/2011/12/15/understanding-lvalues-and-rvalues-in-c-and-c/ нормально расписано.Вообще, подучил бы Си сначала.