le 2tche, привет расскажи мне за C++. Есть тут мастера? Хочу понять насколько круто юзать char* вместо std::stirng. Хочу секретики плюсиков и вообще лучше всего какой-нибудь классный манчик чтобы я познал всю крутость плюсегов.
>>161895043 КАКИЕ НАХУЙ БЛЯТЬ ВОПРОСЫ? Я РЕШИЛ БЛЯТЬ ИЗУЧИТЬ ИХ, ЧТОБЫ ПОНИМАТЬ СУКА КАК ВСЕ РАБОТАЕТ. ПОШЕЛ НАХУЙ ИЗ МОЕГО ТРЕДА, ЕСЛИ НЕ ХОЧЕШЬ РАССКАЗЫВАТЬ.
Если определяемые в ТЗ требования к ПО и среде разработки разрешают плюсы с годными абстракциями и кучей готовых велосипедов, то char* и прочая низкоуровневая С-поебень юзаются строго по необходимости
>>161894657 (OP) Сишные строки - массивы по факту. std::string - реализация строки на базе vector. Тот же массив, но с дополнительным выделением и методами для манипуляции над строками, а если тебе внезапно надо из std::string взять сишную строку - у тебя всегда есть c_str(). Если юзаешь все же С++, то юзай std::string. Безопаснее, проще и меньше ошибок можно допустить при работе со строками.
>>161896120 Ну у тебя и сравнения, блядь. Во первых буду, это же блядь танк! Во вторых си - это велосипед одноколесный по сравнению с другими норм языками.
>>161894657 (OP) char* православно юзать в чистом Си. А у плюсов есть божественные стринги. Если ты не хочешь их юзать зачем тебе плюсы вообще? пиши на чистом Си.
>>161895105 Так ты на голых крестах сначала вкинь вакансию, умник, блядь. Ничего в паскале плохого нет, с конца 90х до конца 00х дохуя софта на нем писалось.
Анончеги, куда мейн ретернит 0 в винде? Кому управление передается? Можно писать "void main () {}"? Если да, то зачем по стандарту мейн делают интовой функцией?
>>161894657 (OP) Если у тебя строки не меняются, а только передаются по ссылке или если ты пишешь для микроконтроллеров - то лучше char. В остальных случаях лучше std::string. Но STL разрабатывали наркоманы, отравленные рыбой и поэтому для std::string не положили в коробку человеческий набор функций (форматный вывод, сплиттеры, поиски и выделения подстрок в нормальном синтаксисе, преобразование в другие типы), но засунули миллиарды вариантов одной и той же хуйни. Ведь это же КОНТЕЙНЕР. Поэтому всетаки иногда придется брать .c_str() и пердолиться с const char
>>161897135 И что оболочка делает с этим значением? То, что ей рандомное значение залетает - похую? Оболочка ведь должна хоть спросить, дескать, че за значение
>>161897179 > Если у тебя строки не меняются, а только передаются по ссылке Какой смысл? Строка же иммьютейбл, добавил конст и в путь. Какой смысл с массива байтов?
>>161897089 Что значит давно уже нет? Есть у тебя база на 15 гигов, в ней нужно проводить ресурсоемкие расчеты, скрипт будешь писать, полуебок? Он у тебя сдохнет нахуй через час выполнения, потому что скриптовые языки не для таких задач
Ты можешь это в скриптах использовать. Для меня, например, достаточно сложно было баш освоить из-за того, что true там - это ноль. Но зато ты можешь всякие условные операторы навешивать на запускаемые программы, например, утилита, которая бекапы делает, завершилась с ошибкой - скрипт в почту срёт.
>>161897304 Потомучто строка - это класс, для которого будет вызываться конструктор при создании. А если кодер не понимает разницы между передачей по ссылке и по значению, то и аллокатор тоже немного поработает. Лишние расходы
>>161897004 По сравнению со временем доступа к api сайта, издержки на выполнение скрипта ни чего не значат. На либах от пистона проще что-то сделать, так как под кресты до сих пор нет нормального репозитория и пакетного менеджера, который бы избавил от радости конпеляции всех зависимостей и линковки.
Нет, это ты долбоёб. А в реальном мире люди пишут скрипты. Возможно это даже это будут хранимые процедуры для этой конкретной СУБД. И именной по той же причине, по которой не пишут программы в машинном коде. А вот если ты мне сейчас не ответишь, что это за причина, то значит я ебал твоего батю в очко, да ещё и без вазилина. И у твоего бати кровь из жопы потом шла.
>>161898299 Ты сможешь широкий спектр задач без особых спотыканий на ровном месте.
>я стану богом? Нет, программирование - оно для лохов. Вообще не понимаю, хули здесь такой ажиотаж вокруг него, сидишь как ебень по 8 часов за компьютером, пальцы болят, жопа болит, спина болит, диабет и сердечная недостаточность на носу, зарплаты уже не растут, а тебя эксплуатируют все больше.
С каким примером? Где ты во всех рассках рассказываешь, как я твоего батька в очко дрючу? Знаешь, я бы и твоего деда выебал, но боюсь, что это будет неуважением к ветеранам.
Уж где я деградантство увидел - так это в желании ради 15 гигов писать свою собственную СУБД. А уж долбоёбов, которые за это готовы заплатить - точно не существует.
>>161898299 Ключевое слово в предыдущем посте было legacy. Ты возненавидишь свою работу, когда будешь целый день исправлять ошибки в коде, который был написан более 10 лет назад человеком, которого уже нет в живых. Код конечно же будет без комментариев и написан в стиле: статья на хабре "как писать неподдерживаемый код".
Так что пиши high load на go, это модно. Разбирайся с БД, 1С, SAP, без работы не останешься. Что касательно плюсов и явы — не лезь блядь дибил сука ебаный.
>>161898031 > И ресурсы расходуются не так уж сильно Ну вот два варианта: 1) void kokoko(const string& aStr) { string a = aStr; a[2] = '$'; callZAL_UPA(a.c_str()); } 2) void kokoko(const char* aStr) { char a[128]; strncpy(a,aStr,127); a[2] = '$'; callZAL_UPA(a); }
Разница между ними в том, что в первом случае вызовется лишний конструктор и память для строки "а" будет взята в куче. А во втором случае на этом будет экономия, т.к. аллокация на стеке стоит 0(ноль). Если kokoko крутится в каком-нибудь бешеном цикле или от проги ожидают большой аптайм(месяцы или годы), то можно здорово повысить производительность такими негодными char
Если ты такой не пиздабол, хотя бы три ссылки вкинь с подобными заказами. Ни одного примера, где такая ересь в реальной жизни встречается, зато постов настрочил. Или забыл как я твоего батю трахал?
Программирвал на C++ за 1.2к зеленых на удаленке официально и ещё левак для автора одной ICO за эфириум. Сейчас работаю на Rust в киевском офисе одной интересной фирмы статус биткоина в Украине непонятен Имею опыт в QML/Qt, учавствовал в написании криптомессенджера. Торжественно заявляю, что отписавшиеся про ненужность - полные долбоёбы. Что лучше: манная каша или четверг? Вот так вопрос звучит. Хотя чему удивляться, традиции двача, судить о том, чего не знают. Половина посетителей треда мне за мув семантику и компайл-тайм полиморфизм не пояснит
>>161900202 Каждому своё. Нет, нихуя не закончен, пока каждый день на нем пишутся новые, свежие проекты (не легаси) с фичами из 14 стандарта, клиенты текут. Они готовы платить тонны денег, возможно как раз потому, что им нужен продукт именно на С++.
>>161900299 В твоих фантазиях пишутся, что ли? Клиенты платят за продукт, им похуй на технологии до тех пор, пока продукт отвечает некоторым требованиям, и эти требования практически всегда можно выполнить на современном языке с бОльшим комфортом, меньшим количеством ошибок и намного быстрее.
>>161900501 Как раз-таки наоборот, пока первокурсники обсуждают ненужность языков, люди, которые в этой сфере крутятся - понимают, что эти вскукареки про ненужность просто абсурд.
>>161900581 >люди, которые в этой сфере крутятся - понимают, что эти вскукареки про ненужность просто абсурд А потом обнаруживают себя на обочине профессии.
>>161900641 Да. Так и есть. Пока дрочили какой-то популярный жс фреймворк или кложуру, нормальные люди осваивали узкие технологии с высоким порогом вхождения, обеспечивая себе будущее и безбедную старость. А петухи с ненужно так и оставались баттхёртами в /b/ыдлятне.
>>161900818 Надо тебе литерал сделать. Будешь std::string создавать, долбоёб? Поздравляю, ты только что создал бесполезную хуйню на стеке, а мог бы ограничиться временем компиляции.
>>161900714 Тезисы: 1. Популярные JS фреймворки и Clojure позволяют решать задачи бизнеса быстрее и качественнее. 2. У C++ низкий порог вхождения и большое количество нахуй не нужных подводных камней, которые отравляют жизнь разработчикам. 3. После 35 ты либо менеджер / консультант, либо сосешь хуи в любом случае. 4. Не знающий современных инструментов для решения задач бизнеса и с отравленной душой программист окажется ужасным менеджером / консультантом.
Вывод: Ты сосешь хуи сейчас и будешь сосать их в будущем. Можешь не соглашаться - ССЗБ.
>>161900962 > Надо тебе литерал сделать std::literals::string_literal А вообще конечно сравнить си-строки (которые и правда могут быть во времени компиляции) и класс стрингов, которыми таки можно манипулировать. Например, делать сабстринг или поиск.
И, в конечном итоге, написание char c - неверное, ибо нужен const char (и ты забываешь, что под словом "литерал" всегда имеется в виду именно сама запись в кавычках - которая уже впоследствии размещается в памяти). Так что - объявил ты чар на литерал, потом сделал с* = "A", и все, оно не отработало, ибо ты сам знаешь почему. Библиотека классов в этом отношении гораздо удобнее в конечном итоге.
>>161901749 Standard C++ Library, конечно же. Но там очень много из STL, с тех времен пока стандарта еще не было. Так что сейчас оба термина используются наравне (хотя они значат и не одно и то же).
>>161902561 У него очень ограниченное применение. Это как с вопросом "что лучше, метро или автомобиль". Да, метро ездит в среднем быстрее. Но автомобиль может отвезти тебя туда, куда метро не ездит, да и комфорт как бы повыше.
>>161902843 Очень хорошая, на самом деле, аналогия. Метро: быстро, просто, не задумываясь, только в определенных местах. Машина: дорого, дольше, сложнее, но удобнее и универсальнее на порядок.
>>161902913 > буст А зачем? То самое сраное легаси, которое все ненавидят, за исключением очень частных случаев, которыми можно пренебречь. Кьют - потому что моя первая работа была на этом говне, и я довольно долго работал с ним. Сейчас я укатился вообще с C++ в Rust, как только нарыл шанс.
>>161902835 Ну да. У 95% юзкейсов (там где нужны манипуляции всякие) - это стандартные стринги, плюс буст если сильно хочется или свое кастомное расширение если руки не из жопы и дохуя времени. Оставшиеся 5 - оптимизируемые стринговые литералы, которые могут жить в константной памяти, но с которыми кроме как прочесть (или перебрать как массив чар) нихуя не сделаешь.
А есть вообще какая-нибудь человеческая библиотека с контейнерами и прочей мочей для крестов? Или мб фреймворк в который она включена? А то я это стандартное говнище видеть не могу даже.
>>161903029 Как зачем? Расширяем стандартную библиотеку. А КюТэ я когда смотрел, мне стало немножко стремновато, и я решил не плавать в этом дерьме. Раст - ну, ябыпосмотрел (хотя Гоу тоже няшный, он мне паскаль напоминает чем-то, не знаю чем). А так вообще я с этим всем вашим сишным зоопарком года эдак с 2001 не ковыряюсь, как-то не до того...
>>161903231 Ехать или шашечки? Го - очередное говно для того чтобы брать количеством дешевых макак Раст очень хорош, но не для тех, кто бугуртит от управления памятью.
Расскажите господа с++ программеры, есть ли еще какие удобные случаи использования perfect forwarding, кроме как прямое создание объекта внутри контейнера?
>>161903419 > посмотри любые тесты, увидишь опережение до 20% > учить язык которого нет в рейтинге tiobe > и на котором почти никто не пишет кроме хипстеров с "гоу мне не нрав" Что-то в этом есть.
>>161903600 Да какие только не писались. Но какая вообще разница? Сейчас не пишут игры из говна и палок, а используют движки, пусть которые даже кресты поддерживают. Но писать игру на си++ и пилить на анриле, в котором как раз вроде можно с++ юзать - это как бы немного разные вещи.
>>161903420 > язык привносит новое > да, напихай в меня еще этого говна, да побольше! Ок. Новое. Ты случайно эзотерическими языками не увлекаешься? Там что ни язык, то новинка.
>>161903886 >Но писать игру на си++ и пилить на анриле, в котором как раз вроде можно с++ юзать - это как бы немного разные вещи. Сам не знаком с темой, но рассуждаешь с видом знатока. Не неси хуйни, парень. Мимо из геймдева.
>>161904741 1) Упоминание было 2) Стрингвью все равно создает свой экземпляр внутре стека, хотя ЗНАЧЕНИЕ у него таки указывает на литерал Впрочем, значение const char * p тоже хранится в стеке / куче
>>161904926 > локальные переменные > сегмент данных Нет, ну может современные компиляторы как-то не так делают, но в мое время они их пихали исключительно в стек.
>>161894657 (OP) Самый главный секрет C++: использовать C++ только в случае крайней необходимости, когда другие средства не справляются. Потому, что C++ как скальпель - очень точный, мощный, но очень опасный инструмент. Во первых, C++ - сложный, во вторых, C++ не прощает ошибок, в третьих ошибки в коде на плюсах могут проявляться в самых экзотических условиях: смена компилятора, смена версии компилятора, изменение флагов оптимизации, луна не в той фазе. То есть, если программа на плюсах скомпилировалась, запустилась, прошла все тесты и отработала нормально, то это вообще не означает, что она написана правильно. В C++ даже такие чудеса могут происходить: https://habrahabr.ru/company/infopulse/blog/338812/
>>161905332 Я делаю перерыв на пивко. Серьезно, блин, тред напоминает старые студенческие терки на тему "что лучше", "что быстрее", "что учить" и так далее. А ведь мне уже 35, блин...
>>161894657 (OP) >Есть тут мастера? Хочу понять насколько круто юзать char вместо std::stirng. Хочу секретики плюсиков Путешествуй. char — это хардкорный Си, а не кресты.
расскажи мне за C++. Есть тут мастера? Хочу понять насколько круто юзать char* вместо std::stirng. Хочу секретики плюсиков и вообще лучше всего какой-нибудь классный манчик чтобы я познал всю крутость плюсегов.