Вместо шапки - https://github.com/sosachbot/cppthreadhat/wikiОтветы на все вопросы - http://en.cppreference.com/w/ http://www.cplusplus.com/reference/Прошлый >>1006097 (OP) Теги: плюсы, cpp
>>1016662 (OP)>C+ #55Не мог не обосраться.
>>1016664Впрочем, это ещё в прошлом треде.
>>1016666
>>1016664>>1016665>>1016666смажь мазью свою попку и ложись баеньки))
>>1016669> пук
>>1016662 (OP)Плюсы или джаву выбрать?
>>1016664Это такой траленг от хуйтера ситхов.
>>1016771Это шизик из старых тредов бомбит, что картинку поменяли.
>>1016769Джаву. Плюсы уже не нужны в 2017
Сначала вкатиться в Си, а потом в кресты, или наоборот?
>>1016801Кресты это си с классами. Начни с си, потом классы освоишь.
>>1016788хочу драйверы для микроволновок писать
Что скажите по Си--?
>>1016832Драйвера не пишут на крестах.
>>1016801Вот таких плесневелых главное не слушай, >>1016816 , си с классами у него, охуеть вообще, на улице перестройка и играет ласковый май. Ныряй сразу в кресты, причем именно в 11, пока забей на более ранние и более поздние.
>>1016858Ну можно и так, если "прямо сейчас" надо вкатиться. А по хорошему бы конечно, начать с Си.
>>1016911Нахуя если это взаимозаменяемые языки разошедшиеся по синтаксису лет как десять?
>>1016914> взаимозаменяемые языкиТы уверен?
Мне нужно чтобы статическая функция возвращала большой объект, как это сделать, чтобы объект не копировался, без поинтеров?class BS { char buffer[65536]; static BS getRandom() { BS bs; //fill buffer with random data return bs; }}
>>1016931По указателю передавай (через std::unique_ptr, например или просто указатель (не забудь выделить память). А вообще в таких случаях, как правило, компилятор применит RVO (Return Value Optimization) и будет писать твой BS в стековом фрейме одного из предыдущих вызовов. Так что можешь не запариваться.Ну а для больших объектов придумана куча.
>>1016931Референс возвращай, дебичь
>>1016931...static void getRandom(BS& bs) { /fill buffer/ }...BS bs;BS::getRandom(bs);
Посмотрите код, в чем проблема?else :falseif Billy=лох else 0 :approveded...............range(i=0, k=2, x=b)b:onloadWrite:"Billy fuccking veryfecalishhiet"Print ("Billy fuccking veryfecalishhiet")end.
>>1016946Что-то на французском. Не пойму ничего...
>>1016941Дебич тут только ты.
>>1016951НЕТ ТЫ, МАМ СКАЖИ ЕМУ
Как суметь прочитать огромное количество страниц (1000) и при этом не сойти с ума?
>>1016801>Сначала вкатиться в Си, а потом в кресты, или наоборот?Нахрен вы задаёте вопросы, на которые уже отвечали столько раз, что решили вынести в faq?https://isocpp.org/wiki/faq/how-to-learn-cpp#learning-c-not-a-prereq>>1016787>Это шизик из старых тредов бомбит, что картинку поменяли.Если бы ты не был полным дебилом, то понял бы, что я:1. Бомблю не из-за картинки, в первую очередь.2. Вообще не бомблю, в нулевую очередь.Кстати, к шизофрении я не особо склонен.>>1016832>хочу драйверы для микроволновок писатьИх на Java пишут. Если ты почитаешь историю этого языка, то узнаешь, что его изначально создавали для микроконтроллеров бытовой техники.
>>1016964Что читаешь?
>>1016964>Как суметь прочитать огромное количество страниц (1000) и при этом не сойти с ума?Большинство читало больше и не сошло. Всё зависит от того, за какое время и каких страниц.
>>1016980Стэнли Липпман, Жози Лажойе и Барбара Му Язык программирования C++Но думаю сначала прочитать прату по с++, а затем вернуться к этой книге.
>>1016982>>1016983Насколько быстро можно это прочитать? Просто я за весь месяц прочитал всего лишь чуть более ста страниц.
>>1016983За неделю.
>>1016989Как? Один я такой слабоумный, что> Просто я за весь месяц прочитал всего лишь чуть более ста страниц.
>>1016990Ты наверное в дотку играл этот месяц.
>>1016992Нет, я и до этого пытался читать книги по C#, джаве, питону, но все читалось как-то очень медленно.
>>1016994Родители курят/пьют? Как беременность протекала нормально? Травм не было?
>>1016994Может ты hanjubasom балуешься?Парнишка один при мне стоял у подъездной двери и вспоминал в какой квартире он живет.
>>1016997Когда я родился родители не пили и не курили.Насчет беременности мать сказала, что все было нормально. Хотя в глубоком детстве меня иногда водили на энцефалограммы и к невропатологу, не знаю зачем.>>1017000Ничем не балуюсь.
>>1017009Бло, братан я даже хз тогда. Если ты не совсем нуб, то книги должны легко идти. Простое быстро пролистывай, сложное разберай. Если совсем не варит котелок, оставь закладку и потом вернись перечитать. 2 месяца 100 страниц читать это даже хз как назвать.Может у тебя мотивации нет?обычную закладку в книгу, не ту что подумал тц майор
>>1016938Только не RVO, а NRVO (Named Return Value Optimization)
>>1017023>2 месяца 100 страниц читать это даже хз как назвать.Может он там все упражнения решает.
>>1017125В том то и дело, что упражнения даются очень легко и быстро, но текст читаю очень медленно.
Ньюфаг вкатывается в тред с дебильным вопросом.Почему нужно использовать переменную цикла как ссылку, для изменения символа в std::string? Это связано с тем, что строки в глубине свой души остаются const char*? И как нам помогает при этом ссылка? Почему нельзя использовать обычную переменную?
>>1016964>Как суметь прочитать огромное количество страниц (1000) и при этом не сойти с ума?Лучше их читать после практики. Тогда сразу будешь понимать, что тебе нужно, а что - нет. Мне вообще гугла, Мейерса и гнутых STL-исходников хватило в свое время, чтобы вкатиться (не с нуля, конечно). Я писал для обучения маленькую либу с контейнерами: вектор, дек, хэш-тэйбл, интрузив лист. На практике сразу ясно становится, что зачем нужно и как применяется. А просто книгу ботать - бесполезно, мне кажется. Ничего не отложится.
>>1017166>Почему нельзя использовать обычную переменную?Потому что обычная переменная после изменения ничего со строкой не сделает, а ссылка изменит символ в строке, на который ссылается.
>>1017177>обычная переменная после изменения ничего со строкой не сделает, а ссылка изменит символ в строке, на который ссылаетсяЯ и хочу узнать, почему так происходит.
>>1017179Переменная - это независимый кусок памяти. Что тут не понятно?
>>1017174Подскажи другому нюфагу: чем интрузив контейнер от нон интрузив отличается?
>>1017184Я понимаю, что независимая, но зачем ссылка? Ссылка - это ведь другое имя переменной?
>>1017192Да.
>>1017193Ну так а в чем тогда разница использования: изменять ссылку, т.е изменять переменную, либо сразу изменять переменную без ссылки?
>>1017195> изменять ссылкуСсылки не меняются, меняются переменные, на которые они ссылаются.
>>1017195Вообще, ты не в тот тред пришёл с такими вопросами.
>>1017189>чем интрузив контейнер от нон интрузив отличается?Обычный контейнер управляет объектами, которые в него добавляют, интрузив - объекты сами являются хранилищем контейнера.List<T> - обычный лист, который менеджит память, управляет добавлением, удалением элементов.Интузив: struct MyListElem : IntrusiveListElement<MyListElem> (или композицией вместо наследования), где struct IntrusiveListElement { T* next }; Причем эти элементы могут лежать в каком-то другом контейнере, но при этом быть частью списка.
>>1017196Ну так а почему бы сразу не изменить переменную? Зачем изменять ее через ссылку? Почему так придумано?>>1017197В остальных тредах не знают, что такое ссылка и гонят меня сюда.
>>1017166Потому что обычная переменная в теле цикла получает копию символа. Все изменения будут действовать только в пределах тела цикла. А ссылка - это по сути синтаксический сахар над указателем. А он указывает на символ в изначальной строке.С указателями-то разобрался?
>>1017200>по сутиТы выражаешься как выпускник филологического факультета.
>>1017200> ссылка - синтаксический сахар над указателемТак вроде же указатель - это объект, а ссылка нет, это всего лишь другое название переменной
>>1017202Боюсь, выпускники филфака выражаются куда изящнее.Так, что боцману флота записать охота
>>1017204>Так вроде же указатель - это объект, а ссылка нет, это всего лишь другое название переменнойПравильно мыслишь. Всяких питухов, которые мешают в кучу определения стандарта и детали реализации и потом принимают второе за первое не слушай.
>>1017204В твоём случае это название какой переменной?
>>1017207Хорошо, так а в чем разница?>>1017199
>>1017200>синтаксический сахар над указателемДебилушко, синтаксическим сахаром называются конструкции языка, которые в принципе можно выразить через другие.Всех свойств ссылок ты через указатели не реализуешь, так что не пизди насчёт синтаксического сахара.
>>1017208Та, которая бегает в цикле по строке
>>1017204Нет.Это именно что удобная конструкция.Чтобы лишний раз клаву не топтать.https://pastebin.com/qS0q35dc
>>1017213Ну хуй знает, вроде в книге написано обратное
>>1017204И вообще, встречал мнение по формату кода. То, что всякие структуры лучше в функции передавать по указателю или ссылке, ты, надеюсь, в курсе. Так вот, некоторые советуют входные параметры (типа структур) передавать по ссылке, а выходные - по указателю, чтобы сразу по виду сигнатуры было понятно, что к чему.
>>1017213>Нет.Пидора ответ.
>>1017212А ты вообще разбирал это выражение?http://en.cppreference.com/w/cpp/language/range-forhttps://stackoverflow.com/questions/8164567/how-to-make-my-custom-type-to-work-with-range-based-for-loops
>>1017212Переменная же не может обладать чужой памятью, она уникальна в данный момент времени. Достаточно знать этого факта, чтобы понять, почему при изменении переменной кроме неё ничего не меняется. Ты же когда в сортир идёшь, у твоего соседа по дому днище в кровати не срывает. Вы - два независимых объекта/куска памяти со своими состояниями/значениями в памяти.Ты часом не из Java-мира к нам пришёл?
>>1017220> из Java мираПочти угадал, я джва года писал хеловорлды на шарпе
>>1017220>Ты часом не из Java-мира к нам пришёл?После джавы все понятнее должно быть - там все ссылки кроме примитивов.
>>1017223Скорее наоборот, он под переменной понимает что-то вроде ссылки или указателя. Ведь это всё, что он видел.
>>1017230У меня были такие же мысли про >>101722
>>1017231>>1017223, я хотел написать
>>1016983у лиммана есть вводная книжка по крестамона охуеннаячитай ее, делай там упражненияа потом уже сразу начинай что-нибудь практическое кодитьа потом уже что непонятно, у страуструпа кусками дочитаешьесли бы у меня была машина времени, то себе молодому я дал бы такой совет
Не понимаю во всех этих указателях и ссылках, особенно если там какой-то *void. Что почитать?
>>1017388>*voidНу, в общем, указатели на указатели на указатели.
>>1017388>Что почитать?Шапку треда.
>>1017388Есть специальная книга по указателям, но там про чистый Си.Richard M. Reese "Understanding and Using C Pointers. Core Techniques for Memory Management"А вообще лучше прочти это:Стэнли Липпман, Жози Лажойе и Барбара Му Язык программирования C++
Аноны, посоветуйте что-нибудь по параллельному погромированию в c++Чтоо использовать для создания пула потоков? Как с этим работать?
>>1017665К сожалению, придётся использовать какую-нибудь либу. Boost, например.
>>1017667В С++11 уже есть потоки.
>>1017720Я может неправильно понял. Подумал, что ему нужен готовый пул.
поясните за обработку исключений\ошибок на плюсах. где целесообразна и какие основы этого дела. приходится ли пользоваться возможностями библиотеки си. хотелось бы выбрать основной инструмент, но там дохуя всего в библиотеке.
>>1017767еще поясните с чего начать вкатывание в qt.
>>1017773С вкатывания в кутю.
>>1017773Школу закончи.
>>1017845закончил тебе защеку
>>1017845>Школу закончи.Зачем?
>>1017767Книжечки в шапочке. Там всё есть.
>>1017767>поясните за обработку исключенийВ 90% случаев ничего явно обрабатывать не надо, в отличие от обработки возвращаемых значений.
>>1017767>поясните за обработку исключений\ошибокПоясняю> где целесообразнаТам где есть исключения/ошибки.>приходится ли пользоваться возможностями библиотеки сиПриходится>хотелось бы выбрать основной инструментВыбирай printf
>>1018142>Выбирай printffmtlib лучше.
>>1018143system() !
>>1017767>поясните за обработку исключений\ошибок на плюсахtry-throw-catch>где целесообразна Там, где ты не уверен в коде. В частности, если в работу программы вмешиваются внешние по отношению к программе факторы, такие, как исчерпывание памяти, зависимость кода от работы других программ. >приходится ли пользоваться возможностями библиотеки си.Можно, но не обязательно. Например, можно использовать С-схему распределения памяти для перегрузки оператора new или [], однако сам по себе С++ предоставляет достаточно мощные средства.>основной инструментtry-throw-catch. exit(), abort(). Вообще говоря, С++ предлагает тебе самостоятельно описать обработчики ошибок, и ни в чём тебя не ограничивает.
https://www.coursera.org/learn/c-plus-plus-white
Крестоносцы, объясните: зачем указатель на базовый полиморфный класс может указывать и на класс-потомок? Я не понимаю выигрыша.
Как же заебали ньюфаги...
>>1018271Виртуальные функции.
>>1018273Ну и? Виртуальные функции всё-равно либо наследуются, либо переопределяются.
>>1018271Указатель на базовый неполиморфный тоже может.
Поясните, почему MSVC выдает 12, а gcc и clang 8?#include <iostream>int main(){ const std::vector<int> f(2); const std::vector<int>::const_iterator cit = f.begin(); std::cout << sizeof(cit) << std::endl;}
>>1018280Потому что таков размер const std::vector<int>::const_iteratorВсегда Ваш,Капитан К.О.
>>1018281Ну а почему разработчики MSVC захотели сделать его 12, а не 8?С чем это связано?
>>1018279Я всё ещё не вижу выигрыша. Или он начинает проявляться только с использованием динамического распознования типов?
>>1018280Почему не написатьusing namespace std;В глазах не рябит от std:: по всему тексту?
>>1018283Им так было нужно.>>1018284>Я всё ещё не вижу выигрыша.Потому что ты проиграл.
>>1018286>ты проиграл....битву но не войну. Вот в твоей практике подобное поведение указателей приносило пользу?
>>1018285Мне так удобнее.>>1018286>Им так было нужно.Ну а почему разработчикам clang и gcc нужно было 8, а не 12?
>>1018288>Ну а почему разработчикам clang и gcc нужно было 8, а не 12?Чтобы копировать итератор было дешевле.
>>1018289>Чтобы копировать итератор было дешевле.>дешевлеЭто как?
>>1018280>почему MSVC выдает 12http://rextester.com/l/cpp_online_compiler_visual тут выдал 8. Там 64-битный компилятор.
>>1018289Получается, что разработчики MSVC обосрались, определив 12 вместо 8?
>>1018280>почему MSVC выдает 12http://webcompiler.cloudapp.net/ 32-битный, выдаёт 4
>>1018291>>1018293VS 2017
>>1018295А если Release?
>>1018280>const std::vector<int>::const_iterator cit = f.begin();Зачем тебе константный итератор?
>>1018295https://godbolt.org/g/k2evNE4 и 8Тоже 2017
>>1018274Чтобы их вызывать, очевидно же.
>>1018296>>1018293>>1018291Провел эксперименты, результаты пикрил.Почему так происходит? В чем разница между Release и Debug?
>>1018304>В чем разница между Release и Debug?В размере итератора, озозаВидимо, добавляют инфу для рантайм-проверки выхода за границы итератора и может ещё для чего-нибудь вроде сравнения итератора не с тем end.Посмотри определение в заголовочном файле.
>>1018306>выхода за границы итератора Выхода за границы вектора*
>>1018298Проводил эксперименты.Просто const_iterator - это константный итератор, или итератор на константу?А если const const_iterator - это константный константный итератор или константный итератор на константу?
>>1018309Так же, как с соответствующими указателями.
Вопросик такой. Решил упростить свой Сишный код няшными функциями новой гомоС++.Будет ли auto в данном коде работать как var? Функция вызываемая мной возвращает NTSTATUS, по идее я хочу чтоб _status после вызова стал типом NTSTATUS и мне не пришлось обьявлять для этого дополнительную переменную.Вот код :https://pastebin.com/vEqu6beF
>>1016224Как уже сказали, смысл в этом только один: позаёбывать препода, так как с первого раза всё это заходит трудно. У нас в инсте вообще сначала с машины Тьюринга начинали.Если ты сомневаешься в том, что тебе надо платить эти 20к, то лучше здесь анона найди, будешь платить за прогресс и удовлетворение.>>1016295Ебу дал? Если тебе так сильно нужна производительность - отключи эксепшены в компиляторе (будут быстрее функции вызываться, азаза). Лучшие умы планеты делают всё для того, чтобы уничтожать стопу на С++ было так же эффективно, как на С.>>1016769Спроси это в отдельном треде, а не в треде плюсов. Раз ты спрашиваешь в треде плюсов: выбрать плюсы, так как джава дно.>>1016931Возвращай ссылку, но только ты можешь себе в ногу выстрелить, если класс сдохнет. CopyOnWrite в плюсах запрещён.>>1016946Сколько ещё раз ты этот кал будешь постить?>>1016964Конспектируй, блядь, будь мужиком.>>1016990Ты не слабоумный, просто плюсы - сложный язык, особенно - для начинающих. Потом быстрее пойдёт, если будешь упражняться.И вообще программирование - это сплошное легаси, которое разгребать ещё десятилетиями будут. Коспектируй!>>1016938Если у него класс временный - тогда да, но тогда его стопа мертва ещё до рождения. Если у него класс обычный - никакого RVO быть не может.Хотел нас потраллить?>>1017204Что ты пишешь, блядь? Всё, что ты можешь найти в языуе без подключения хеадеров - это интегральные типы (поправьте меня, если неправ), какие ещё объекты? Ссылка и указатель - один хуй, только одно надо разыменовать и можно переуказывать на другую переменную, а другое - не надо, и пересослать нельзя.(про конст не говорим)>>1017211Важные отличия есть, но на суть не влияют.>>1017388void - это char , который можно приводить ко всему без предупреждений о типизации. char - это тип ячейки памяти, может быть больше 8 бит, и вовсе не "буква".>>1017665OpenMP нагугли, почти во всех современных компиляторах поддерживается.>>1017773С изучения примеров из дистрибутива Qt и тщательного чтения справки в Qt Creator.>>1017767Ты можешь писать на C++ без использования массивов на стеке и вообще почти всего из С. Но так никто не делает, поэтому читать чужой код будет трудно. Твой основной инструмент - документация, блядь - cppreference и стандарт.>>1018287В алтависту! Быстро, решительно!>>1018292Алтавистуй C++ ABI и про еблю с либами и extern "C".>>1018309- итератор (указатель) на константу- неизменяемый итератор на константу (но на возможность арифметических операций с ним не влияет)>>1018546Да, всё будет. auto именно это и означает - вывод типа из инициализатора (должен быть вместе с объявлением).
>>1018564>АлтавистуйАж вспомнил 3.11 для рабочих групп и нэтскейп наш рулевой
>>1018564>Возвращай ссылку, но только ты можешь себе в ногу выстрелить, если класс сдохнет. CopyOnWrite в плюсах запрещён.http://ideone.com/Ib0VPy>Если у него класс временный - тогда да, но тогда его стопа мертва ещё до рождения. Если у него класс обычный - никакого RVO быть не может.>Хотел нас потраллить?http://ideone.com/cgfaTq
>>1016941Возвращать референс на локальный объект -- это undefined behavior, т.к. локальный объект, лежащий на стеке, после выхода из функции потенциально будет уничтожен.
>>1018585Перечитал ориджинал вопрос и всё понял. Статик не заметил, смысл вопроса во время чтения исказил.>>1018587Ты тоже невнимательно читал. Статичечкий метод, возвращается класс, а не buffer.>>1018585 >>1018585 >>1018585 >>1018585
Работаю С# веб макакой, знаком с С. Стоит ли учить С++? в моей стране особо вакансий нет, но все же хочется кресты знать хоть чуть чуть.Может свалю потом за бугор и где то смогу стать крестомакакой? я хз. Очень хочется кресты, прям сильнее пиздятинки хочетсо!
>>1018618Если писать самому, то можно писать без легаси-говна. Если в чужом коде рыться, то лучше не надо. Да ты и без легаси стопу изуродуешь, пока не привыкнешь.
>>1018621Хочу писать для себя на C++ 11/выше с использованием всех красивых фичей которые упрощают жизнь. Без легаси говна.Хочу вкатиться в гейдев пока что для себя пошаманить с OpenGL/Direct3D. + я тупой в математике и собираюсь немного подтянуть знания, парралельно с гейдевом было бы прекрасно.
>>1018631Ну и вперёд тогда. В шапке есть инфа.
>>1018636Ебучая РАБота только мешает со временем. Придется зубрить теорию и практиковаться по выходным. Ну может еще после РАБоты покодить, но у меня не часто силы остаются даже для того чтоб писать на C#/C свои проекты.
>>1018618Вообще особого смысла нет, C# вполне себе альтернатива крестам, области применения с учетом CX пересекаются под виндой чуть более чем полностью. А так тут где-то по соседству есть тема с конфой для вкатывающихся в разные языки с circle jerking'ом и прочими ништяками.
http://www.cplusplus.com/reference/complex/complex/real/Я чего-то не понимаю или те, кто писал std::complex - ебаны? Зачем писать геттер и сеттер, если можно просто сделать поля, как у std::pair? Нахуя всё усложнять?
>>1018668Хотели сделать однородным использование complex, наверное. Абс, например, может быть только методом.Там нет сеттера - когда ты хочешь присвоить новое значение, ты пишешьcomplex huy;huy={1,2}; //initializer_listилиhuy={huy.real(),2};
>>1018695>Абс, например, может быть только методом.Ну это естественно, если он не хранится, а считается.Сеттер есть, можно написать:huy.real(228);
>>1018724А, теперь вижу. Но ты на мелочи жалуешься. Попробуй лучше функцию, которая работает на трёх значениях аргумента: >>1005226 .
>>1018731Да, но:1) Это стандартная библиотека, там каждая мелочь должна быть продумана.2) Так надо же специально всё усложнить, помимо того же поля написать четыре бесполезные функции.3) Мне интересно, может в этом глубочайший смысл какой-то, я-то хуй простой и не понимаю чего-то, что умные дядьки придумали.
>>1018564>Если тебе так сильно нужна производительность - отключи эксепшены в компилятореВ правильном исполнении эксепшены не добавляют никакого оверхеда в нормальный control flow. Т.е. являются с этой точки зрения zero cost. Non-zero cost начинается только если эксепшен бросают.> Что ты пишешь, блядь? Всё, что ты можешь найти в языуе без подключения хеадеров - это интегральные типы (поправьте меня, если неправ), какие ещё объекты?Что ты пишешь, блядь?Сразу заметно не открывавшего стандарт ни разу. Поди посмотри определение объекта в C++. К слову, в стандарте C тоже употребляют это слово — объект. И определяют оба стандарта этот термин одинаково. Так что он всё написал корректно.> Ссылка и указатель - один хуйНет.> Важные отличия есть, но на суть не влияют.> сутьГуманитарием несёт за версту.Ссылки — не синтаксический сахар, т.к., как я уже писал, выразить все свойства ссылок через указатели невозможно.> void - это char , который можно приводить ко всему без предупреждений о типизацииНет, нельзя. Это другие указатели можно неявно приводить к указателям на char или void, но не наоборот.> char - это тип ячейки памяти, может быть больше 8 бит, и вовсе не "буква".Это верно, массив из char и unsigned char использую для определения что такое "представление объекта в памяти", но всё-таки одно из главных назначений char — хранить символ из базового набора символов (что это такое — тоже определено стандартом).> Твой основной инструмент - документация, блядь - cppreference и стандарт.Не очень похоже, что ты это применяешь к себе.
>>1018880>В правильном исполнении эксепшены не добавляют никакого оверхеда в нормальный control flow. Т.е. являются с этой точки зрения zero cost. Non-zero cost начинается только если эксепшен бросают.Не все так умеют. Некоторые до сих пор в MSVS компилят, а там легаси на легаси.>Поди посмотри определение объекта в C++.В следующий раз полезу - гляну. Спасибо.>Не очень похоже, что ты это применяешь к себе.Если ты не хочешь, чтобы я что-то писал, то пиши раньше меня, делов-то. Что я применяю к себе - лучше известно мне, чем тебе. Знать все особенности языка до грамматических правил и уметь писать на нём, умело пользуясь документацией в моменты сомнений - разные вещи.Мир и любовь к твоему очагу.
>>1018889>Если ты не хочешь, чтобы я что-то писал, то пиши раньше меня, делов-то.Я и написал раньше тебя: >>1017207
>>1018889>Некоторые до сих пор в MSVS компилятА что плохого в MSVC?
>>1018980Компилятор говно - ИДЕ божественна.
Хочу пойти собеседоваться.В требованиях к вакансии указано:)работа с сетью(http))знание unix систем на уровне пользователя На линуксе сижу года полтора, но никаких знаний особо не имею.Что можно почитать по этим двум пунктам? Чего от меня ждут?
>>1018980Конкретно в этом случае - SJLJ-эксепшены (инбифо кланг).
>>1019057>Компилятор говноНу так я и спрашивал про компилятор.Что конкретно в нем говно?>>1019108> SJLJ-эксепшены (инбифо кланг)Почему это плохо?
Кстати, когда там модули в крестах появятся?В Visual Studio 2017 уже есть експериментальная возможность использования модулей.
>>1019122Оптимизирует хуево, не умеет в С++17. Шланг и гцц умеют.
>>1019179Жаль, что у шланга и гцц нет ни нормальных ide, ни нормальных портов на винду.
>>1019212Шланг на винде есть, да и MinGW от Стефана Т. Лававея норм. Другое дело да, что IDE кроме студии нет вообще, кроме красноглазой параши и джетбрейнсового дерьма.
>>1019179>>1019212Ребята, кто вам мешает залезть в исходники и подкрутить их на свой вкус? Или вы тут хеллоуворлды пишете?
>>1019216>Шланг на винде естьА у него есть собственная стандартная библиотека, как у gcc и msvc? Насколько я знаю, приходится использовать его вместе с gcc, а я этого делать не хочу.Притом его не поддерживает даже говно от джетбрейнсов. Если бы поддерживало, и у него была своя стандартная библиотека, то радостно бы перекатился.>>1019216>MinGW от Стефана Т. ЛававеяМожно поподробнее?
>>1019220в исходники компилятора студии залезть?Ты таблетки принял?>>1019224https://nuwen.net/mingw.html
>>1019220>залезть в исходники и подкрутить их на свой вкус?>имплаинг, что в этом треде кто-то может прочитать и подправить исходники компилятора
>>1019226>в исходники компилятора студии залезть?Ну а почему бы нет?Я думаю, каждый программист должен обладать навыками реверс-инжниринга.
>>1019226Дружок, исходники компилятора не этого я сам смотрел и разбирался в них. Если ты даже на такое не способен, то может тебе лучше заняться чем то другим?
>>1019263Я крестами уже 5 лет деньги зарабатываю, а ты мне чем-то другим заняться предлагаешь? How about no?
>>1019212Шланг завезли в студию. Сам не пробовал.>>1019216Qt Creator потихоньку избавляется от багов.>>1019263Скинь сурсы от MSVC в личку, я покопаюсь.
Плюсаны, я нюфаг в C++, есть один проект: https://github.com/coolwanglu/pdf2htmlEXКак сделать его компиляться в vs под виндовс?
>>1019363>Qt Creator потихоньку избавляется от багов.Да, только он требует тот же самый msvc или mingw
>>1019385Cmake
>>1019212Нахуя компилятору своя иде, поехавший?>>1019220Исходники чего? Закрытой студии?>>1019385В вс затрахаешься с разными версиями компилятора и кривыми xml-проектами. Лучше наверни на систему mingw со стандартными тузами вроде make и баша и cmake . && make>>1019241Что за поехавшие в треде? Уебок стих не дал написать и перекотил — набежали шизофреники, это кара божья, не иначе.
>>1019424>Нахуя компилятору своя иде, поехавший?Я имел в виду поддержку компилятора.Тот же gcc поддерживает много ide, а по факту все они - говно, кроме clion
>>1019424>Что за поехавшие в треде? Уебок стих не дал написать и перекотил — набежали шизофреники, это кара божья, не иначе.Как ты будешь восстанавливать исходники, если их кто-то проебал, а бинарник проебать не смогли?Будешь с нуля писать?Тут-то и пригодятся навыки реверсинга, тупой овощ.
>>1019433Не, животное, когда ты занимаешься программированием, а не ежедневной деградацией в отладчике и дрочевом на свои кряки которые ты крякаешь и потолок твоего погромминга настрочить кейген на 2/3 состоящий из выдранного куска асма — есть плюс минус понимание как все работает и легче просто написать с нуля.>>1019431Сука ну ни траль так толста плез я щас вытику от тваиго жыра
>>1019391MinGW w64 - вполне норамальный порт ГЦЦ на винду, если он используется в коммерческом продукте и через него компилится куча софта, включая Сигвин. То, что Креатору не принципиален компилятор - это плюс, а не минус. В редистрибьютабле МНИГВ ГЦЦ есть, тебя это волнует?>>1019424>Нахуя компилятору своя иде, поехавшийДЛЯ СБОРКИ ПРОЕКТОР БЕЗ МЕЙКФАЙЛОВ, например.>>1019431Говно вообще или для тебя? Твои потребности меня не интересуют.
Есть ли пхпшнику профит от изучения C++?Я имею в виду, есть ли проекты, требующие навыков написания кода на обоих этих языках. И насколько это экзотика?
>>1019460>ДЛЯ СБОРКИ ПРОЕКТОР БЕЗ МЕЙКФАЙЛОВ, например.И много ты таких IDE знаешь, поехавший?>>1019485 Экзотика уровня фейсбука, не парься и пиши на пхп.
>>1019485нет. Учи лучше Go или Яву
>>1019459>>1019460Ну давайте, расскажите мне, какой хороший codeblocks или dev-c++. Можете еще сказать про CodeLite, там даже поддержка clang есть.
Сап, крестач. Что за хуйня - почему код в ассемблерной вставке работает, а в цикле while вываливается с исключением - нет прав на чтение (типа лох расчехляй VirtualAlloc).
>>1019566Ах да, inb4 используй (DWORD)GetModuleHandleA(NULL) - нет, мне нужно именно вручную находить image_base, не спрашивайте почему.
>>1019566Тащемта у меня почему то вываливается аналогично но даже с VirtualAlloc. Я не ебу хули оно хочетhttps://pastebin.com/A18M3LAy
>>1019566>deltaoffsetПацаны, у нас тут хакр!
>>1019576Блять, я наебал, VirtualProtect, не AllocВываливается, потому что ты даешь доступ не на все страницы памяти. Там просто пока до 0x5a4d дойдет дело, ты через кучу страниц пройдёшь. Но я не хочу в цикле постоянно VirtualProtect дважды вызывать для каждой итерации. Меня вот интересует, что за хуйня - на ассемблерных вставках работает, а на крестах - не
Как бесят ебаные гумусы, неспособные четко и последовательно излагать мысли, выделяя главное. Особенно когда гумус еще и хороший специалист и придумывает ебанутые решения, которые сам не может объяснить.
>>1019488>И много ты таких IDE знаешь, поехавший?Почти каждая из тех, которые я пробовал: у Креатора, у МСВС, у Коделите - у всех свои проекты, и мейкфайлов ты не касаешься. Иди на хуй.>>1019500Ты первый тут про Коделите пёрднул.
>>1019613>Почти каждая из тех, которые я пробовал: у Креатора, у МСВС, у Коделите - у всех свои проекты, и мейкфайлов ты не касаешься. Иди на хуй.Какой же ты тупорылый.При чём здесь компиляторы вообще? Иди таблеток выпей.
>>1019624>При чём здесь компиляторы вообще? Ты чо несешь, дебич?Он тебе про IDE говорит, а ты ему про компиляторы.
Связка QtCreator и Cmake работают на любой ОС и с любым компилятором, больше здесь нечего обсуждать.
>>1018980>А что плохого в MSVC?В 32-битном ABI при входе/выходе из функции постоянно требуется выполнять код, относящийся к поддержке исключений. Т.е. даже если исключений не бросалось, их поддержка вносит постоянный оверхед.В 64-битном ABI, похоже, они стали zero cost. (Или просто оптимизатор поработал)>>1019108>SJLJ-эксепшеныТам не SJLJ, но тоже не zero cost.>>1019179>Оптимизирует хуево2017-й уже не так хуёво. Но вообще да, у его оптимизатора есть некоторый потолок, связанный с тем, что компилятор ничего не знает о strict aliasing.>>1019179>не умеет в С++17Как я демонстрировал в прошлом треде, не умеет даже в C++98.>>1019216>IDE кроме студии нет вообщеФанатик незаметен.
>>1019679даже с mingw-w64?
>>1019691В Cmake можешь указать любую залупу, а если что не работает то найти в интернете модуль для этого.
>>1019691С mingw-w64 работает и сам креатор без всего (юзает мейкфайлы), и qbs, и cmake, и ещё что-то.
>>1019647Напоминаю сверхразумам>>1019212>Жаль, что у шланга и гцц нет ни нормальных ide, ни нормальных портов на винду.>>1019424>Нахуя компилятору своя иде, поехавший? с чего все началось:
>>1019729Напоминаю сверхразуму, что "Программы и операционные системы обсуждаются в /s/".
>>1019759>Связанные с софтом вопросы обсуждаются в /s/. Исключение - IDE и прочие инструменты программирования, которые можно обсудить в тредах соответствующих языков.А не петух ли ты часом?
>>1019729Все нормальные поняли, о чём идёт речь - о том, что в разы упрощает использование компилятора. Зачем нужны IDE - ты, видимо, знаешь. У тебя претензии к выражению "IDE у компилятора"? Не ебёт: учись понимать ошибки собеседника по контексту ( если это вообще ошибка).
>>1019789тащемто иде нинужно
>>1019806тащемто языки программирования кроме машинного нинужно
>>1019806поймали хеллоуворлдщика
>>1019811Вернее, кроме инструкций RISC ядра ничего не нужно.
собственно как заставить это конпелироваться??http://ideone.com/e.js/gx9C7k
>>1019850Никак, енум отдельно вынеси выше
анон, как узнать, выхожу я на уровень джуна или нет? ооп изи шарю, списки стеки могу написать без проблем, решил курсач по теории кодирования написав прогу на плюсах. Могу в qt, на нем написал плеер для вк(правда запросы в вк на питоне делал(в фоне скрипт отдельным процессом запускал)), правда сейчас уже прикрыли api, написал себе прогу-напоминалку т.к. провайдер в общаге не удосужился сделать оплату в долг, которая сидит в трее, и при чекает каждый час есть ли на счету деньги на следующие сутки(есть URL по которому можно посмотреть статус счета, ну потом распарсил html и т д), ну конечно текст инфо об аккаутне сделал чтобы на мейн форме можно было посмотреть. Сделал все с потоками, добавил возможность установки в автозагрузку, сделал анимации норм, стилизировал кнопки и т д. Решил поучить python, написал пару скриптов по работе с вк(просто интересовало), всякие махинации с коментами и т д. Раньше как-то читал говнотред на каком-то форуме про джуна с++ и там знатоки говорили что хоть пейнт напиши свой чтобы фигуры можно было чертить и прочее говно, ну это же совсем шляпа, кароч поясните за джуна пж, копать я дальше все равно буду, но стоит ли мне совсем пыхтеть?
>>1019864Всем похуй что ты писал. Самое важное - это КАК ты пройдешь собеседование. Собеседований обычно 2 типа, это либо ты решаешь всякие говнозадачки, как в Яндексе -> иди дрочи leetcode.com и читай Кормена про алгоритмыЛибо это просто тебя будут спрашивать всякие уебанские вопросы ЧЕМ СТРУКТУРА ОТЛИЧАЕТСЯ ОТ КЛАССА или там ЧЕМ РЕФЕРЕНС ОТЛИЧАЕТСЯ ОТ УКАЗАТЕЛЯ.Я собесил много джунов, обычно если ты прочитал хотя-бы майерса пару книжек - этого уже за глаза для найма.
>>1019864Самое время выучить CSS HTML JS, питон ты знаешь, поэтому вкатывайся в джангу.А глупые вопросы про с++ не задавай больше
>>1019861прям совсем? никакие форвард декларейшены не помогут?
>>1019875https://stackoverflow.com/questions/71416/forward-declaring-an-enum-in-cЗабавно, я не знал, что так можно.
>>1019880только проблема в том, что у меня тип то темплейтный и когда определяю контекст то у меня используется еще не определенный тип.
Что простого написать на С++?Прочитал про переменные, указатели, ссылки, векторы и строки.
>>1019887Напиши компилятор для своего языка.
>>1019874глупые вопросы потому что они про с++ или потому что я плохо сформулировал? по питону, не совсем уж хочется в веб, язык конечно замечательный, но душа лежит к байтоебству/формоебству(ну если надо я душу перепрошью) просто хотел узнать как обстоят дела в с++
>>1019872каково соотношение этих собеседований(легких и нормальных)?
>>1019887попробуй написать сортировочки постепенно усложняя код темплейтами итераторами, фичами 17го стандарта потом берись за веб-сервер
>>1019891>глупые вопросы потому что они про с++ или потому что я плохо сформулировал?Потому что спрашиваешь о вакансиях на с++>хотел узнать как обстоят дела в с++Плохо. Много легаси проектов с С++ 98, работы мало, в основном придется поддерживать древнее говно мамонта, которое сначала писали на чистом си, потом внезапно продолжили писать на си с классами, потом с шаблонами, исключениями, и.т.д
>>1019897Когда я собесился на джуна несколько раз - меня мучали именно вопросами по крестам. Когда я перестал быть джуном - меня мучали уже задачками. На прошлой неделе в яндекс на крестодебила собесился - дали задачку, в которой крестов вообще не было, на чистом си писал
>>1019898Про итераторы читал, про темплейты еще нет.Я толком ничего не знаю, даже до 200 страницы липпмана еще не дошел.
>>1019904изложить её можешь? буду благодарен
Кстати, что посоветуете прочитать по алгоритмам и структурам данных, а то я не знаю даже что такое связанный список и как реализовать сортировку пузырьком.
>>1019898веб-сервер? а это разве легко написать? или это тролинг?
>>1019913Кормена.
>>1019918Там математики много, я не могу в нее
>>1019901а если у меня есть интернатура luxoft в городе и я могу туда вполне податься, а там около embedded(разработка какого-то софта для автомобилей) стоит и на это положить? жаль конечно что много "говна мамонта" среди вакансий
>>1019925Ложить никогда не стоит, дума, в люксофт все стоит попытаться податься.
>>1019922Она там только в доказательствах всяких, это тебе все равно не надо.
>>1019915ну написать не большая проблема, только вот как и какого качестваМожно юзнуть какую-нибудь либу для работы с http и тогда задачей станет нажать на вики по либе или ручками работать с запросами(что я сам делал)ну а так если действительно хочется развить знание программирования в довольно большом объемее то это твой чойс(рекомендую std::regex и boost::asio там есть все что тебе понадобится для не самого сложного https сервера)
>>1019907тогда читай дальше, итераторы без темплейтов странно использовать, хотя действительный опыт работы с темплейтами даст только разработка иерархии типов для какой-нибудь игры или хеширование строк в компалтайме
>>1019931за одно прочитай beej guide network programming(или как-то так) пойми как писать все на си и посмотри на boost как сделано там
>>1019937>итераторы без темплейтов странно использоватьНу в векторах, строках и массивах они же используются, хотя в массивах это просто указатели.
>>1019942я конечно точно не скажу но вроде в gnu stl в array vector stack string итераторы и есть указатели
>>1019942я про то что магию типов c++ необходимо понять как можно раньше
>>1019945Я про обычные сишные массивы.
>>1019949итераторы были призваны обобщать алгоритмы и все stlевские алгоритмы темплейты
>>1019850Да никак. op::type - это поле инстанциированного тимплейта. От того, что он есть во всех инстансах и одинаковый, лучше не становится. Можно было бы написать специализацию, но её можно писать только после объявления основного тимплейта.>>1019922Как ты собрался изучать алгоритмы без математики? Пузырёк там псевдокодом, какая математика?>>1019925В интернатуре тебя шлюхой не сделают и паспорт не отберут. Попробуешь - расскажешь.>>1019942>векторах, строках и массивах Тимплейт, нетимплейт, тимплейт. Вопросы есть?>>1019949В сишных массивах нету итераторов, сишные массивы - это кусок памяти без методов.
>>1019975>он есть во всех инстансах и одинаковыйЯ, конечно, полагаю, что ты просто не совсем точно сказал то, что хотел, но всё-таки поправлю.enum, определённый в разных инстансах темплейта — это разные enum-ы. Даже если они определены полностью одинаково.
>>1019975меня сейчас не пускают(cv уже слал), сказали приходи на 4-ом курсе (сейчас 2-ой)
>>1019975>это кусок памяти без методовЭтож какие симантически отличные от указателя методы есть у итераторов?
>>1019912Она тебе не поможет, иди дрочи leetcode.com и будет все путем
>>1019978>Даже если они определены полностью одинаково.Вообще я странно написал,про разные enum-ы, определённые полностью одинаково.Раз они в разных инстансах — то они уже определены по-разному.
>>1019978О, кстати, новая идея: "статические" члены, которые можно юзать через идентификатор тимплейта без аргументов. %ололол%%>>1019997Семантически. Итератор - это итератор. Указатель - это указатель. Когда говорят "итератор", имеют ввиду не вообще любую вещь, которую пяткой через ухо можно использовать, как итератор. .end() у массива есть, кстати? И не надо мне говорить про array+sizeof(array)
>>1020005>array+sizeof(array)Точнее array+sizeof(array)/sizeof(ASTERISK array)
>>1020005Извини, но понятие итератора определили без тебя.$24.2.11. Iterators are a generalization of pointers that allow a C++ program to work with different data structures(containers) in a uniform manner.2.Since iterators are an abstraction of pointers, their semantics is a generalization of most of the semanticsof pointers in C++. This ensures that every function template that takes iterators works as well withregular pointers.
>>1020093Речь была даже не о том, что такое итераторы (нет, это не один лишь указатель), а о том, что в сишных массивах их нет. Указатель - не итератор. У тебя в процитированном написано:>in a uniform mannerА теперь взгляни на то, как ты получаешь .end() в сишном массиве:>array+sizeof(array)/sizeof(ASTERISK array)Итератор - это концепт, спорить не о чем. Учить меня тому, что я знаю много лет, не надо.
>>1020005>как итератор. .end() у массива есть, кстати? И не надо мне говорить про array+sizeof(array)std::begin() и std::end()
>>1020217Если не надо, то зачем ты смешиваешь в одну кучу массивы и указатели (до которых массивы деградируют)?>Указатель - не итераторУказатель, согласно стандарту, как раз таки итератор.>Iterators are a generalization of pointers that allow a C++ program to work with different data structures(containers) in a uniform manner.Кхм. На русский это переводится так: Итераторы это обобщение указателей, позволяющее программам на C++ работать с разными структурами данных ( контейнерами ) в обобщенной манере.
>>1020314>Указатель, согласно стандарту, как раз таки итератор.Такие утверждения требуют уточнений.>>1020314>Кхм. На русский это переводится так: Итераторы это обобщение указателей, позволяющее программам на C++ работать с разными структурами данных ( контейнерами ) в обобщенной манере.А, вот и уточнение.Написано "итераторы это обобщение указателей" и ты отсюда сделал вывод, что "указатели это [обобщение] итераторы[ов]"? Кхм. Мда.Можно сказать, например, что указатели это итераторы в том смысле, что для них задана частичная специализация std::iterator_traits. Тут никаких вопросов.Насчёт "симантической" разницы. Это всё зависит от того, насколько вольно трактовать "симантику". Всё-таки при применении оператора * к итератору (если он определён как класс, а не просто алиас типа указателя) вызывается метод, а при применении к функции — built-in оператор. "симантически" это разные вещи.
Какой профит от изучения С++ на сегодняшний день?
>>1020545Никакого.
>>1020546Тогда куда вкатиться?В джаву? В C#?
>>1020559Смотря чего тебе надо
Пролистал липпмана и решил открыть мейерса и нихуя не понял, о чем он пишет. Как понять его писанину? какието lvalue и rvalue ссылки, а вообще не ебу что это за залупа такая
>>1020568Системное программирование и веб.
>>1020585В системном никуда без С или ++
>>1020587Хорошо, тогда что можно написать на крестах, если я совсем ньюфаг?
>>1020593Рогалик
>>1020593Если совсем нюфаг иди литературу читай.
>>1020596>РогаликЧо это?
>>1020601Это типа кресты нахуй не нужны.
>>1020598Какую?
>>1020609Страуструпа
>>1020612Какую именно?
>>1020614Принципы и практика использования с++
>>1020609Рэй Лишнер. C++. Справочник.Она, правда, про 98/03-й стандарт, но для начала сойдёт.
>>1020617А липпман/прата?
>>1020469>Это всё зависит от того, насколько вольно трактовать "симантику"Я тебя понял. Бывает.
>>1020469>Такие утверждения требуют уточнений.А я сам уже глянул в стандарт. Указатель таки итератор.Ок, буду знать.Ясен пень, само по себе "итераторы - обощение указателей" не означает то, что указатель - итератор. Но раз написан список требований и указатель удовлтеворяет их - ок, ладно, таки итератор.
>>1016662 (OP)Собираюсь использовать Clion + mingw-w64 на винде, какие подводные?
>>1020758Clion крайне убог как IDE (сколько еще лет memory view будут прикручивать и по памяти переполняться на проекте на 1000 файлов?), порт gdb крайне убог сам по себе (нет нормально работающих view'ов, нормально не работает ретроспектива). Других подводных нет. Они все надводные.
>>1020787А какую IDE тогда использовать?Eclipse CDT? Qt Creator? Visual Studio с MSVC, который не полностью поддерживает даже C++98?
>>1020794Естественно студию.
>>1020795Ну а что делать с плохой поддержкой стандартов?Я еще на Си в основном пишу, мне С99 и С11 хотелось бы увидеть.
>>1020802Судя по тому, что ты вообще об этом спрашиваешь - ты сраный ученик подмастерья джуна на пол ставки за борщ. Исходя из этого - перестать забивать голову левой информацией. C99 поддерживается 15й студией, C11 нормально не поддерживается никем (если не считать еблю с флагами под gcc) кроме clang.
>>1020810C99 поддерживается студией на уровне совместимости с С++, не больше.>не считать еблю с флагами под gccНе понимаю, о какой ебле ты говоришь, но он в gcc нормально поддерживается.https://gcc.gnu.org/wiki/C11Status
>>1020794>Visual Studio с MSVC, который не полностью поддерживает даже C++98?Если тебе так важна корректная работа two phase lookup-а в шаблонах, то там, насколько я знаю, есть Clang with Microsoft CodeGen. Т.е. фронтенд от Clang, бекенд от CL.Сам никогда не пробовал.
>>1020823https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.htmlВыбирай любую комбинацию gnu11/stdc11 которую тебе cmake/configure высрет и ебись, чего как маленький то?Особенно доставляют вариации -fpermitted-flt-eval-methods, с багами вроде этого:https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69462илиhttps://stackoverflow.com/questions/28851350/same-flt-eval-method-different-results-in-gcc-clang
>>1020839>https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69462Макроопределение забыли, бывает.>https://stackoverflow.com/questions/28851350/same-flt-eval-method-different-results-in-gcc-clangПочему там вообще r1 может быть не равен 1? У 1.0 и 10.0 одинаковая мантисса, а по алгоритму IEEE там сначала получается мантисса=1, а потом уже режется точность из-за нормализации:http://www.rfwireless-world.com/Tutorials/floating-point-tutorial.html Это уж в кланге баг тогда.
>>1016662 (OP)Что нужно прочитать и выучить, чтобы стать С++ джуном?
>>1021180-> >>1019872
>>1016662 (OP)Из чтения стандарта не понял, как слово inline решает проблему многократного определения. Объясните, почему добавление inline устраняет такие ошибки.
>>1020545Посоны, а был ли когда-то вообще профит от изучения C++?
>>1020573L/R value - это, судя по всему, Левые/Правые значения, то есть те, что стоят слева или справа от знака присваивания, например.lvalue1 = rvalue1У них есть свои особенности, но я не шарю.
>>1021220Прозреваю, что будет объектный файл на хеадер. Стандарт не читал, заскринь выдержки.
>>1020802При чем здесь стандарты? Писать код удобно. Не нравится компилятор? Используй внешний, благо теперь можно делать проекты cmake Это конечно своя головная боль, но другого я не знаю
>>1020545Зарплата
>>1020545Геймдев, больше кресты ни для чего не нужны.
Есть структуркаstruct Rate{ int count; string str;};Если во время её инициализации присвоить в str какую-то строку, то выделится память и произойдет копирование?Если да, то как этого избежать? (если делаю str ссылкой, то ломается последующая сортиковка) если нет, то это ведь и будет предельно быстро?Изначально строки берутся из словаря, который гарантированно будет жив.Затем вектор из этих структур сортируется так:auto sortLambda = [](const Rate & a, const Rate & b) -> bool { if (a.count != b.count) return a.count > b.count; return a.str < b.str; }; for (auto it = rates.begin(); it != rates.end(); ++it) sorted.push_back(Rate{ it->second, it->first }); sort(sorted.begin(), sorted.end(), sortLambda);
>>1021320Отнюдь. На крестах дохуя всего пишется, геймдев это меньшая часть.Я пишу софт для сетевого оборудования охуительно быстрого. Ядро на С, обвязка на крестах
>>1021327Для всего остального достаточно обычного C, классы не нужны.
>>1021220Функция с модификатором inline может быть многократна объявлена. При компиляции будет взято первое попавшееся определение.
>>1021331Ты ебанешься писать огромный проект на чистом си, линуксопердолики не в счет, у них время бесплатное.
>>1016662 (OP)Сначала вкатиться в си, а потом в кресты, или наоборот?
>>1021341Катись нахуй.>>1021321Самый оптимальный способ для инициализации такой структуры - добавить конструктор видRate( int count_arg, const string& str_arg ) : count ( count_arg) , str ( str_arg ) {}В этом случае строка будет создана только один раз.
Объясните, почему decltype(&p) возвращает int ?
>>1021341Начни с си. Плюсы это си с классами
>>1021337>Функция с модификатором inline может быть многократна объявленаС чем это связано и как обосновано? Или это "а пусть будет так"?
>>1021360Потому что адрес переменной это DWORD или QWORD, то есть беззнаковое целое.мимо хакр
>>1021372>>1021360Нет ты и я обосрались.decltype(&p) возвращает int#### - две звездочки
>>1021331Что ты в ЦПП-треде забыл, болезный?>>1021360Зависит от того, какого типа p. Если оператор взятия адреса переопределён, то может возвращать хоть конскую залупу.>>1021372Если decltype от адреса возвращает int по той причине, которую ты назвал, то компилятор не может предупредить об использовании числа вместо адреса в компайл-тайме.
>>1021374Телепаты в отпуске, тип p назовёшь наконец?
>>1021376int
Так-с, вот наговнокодил я свой шаблонный ребус на вариадик темплейтах и рекурсии этих самых шаблонов, а как посмотреть во что это все говно развернётся кроме как дизасемблером?
>>1021377Звёздочки не просрались?
>>1021388Net.
Ребзя, кто нибудь пробовал оптимизировать проги на асемблере? Например я написал хеллоу врот и хочу чтобы он работл бырее и жрал меньшеговна памяти
>>1021391из 80х капчуешь?
Как называть переменную, в которой хранится число для сдвига?Т.е. uint32_t s = 24; a << s; — как бы вы s назвали?
>>1021391Они уже оптимизированы, т.к оптимизацию проводит компилятор за тебя.
>>1021394оставил бы константой, или назвал чем-то, что отображает от куда ты взял значение сдвига.
Лублу мтпргромировоне:https://pastebin.com/7fUgNzSd(сюда не влезло, а жаль, лол хотя судя поmain.cc:29:10: note: (skipping 1015 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)самое интересное не влезло, кек).>>1021396Дык у меня из-за этого-то и творческий кризис, ибо я хз чем назвать, я его не откуда и не беру — это просто изначальное значение, от которого отравляется по 8 и из 4/2 знаковой строки составляется её хекс код.
>>1021399>значение, от которого отравляется по 8 и из 4/2 знаковой строки составляется её хекс код.Блин, нихуя не понял.
>>1021391gcc -Os
>>1021370Бамп.
>>1021220>Из чтения стандарта не понял, как слово inline решает проблему многократного определения. Объясните, почему добавление inline устраняет такие ошибки.Потому что стандарт явно разрешил таким определениям нарушать one ODR rule.>>1021370>С чем это связано и как обосновано?А подумать?
>>1021234>L/R value - это, судя по всему, Левые/Правые значенияСамый прикол в том, что r/lvalue относится не к значениям, а к выражениям.
>>1021385есть средства для этого, в том числе и на шланге, само собойдругое дело что не оч популярны, видимо потому что ньюфаги и так в этом не шарят, а монстрам уже не надо, они и так понимаютта же история, что и с препроцессором в си - во всех компиляторах существует опция позволяющая посмотреть процессированный код (с развернутыми макросами), но люди даже с 10тью годами опыта этим не пользовались..
>>1021394shift_amount
>>1021477>А подумать?Потому что функция определяется встраиваемой и может подставляться целиком по месту вызова? Но ведь это только рекомендация компилятору.
>>1021394Тоже вкачусь с вопросом. Как назвать параметр типа шаблона, который может быть целым числом (для подсказки полюзывателям шаблона)?
>>1021492Если функция встраивается в место вызова, то от неё никаких самостоятельных определений не остаётся.Темплейты функций пишутся в хедерах и их инстанциирование потенциально приводит к определению функций во многих единицах трансляции. Чтобы не нарушать этим one ODR rule, инстанциированные функции неявно являются inline.То же распространяется на методы классов, определённые внутри определения класса. Они попадают во все единицы трансляции, подключающие хедер с их определением и поэтому неявно являются inline.
>>1021493intNumber
>>1021495>Если функция встраивается в место вызоваИли не встраивается.
>>1021497Или не функция.
>>1021499Так, падажжи, то есть, если у меня будут статичные мемберы заинлайнены, они будут в нескольких экземплярах?
>>1021447Связано с 50-летними технологиями компиляции и сборки программ. При компиляции кода с обычными функциями компилятору не нужен код самих функций - он просто проставляет ссылки и идет дальше. Тоесть при компиляции каждой отдельной единицы трансляции в ней может не содержаться кода некоторых функций - главное чтобы были их декларации (для статического контроля типов). Потом с заменой ссылок на реальные адреса функций (и поиском этих функций) ебется уже линкер. Но при компиляции кода с инлайн функциями компилятору нужен код этих функций потому что этот код напрямую вставляется вместо вызовов функций. Тоесть при компиляции каждой отдельной единицы трансляции нужен код всех инлайн функций которые используются в этой единице. В случае функций которые должны использоваться только в одной единице трансляции проблем нет - код функции помещается в .срр файл и все. Но если ты хочешь использовать инлайн функцию в нескольких единицах трансляции единственный нормальный способ - поместить эту функцию в хедер. Но тут получается проблема что компилятор создаст кучу одинаковых функций (для кадой единицы трансляции в которую включен хедер с инлайн функцией). В случае обычных функций это запрещено. Ну и какбы нет особого смысла код обычных функций помещать в хедер - множественная компиляций одной и тойже функции только замедлит процесс. А для инлайн функций - помещение в хедер это единственный нормальный вариант использовать одну и туже функцию в нескольких единицах трансляции, поэтому он и разрешен. Все возможные отхуяченые по шею ноги - на совести программиста.
>>1021480как rvalue может быть выражением?
>>1021602>как rvalue может быть выражением?А в чем проблема?
>>1021607А, я lvalue имел ввиду. Типа как вообще может выражение слева от присвоения быть (a+b=c)? разве что если там указатель вычисляется
>>1021610Если operator+ для a и b вернёт lvalue-ссылку, то a+b будет lvalue.
>>1021610>>1021611Хотя даже ссылка не обязательна. Главное, чтобы оператор= был определён.Для std::string a, b, с,a+b=c вполне скомпилируется.
>>1021610>>1021614Хотя не то. Мы же говорим про lvalue, а не просто возможность написать a+b=c.Тогда старый ответ: если a+b это lvalue-ссылка, то выражение будет lvalue.
>>1021610> я lvalue имел ввиду. Типа как вообще может выражение слева от присвоения бытьА, ты думаешь, rvalue или lvalue определяется тем, с какой стороны от = стоит выражение? Это не так.
>>1021610>(a+b=c)? разве что если там указатель вычисляетсяЕсли a это указатель, а b это целое число (или наоборот), то a+b=c ты написать не сможешь, разве что *(a+b)=c
Читал комменты сверху, скажу - сколько тут сверхразумов, готовых писать свои компиляторы, сравнивают Java с CPP, говорят что компилятор MSVS "говно", студия как IDE параша, QT сосёт в функционале, C++ вымирает... Твоюж мать, вы ебанутые. Яву и кресты сравнивать вообще нельзя. MSVS, если ты пишешь код как макака куча циклов в цикле ещё в цикле - быстрее, а также с ссылками/адресами быстрее рабит => каждому свое. Студия имеет более расширенный функционал перед другими IDE. Также отладчик супер, новая фича - профилирование, которое нигде не найдёшь. QT имеет ряд особенностей. Они кажутся многим настолько полезными, что и переходят на него. Те же слоты и сигналы чего стоят. И, конечно же, он бесплатный. C++ не вымирает, каждый язык имеет свое предназначение. Я до сих пор временами использую паскаль.
>>1021838Ты еще больше бреда от вкатывальщиков читай.
>>1021622Ну, отчасти это так, потому что именованный rvalue ведет себя как lvalue. Более правильно было бы сказать - rvalue это неименованная величина получаемая из результата выражения или статик каста.
>>1016662 (OP)Плюсоны, может напишем свою ось?
Если в push_back передавать объект с unique_ptr, поинтер нормально скопируется, или без std::move никак?
>>1021854unique лучше всегда передавать как rvalue
>>1021838Студия действительно говно, я там только цветовую тему спиздил.Qt как IDE шикрен, из библиотек там только интерфейс писать удобно. Ну и разный функционал там впечатляет, но как ядро тугой.К слову, зачем c++ и джава ребята используют отладчик? Гораздо проще использовать дебагстринги, логирование или те же месседжбоксы.Это ж ебанутся можно подрубать дебагер на мультипочное приложение с 20+ классами. Тем более 90% его функционала нет смысла использовать для дебага высокоуровневых приложений.
>>1021855Вопрос в том, можно ли это делать без этого, и без emplace_back. Нет, да?
>>1021864Ну, теоретически это возможно в vc если ты не используешь /Ze ( https://msdn.microsoft.com/en-us/library/0k0w269d.aspx ). Но не надо этого делать. Это нарушает концепцию unique_ptr.
Анон, сорри за такой вопрос, но у меня уже крыша едет. Вот есть std::tr1::regexhttps://msdn.microsoft.com/en-us/library/mt771538.aspxУ его функций есть по несколько версий. Например вот пара regex_search:bool regex_search(const Elem ptr, match_results<const Elem, Alloc>& match, const basic_regex<Elem, RXtraits, Alloc2>& re, match_flag_type flags = match_default);bool regex_search(const Elem* ptr, const basic_regex<Elem, RXtraits, Alloc2>& re, match_flag_type flags = match_default);В норме, версия функции выбирается в зависимости от используемых параметров и без танцев, что и показано в MSDN примерах там же, напримерstd::cout << "search(f, l, \"abc\") == " << std::boolalpha << regex_search(first, last, mr, rx) << std::endl; std::cout << "search(\"a\", \"abc\") == " << std::boolalpha << regex_search("a", rx) << std::endl; Тогда почему же у меня, в VS 2017 работает только версия с двумя параметрами, пикрилейтед? Как запустить и другие версии? Я хочу вернуть совпадение. std::tr1::regex_match(strStd, pattern, res); - не работаетstd::tr1::regex_match(strStd, pattern); - работает
>>1021891Всё, сорри, проебался в глаза.
>>1021891Не по теме проблемы: не используй tr1, 2007 не вернешь. Используй просто std::regex_match.
>>1021895Так сейчас и сделаю.
Переходите на го, пацаны, хватить сидеть на древних технологиях
>>1021924Нахуйидь, а?
>>1021925А может все-таки ты?
>>1021926>go>может все-таки тыОтважен, щегол!
>>1021924Зачем нам говно есть?Иди своих хипстеров в раст м жс тредах вербуй.
>>1021930Почему он говно?
>>1021932Потому что это си с жирным рантаймом. В 2017.
>>1021935В си хотя бы макросы есть и куча либ для всего.
>>1021862>К слову, зачем c++ и джава ребята используют отладчик? Чтобы смотреть память, когда прога упала.
Аноны, я так понимаю, что эпохе десктоп-приложений пришел конец?Или еще есть шанс вкатиться в десктоп разработку?
>>1022000данет
>>1022021Очень печально, а что же стало с десктопом?
>>1021891нахуй вы регулярки на крестах пользуйте?зачастую можно sprintf обойтись или его аналогамину или пишется state machine, способов как ее делать штук пять можно набратьпросто учитесь их писать и все
>>1022025>sprintf>C++Прости, я не хочу жрать говно из мира чистого Си
>>1021941В си кроме кодогенерации без стороннего говна (кек) за спартанство платят перформансом и низким потреблением памяти, в говне тебе не платят ничем, кроме того что этому говну даже человека с синдромом обучить можно.
>>1022022Он стал тырпрайзным. Ну, еще игры остались и всякие мессенджеры + тулы. Но в % тулами пользуется малое число юзеров. Хотя на икру с ферарями хватает.
>>1022022Да всё в веб-технологии перекатывается, даже ебаные десктопные приложения. Тот же православный, казалось бы, Qt — и тот активно развивает свой QML ака недоумию-жс-для-разметки-и-просто-жс-для-логики.
>>1022028>хочешь сделать хуяк-хуяк>предлагают привязывать ногу к стулу sprintf — чтобы отстреливать удобнее было>потом говорят писать стейк-машины на каждый хуяк-хуяк который делаешь просто потому что автобус из буханки/0
>>1022025Ну вот тебе эрэфсишная регулярка для почтовых адресов. http://www.ex-parrot.com/pdw/Mail-RFC822-Address.htmlМожешь примерно так на глаз конечный автомат накидать?
>>1022043Вот поэтому перл и сдох, лол. Для почтовых адресов фсм вышла бы куда короче — что ещё может быть нужно, кроме как разделить адрес на до и после @ и попутно проверить все ли там аски символы?если чо другой анон
>>1022045Вообще имплементации RFC822/RFC5322/5321 проприоритарные как правило и для иллюстрации я их притащить не мог, ту что притащил - на порядок короче виденного на практике. >Для почтовых адресов фсм вышла бы куда корочеНу давай начнем с name@"supercorp@fuckers".com
>>1022025>нахуй вы регулярки на крестах пользуйте?Ну а как еще мне просто достать из строки подстроку соответствующую шаблону?Если есть решени проще чем std::string inputStr;std::match_results<std::string::const_iterator> result;std::regex regexp("([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,4})");std::regex_search(inputStr, result, regexp);То я буду рад его увидеть.
>>1022056алгоритмы на строках учиучись делать машины состоянийя же написал
>>1022042>>1022043блядь, идите нахуй дебилыкочешь юзать регулярки - юзайи иди нахуй
>>1022100Они будут более наглядны и лаконичны для решения задачи поиска даты в строке? Покажи пример, пожалуйста.
>>1022104Сам факт того, что ты сделал регулярку, подразумевает бессмысленность построения тут конечного автомата.Может тот анон просто сказал тебе что-то вроде "git gud" или просто выебнулся, но по строкам там точно меньше не выйдет.
>>1022137Тот анон - ебанувшийся байтоеб периодически посещающий этот тред. Не обращай внимания.
>>1021838Слишком толсто.
>>1021850>Ну, отчасти это так, потому что именованный rvalue ведет себя как lvalue.Про что несёт? rvalue или lvalue это свойство [под]выражения, что такое "именованный rvalue"?> Более правильно было бы сказать - rvalue это неименованная величина получаемая из результата выражения или статик каста.Более правильно было бы привести ссылку и/или цитату на стандарт или cppreference.
>>1021854>Если в push_back передавать объект с unique_ptr, поинтер нормально скопируется, или без std::move никак?А самому проверить?
>>1021862>К слову, зачем c++ и джава ребята используют отладчик?Разбирать, как сторонний код работает.А ловить утечки или там data race в дебаггере и правда ненужно.
>>1022149>Про что несет?>rvalue это свойствоКак-то даже грустно стало. А ведь когда 11 стандарт вводили об этом знал каждый. Похоже я слишком старый, скоро будут уже 2000++ года рождения закатываться. Стандарт, раздел 5, Expressions: [ Note: An expression is an xvalue if it is:(7.1) — the result of calling a function, whether implicitly or explicitly, whose return type is an rvalue referenceto object type,(7.2) — a cast to an rvalue reference to object type,(7.3) — a class member access expression designating a non-static data member of non-reference type in whichthe object expression is an xvalue, or(7.4) — a .* pointer-to-member expression in which the first operand is an xvalue and the second operand isa pointer to data member.In general, the effect of this rule is that named rvalue references are treated as lvalues and unnamed rvaluereferences to objects are treated as xvalues; rvalue references to functions are treated as lvalues whethernamed or not. — end note ]struct A {int m;};A&& operator+(A, A);A&& f();A a;A&& ar = static_cast<A&&>(a);The expressions f(), f().m, static_cast<A&&>(a), and a + a are xvalues. The expression ar is an lvalue.— end example ]
>>1022193>Как-то даже грустно стало.Ну это оттого, что ты нифига не знаешь.> А ведь когда 11 стандарт вводили об этом знал каждый.А я до сих пор знаю, в отличие от тебя.> Стандарт, раздел 5, Expressions:Стандарт, раздел 6.10 [basic.lval] http://eel.is/c++draft/basic.lval#1.note-1[ Note: Historically, lvalues and rvalues were so-called because they could appear on the left- and right-hand side of an assignment (although this is no longer generally true); glvalues are “generalized” lvalues, prvalues are “pure” rvalues, and xvalues are “eXpiring” lvalues. Despite their names, these terms classify expressions, not values. — end note ]
>>1022196> я до сих пор знаю> что такое "именованный rvalue"Ловкая попытка съехать, но нет.>Самый прикол в том, что r/lvalue относится не к значениям, а к выражениям.>Despite their names, these terms classify expressions, not values>6. Statements>5. ExpressionsТак вроде ты и просил объяснить тебе про выражения. Не очень понимаю твои претензии.
>>1022199Куда съехать? Зачем ты рандомно цитируешь названия разделов стандарта? Ты можешь ясно выражаться?Я намекал, что "именованный rvalue" — это бессмысленное словоупотребление.
>>1022201>>Куда съехатьХто здесь?>> "именованный rvalue" — это бессмысленное словоупотреблениеДа нет, это именно что rvalue который трактуется как lvalue. Вполне себе жизненное особенно в шаблонах.
>>1022203Покажи, что ты понимаешь под "именованный rvalue"
>>1022204>>1022193Прочитай еще раз вот эту цитату из стандарта внимательно.
>>1022206> [ Note: An expression is an xvalue if...Т.е., как я и говорил, lvalue/prvalue/xvalue (и их надклассы типа glvalue и rvalue) — это категория выражения.Именованными бывают переменные, функции и т.д.Ты предъявишь то, что ты называешь "именованный rvalue" или можно считать, что ты слился?
>>1022208>что ты называешь "именованный rvalue">In general, the effect of this rule is that named rvalue references are treated as lvalues and unnamed rvaluereferences to objects are treated as xvalues; rvalue references to functions are treated as lvalues whethernamed or notМожет перевод слова "named" тебе не понятен?>Именованными бывают переменные, функции и т.д.Или все же понятен? Как ты кстати назовешь:int&& a ; ? >что ты слился?Понимаю что школотронство рвется наружу, но ты выбрал не тот тред чтобы его выпускать, его читают: ты, я, два с половиной залетных которые меняются каждый день.
>>1022215Так и думал, что ты один из тех даунов, которые не отличают "rvalue" от "rvalue reference".Или, более общó, value category от типа.http://en.cppreference.com/w/cpp/language/value_categoryEach C++ expression (an operator with its operands, a literal, a variable name, etc.) is characterized by two independent properties: a type and a value category. (курсив не мой)
>>1022218>>1021850Вот то что я пытался донести в оригинале, согласно твоей собственной ссылке:Even if the variable's type is rvalue reference, the expression consisting of its name is an lvalue expression;Ну, а понятие "named rvalue" ты можешь в стандарте почерпнуть оно много где используется.>которые не отличают "rvalue" от "rvalue referenceКак ты кстати сделаешь именованный prvalue?
>>1022227Ты, главное, не расстраивайся. Многие ньюфаги не отличают rvalue от rvalue reference. И задаются вопросами типа "я передал аргумент в функцию по rvalue-ссылке. Почему он не перемещается? Ведь для rvalue должен вызываться конструктор перемещения". Потом многие понимаю, почему, когда начинают отличать типы от категорий значений (type и value category).Только ты вот этого не осознал до сих пор. У тебя на этот счёт какие-то неоформленные, туманные представления "ну эта, как его, именованный rvalue может вести себя как lvalue.... в шаблонах вот полезно... да..."> Вот то что я пытался донести в оригиналеА я пытался донести, что словосочетание "именованный rvalue" лишено смысла.> Как ты кстати сделаешь именованный prvalue?Так же, как rvalue: никак.
>>1022235>ньюфагиТебе все еще бомбит с моей толстоты? >>1022193Ну извини :^)Да, я хотел шлепнуть в продолжении шлангом по лбу с вопросом, а сюда что вставишь forward или move? Но я смотрю это уже сделал кто-то до меня.>Так же, как rvalue: никак.Двоечка молодой человек, идем и читаем собственную ссылку, там все есть http://en.cppreference.com/w/cpp/language/value_category
>>1022242>Тебе все еще бомбит с моей толстоты?Да, известный трюк. Облажался — объяви, что это ты просто толстил.В общем, слив засчитан.
>>1022245>известный трюкСказал человек, отвечающий на треть поста :^)
Вот поэтому я в русскоязычном интернете почти и не сижу. Очень токсичная атмосфера. Встретятся два дебила, и пытаются поднять свою самооценку за счет оппонента. Потом подключается остальная группа и начинается срач.
>>1022246Да, для упрощения понимания небольшой postreference:>Как-то даже грустно стало. А ведь когда 11 ?>стандарт вводили об этом знал каждый. >Похоже я слишком старый, скоро будут уже >2000++ года рождения закатываться.Толстота это вот это /\ /\ /\ /\>>1022251Да ладно тебе, обычно таких буйных не попадается.
>>1022251И правда, лучше б поделились толковым текстом для ньюфагов про все эти lvalue, rvalue и прочеемимовечныйньюфаг
>>1022257сено - lvalue, солома - rvalue
>>1022257Так вы задавайте вопросы, у меня этот тред весит прикрепленным, могу отвечать иногда :^)Вообще у яндекса были раньше неплохие видео:https://www.youtube.com/watch?v=oQDOqB1asNw
>>1022242>>ньюфаги>Тебе все еще бомбит с моей толстоты?С чего ты взял, что употребление слова "ньюфаги" означает, что мне "бомбит"? Я констатировал факт, что ньюфаги часто задают такие вопросы. Потому что правда задают.Или тебе показалось, что я тебя обзываю ньюфагом?>>1022242>Двоечка молодой человекА на каких IT-ресурсах ты ещё сидишь?
>>1022268А вот и первый пост 0й ценности. Как и ожидалось после указания на очевидные ошибки.
>>1022269Ой-вей. Ты-таки решил идти до конца и перебрать все модели поведения лузера.Ну да, есть у тебя в голове каша из понятий со сходными названиями, и тебе на это указали. Это настолько уязвило твоё самолюбие?
>>1022251>>1022253Семён незаметен.
Итак.Почему int a, a не int a? У переменной тип - указатель на интыжер, так какого хрена все пишут звёздочку около самого имени? Или ещё лучше, int a. Это вообще откуда пошло?const int const a; лол
>>1022300Ну всё, мама меня не научила звёздочки вставлять.КРЧ, проблема с расположением звёздочки, вот.
Подходит парень: - Успокойтесь, у вас обычный гемоppой
Инженер не говоря ни слова лезет в карман, бумажку достает и говорит: - Все, Изя
>>1022235Можно пример ситуации из первого абзаца?
>>1023874http://ideone.com/u9MpOA
>>1023877Можно подробнее о том, как это работает? С конструктором вместо функции сработало бы?
>>1023907>Можно подробнее о том, как это работает?Нельзя, потому что это не работает.> С конструктором вместо функции сработало бы?Что именно?
>>1023932Вместо make_unique поставить unique_ptr.
>>1023933Это неважно.
>>1023935Так почему этот код не работает?
>>1023944Потому что в инициализаторе мембера ptr находится lvalue и компилятор пытается вызвать конструктор копий, который у unique_ptr удалён.
Если в требованиях указано "Хорошая алгоритмическая база", что мне следует вспомнить перед собеседованием, чтобы не обосраться?
>>1023961Если бы всё так просто было.
>>1023961Это значит, что ты будешь ковырять всю ту же легаси-хуйню, что и все, просто на собеседовании хуесосы будут изображать из себя ГУГЕЛЬ и просить на доске перевернуть бинарное дерево
Безопасно ли так работать со списком? Обе функции вызываются несколькими тредами. Всмысле не наебнется ли list во время foreach если ремувнуть элемент по итераторуclass SomeClass { boost::mutex m_mtx; std::list<Elem> m_list; ...}void SomeClass::removeF( std::list<Elem>::iterator _elem_it ) { m_mtx.lock(); m_list.erase( _elem_it ); m_mtx.unlock();}void SomeClass::Scan() { for ( const auto & it : m_list ) { m_mtx.lock(); DoSomeConstShit( it ); m_mtx.unlock(); }}
>>1021853Если я буду писать свою ось, то только доказательным методом. Сделать это на плюсах без серьёзной потери производительности невозможно.
>>1024027Кажись тебе надо переписать цикл. Потому что ты можешь удалить элемент после взятие ссылки и до захвата мютекса.
Помогите настроить code::block для linux.
>>1024199Помог.
>>1024027Неа, удаление элемента из списка не атомарная операция. Перед проход по списку в цикле захватывай мьютекс.И еще:1. Для захвата мьютекса используй lock_guard (RAII, же).2. В C++11 мьютексы есть в STL.3. Изменение разделяемой структуры из нескольких ниток кривой дизайн. В дальнейшем много проблем можно огребсти. Всю многопоточность стоит сводить к схема поставщик\получатель (через thread-safe очереди).
>>1024203Спасибо. А как добавить/убрать компилятор?
Анонч, тут ерунда какая то. MVS MFCВот есть код, призванный передать мне результат выполнения комманды из консоли и он отлично работает. char buffer[128];std::string result = "";FILE* pipe = _popen("ping 8.8.8.8", "r");if (!pipe) throw std::runtime_error("popen() failed!"); while (!feof(pipe)) { if (fgets(buffer, 128, pipe) != NULL) { result += buffer; } }_pclose(pipe);Но стоит заменить мне тренировочную "ping 8.8.8.8" на реальную "ffprobe.exe 1.webm", то всё. Вывода нет, реакции нет. При этом, в тестовом консольном проекте "ffprobe.exe 1.webm" даёт адекватный вывод. ЧЯДНТ? inb4: Использую MFC
>>1024301С разметкой продолбался, но суть понятна.
>>1024301При этом, с исполнением команды всё явно ок, т.е FILE* pipe = _popen("ffplay.exe 1.webm", "r"); запускает 1.webm в любом случае.
>>1024301http://forums.codeguru.com/showthread.php?246447-_popen()-in-MFCТут пишут, что всё MFC виноват, слишком слоупочный.Попробуй как-то так не бейте - лучше обоссыте:#include <future>...void something();...auto handle = std::async(something);handle.get();
>>1024465Спасибо!
Пишу сюда ибо тут должна быть более знающая аудитория.Решил вкатиться в программирование ради интереса. После изучения большей части синтаксиса чистого Си навалила скука. И тут я открыл для себя OpenGL. Все бы шло замечательно, но в учебнике где используется чистый Си, уже сразу с основ идут нерабочие примеры и не только у меня эта проблема. Глянув новые книги и видеокурсы, стало ясно что везде используются плюсы. Вдобавок, как я понял, гуи пишутся с использованием qt, а там опять плюсы. Короче, для написания приложений с гуи и трехмерной графикой годятся только плюсы? Или есть альтернативы для чистого Си? (ну если не считать gtk+ для гуев и старой книги по OpenGL. Просто страшно начинать изучать плюсы после беглого просмотра тредов.
>>1022215>именованный rvalue>named rvalue references Ёбу дал?
>>1024598О чем вообще это было?
>>1016662 (OP)Как вывести std::basic_string<TCHAR> на консоль?
>>1024602std::wcout << string;
>>1023961Кормена.>>1024600О том, что один пытается утереть другого, но сам не читает то, что вставляет.>>1024604TCHAR - это либо WCHAR, либо CHAR в зависимости от макроопределения UNICODE (или как там).>>1024602Твои варианты:WriteConsole(string.c_str())std::cout<<string //если без юникодаstd::wcout<<string //а вот здесь ты жестоко наебёшься, в винде это не работает от сллова "никак"
>>1024605Я про то, о чем спор вообще был? Я так и не смог понять. Так там два дебила говорили об одном, один просто с сайта саттера линки таскал, второй из доки страуса, лол. При этом один поехавший дед, второй селюк не знающий английский. Крестовое комьюнити короч.>TCHAR - это либо WCHAR, либо CHARТак вроде wcout перегружен для обоих.http://cpp.sh/37q2h
>>1024608А да, для строки надо в таком случае обязательно c_str получается еще въебать
>>1024609Оттакотhttp://cpp.sh/575v
>>1024604>>1024605>>1024605Мне нужно, чтобы моя программа в зависимости от настроек могла хранить в одном и том же std::map или ANSI-строки или UNICODE-строки, а потом выводить этот map в консоль. Как это реализовать без быдлокода?
>>1024602>TCHARНенужно.>>1024605>TCHAR - это либо WCHAR, либо CHAR в зависимости от макроопределения UNICODE (или как там).Самое идиотское, что могла придумать Microsoft — что приложения можно будет собирать для разных версий Windows (NT и не-NT) просто определением или не определением одного макроса.Если тебе так нравится кодить под WinAPI, то лучше просто забудь про то, что UNICODE может быть НЕ определён. Считай, что он всегда определён и TCHAR=WCHAR.Если ты, конечно, не собираешься компилять под Windows 95.
>>1024616Храни все в UNICODE, если тебе важно именно содержимое строк. Если тебе необходимо иметь и то и то в одном массиве одновременно - погугли type erasure container.
>>1024588Лучше доучи, базовое с++ ооп за один день берётся, а std'шный мусор OpenGL/qt не юзают, т.к. имеют уже свои более удобные аналоги.>>1024617На все winaip функции есть варианты w/t/c. Всего-то надо один раз загуглить их. Однобайтовое говно всегда может понадобится, не все сторонние либы хотят юзать юникод.
>>1024713>Однобайтовое говно всегда может понадобится, не все сторонние либы хотят юзать юникод.Т.е. ты вместо обёрток над вызовами либ предлагаешь дизайнить всю аппликуху вокруг либы?
>>1024716Это же от конкретной либы зависит, как там будет удобней. Если там есть внутренние калбаки, или может она вообще на кодировке utf8 работает. Некоторые вещи бывает проще делать модульно, чем на всё свои обёртки пилить.
>>1024719> или может она вообще на кодировке utf8 работаетО, это правильная либа.
>>1024713> а std'шный мусорВ чем мусорность std?
>>1024737Не обращай внимания, тут это часто вбрасывают.
>>1024737Для меня это - Нечитабельный, неюзабильный, сферический в вакууме.Оригинальная идея была хорошая, людям предлагалось не изобретать велосипеды, плюс помогает делать код более кроссплатформенным.Но всё это разбилось об реальность ооп в с++, где для эффективного использования std приходилось значительно повышать свой уровень знания языка, типа следить за лишними копированиями, продлевать время жизни объектов и.т.д. Т.е. либа которая должна была упростить жизнь, её начала усложнять. Основные разработчики сторонних либ и фреймворков решили отказаться от использования унифицированного std в пользу оптимизации своих решений. Т.к. основная масса разработчиков всё же не пишут сферические хелловорлды, то брать за основу именно std им нет смысла.Сейчас новые стандарты c++ направленны на изменение языка именно в сторону упрощения использования std, но люди ленивые, и стек технологий тоже не спешит перестраиваться под это. Потому это остаётся не нужным, хотя гики всегда есть. Можешь и ты таким стать, а люди которые будут потом сопровождать твои проекты будут тебе очень "благодарны".
>>1024797Ну хуй знает чувак, какой язык - такая и стандартная библиотека. Сам stl не пользую, пользую разные .h-only либы для контейнеров и алгоритмов, а в основном рабочем проекте свой фреймворк. Но есть все-таки области применения, во первых - на stl просто учиться, понимать концепции. Во вторых - мелкие проекты до 250 000 строк включительно вполне себе неплохо ложаться на stl, ввиду явной простоты логики и возможных зависимостей. Бывают конечно адский сложные маленькие проекты, но ты меня понял.
>>1024608>Так вроде wcout перегружен для обоих.Будет сложно запомнить то, что в wcout нельзя выводить вчары. Лучше вообще не использовать его.>>1024616std:variant или своя структурка с мемберами string и wstring. Если один пустой, то данные в другом. Очень странное задание.>>1024713>а std'шный мусор OpenGL/qt не юзают,У кучи Кутэшных контейнеров есть совместимость или метод преобразования с/между std-контейнерами. Ты можешь писать на Кутэ без std, но ты почти всегда сможешь заюзать std из Qt.>>1024713>На все winaip функции есть варианты w/t/c.Все современные используют wchar.>>1024797>типа следить за лишними копированиямиУ тебя ничего не взорвётся от лишних копирований, и есть множество оптимизаций, включая тот же (N)RVO, а методы контейнеров инлайнятся.>Основные разработчики сторонних либ и фреймворков решили отказаться от использования унифицированного std в пользу оптимизации своих решений. Лолшто.>Потому это остаётся не нужным,Кому?
>>1024802Я не он но,>Лолшто.Это так, чем дальше в лес, тем меньше крупных проектов на stl. Посмотри гугловый софт, фейсбучную опенсорсную часть, топовые гитхабовские проекты. В проприоритарных проектах я его лично вижу все реже. Единственный кто его еще активно продвигает в коде - это Microsoft (который его через хуй поддерживает, лол).>У тебя ничего не взорвётся от лишних копированийТак эт, если нет zero-cost-abstractions то кресты это хуита полнейшая без задач.
>>1024616Родной, ASCII - подмножество UTF-8.На пальцах. Unicode это не кодировка, это метод. Кодировки это UTF-8/16/32. UTF-8 отличается тем, что в зависимости от кодируемого диапазона меняется кол-во байт представления символа. И внезапно символы 0-127 кодируются одним байтом.
>>1024801Мейби, каждому своё, но лично мне было бы лень учить то, что с высокой степенью не понадобится.>>1024802> почти всегда сможешь заюзать std из QtЭто напоминает "Как сделать троллейбус из буханки хлеба". Читай контекст вопроса: человек спрашивал как ему проще всего перейти, а не как ему заморочиться.> У тебя ничего не взорвётся от лишних копированийЯ говорил "эффективного использования", а побыдлокодить можно на чём угодно.
>>1024804>Так эт, если нет zero-cost-abstractions то кресты это хуита полнейшая без задач.Так в том и прелесть, что в нагруженном коде ты можешь обойтись без лишних аллокаций, а в гуйне, например, хуярить как проще, лишь бы работало. В Qt, например, сплошной пимпл, аллокация на аллокации, но работает все равно быстрее жабы или браузерной параши.
>>1024825>В Qt, например, сплошной пимпл, аллокация на аллокации, но работает все равно быстрее жабы или браузерной параши.И вот после этой хуйни подавай им нормально работающий KDE без лагов.Вообще, анон прав - STL-контейнеры редкостная залупа для хуяк-хуячанья, причём на редкость неудобная, в которую полтора десятка лет тащили невладеющие строки. Еще через десяток лет, когда потребности опять поменяются, они туда протащат наконец таки ренджи, спаны, интрузивные контейнеры, оптимизацию для мелких векторов и строк, контейнеры которые можно будет юзать с униками без их собственных рефкаунтеров, еще через 2 десятилетия мб локфри контейнеры и конкурентные очереди с блекджеком притащат - и это все опять окажется никому нахуй не нужно как string_view, который у каждого проекта уже свой, либо как футуры с асинками, которые просто тупо уебские настолько, что их все сами под свои нужды реимплементируют.
>>1024802>в wcout нельзя выводить вчарыПочему?
>>1024865где и кем работаешь? Хоть примерно.
>>1024892По утрам - кассиром в макдаке, по вечерам грузчиком.
>>1024899По ночам - макдаком в кассире.
>>1024900Это заработок методом рекурсивного спуска макдака в кассира.
>>1024865не верьте этому пиздюченку, он не щарит на самом деле
>>1024804>Это так, чем дальше в лес, тем меньше крупных проектов на stl. Посмотри гугловый софт, фейсбучную опенсорсную часть, топовые гитхабовские проекты.Охуительные инсайдерские истории. Неполенился, залез на гитхаб, взял первые четыре игровых движка: cocos2d, godot, cryengine, sfttech. Во трех используются stl контейнеры. В godot, написали свою реализацию контейнеров, с интерфейсом аналогичным stl, ололо. >>1024865>И вот после этой хуйни подавай им нормально работающий KDE без лагов.Попробуй использовать нормальную ось вместо линуха.>ренджи, спаны, интрузивные контейнеры, оптимизацию для мелких векторов и строк, контейнеры которые можно будет юзать с униками без их собственных рефкаунтеров, еще через 2 десятилетия мб локфри контейнеры и конкурентные очереди с блекджекомПоловина из этого есть в бусте, вторую половину добавлять бессмысленно, поскольку покрывает какие-то весьма специфические случаи (как например локфри контейнеры). А ты ебанат, если этого не понимаешь
>>1024918>взял первые четыре игровых движка>гугловый софт, фейсбучную опенсорсную частьНе ну сравнил так сравнил ни прибавить не убавить.>весьма специфические случаи (как например локфри контейнеры)Хотя понятно, ты просто манька из /gd/ за еду.
>>1024865Оптимизации для мелких строк/контейнеров втащили кстати, но не по Александреску, а просто на стеке кусок хярят в теле класса.
>>1024918>Попробуй использовать нормальную ось вместо линуха.Дык, для станционного пека выбора и нет. На ноутах есть мак (который может зависнуть, но интерфейс у него никогда не лагает, даже при мертвой хватке ядра).>Половина из этого есть в бусте,В бусте только интрузив контейнеры из этого списка, остальное — тащи откуда хочешь, из кучи реализаций gsl-а, фейсбучной библиотеки, разных реализаций ренджей, из llvm если хочешь, с миру по нитке блять. В итоге вместо того чтобы просто сесть и писать — иди ищи и трахайся с деплоем тыщи сторонних библиотек, со своими зависимостями, странностями и просто кодстайлом.>какие-то весьма специфические случаи (как например локфри контейнеры)Так. 2017-й год. Уже даже бюджетные процессоры все поголовно 6-8 ядерные, даже в ебучий STL, который развивается со скоростью ребёнка с синдромом дауна, запилили паралельные алгоритмы, можель памяти, обертки над тредами и мутексами и все вот это.Что же говорит анон об этом? Нинужна! Ой, иди нахуй просто.>>1024939Щито? Я только недавно на последнем шланге гонял бенчмарки фоллиевского small_vector, который этим занимается, и было не похоже на это. Пруфца бы.
>>1024941> но интерфейс у него никогда не лагает, У меня лагал, когда хром отжирал всю память.
Как анон относится к Qt: годнота или говно?
>>1024941>Щито?Не, я тебе напиздел короч, они только опциональный COW в строки впилили, small_alloc остался на уровне пропозала. А я думал в 17 примут.>>1024948Вынужденная необходимость, когда есть дешевые крестомакаки и ты не можешь нанять шарпистов/джавистов.
>>1024947Ну хуй тебя знает. У меня CLion постоянно уходит в свопы почти при каждом ручном инклуде (автоматические из подсказок моментально подставляются, лол) или при попытках навигации по подключенным где-то в залупе объявлениям, виснет намертво на 10-20 секунд, но интерфейсу похуй - экраны листаютсятак же плавно, курсор вообще никогда не фризится.
>>1024951CLion это говно ебаное, какое еще поискать. Пользуй что угодно другое и будет ок. Я например когда приходится в линукса выйти пробздеться использую codelite.
>>1024948Вопрос уровня: как относится к гугловскому кодстайлу? Трупстрауса же пишет с 4 отступами, а эти пидоты с 2, так это выскочкино говно или гениальное гугловское изобретение?>>1024953Дык, на полноценной пеке с 32 гигами и линуксом он летает (зато курсор таки фризится), другое дело что на маке альтернатив нету вообще - икскод говнище которое умеет даже нормально автокомплитить плюсы и вечно в куче багов, кодлайт, кдевелоп и прочие выглядят на макоси как и все что пишется для линукса а-ля вырвиглаз, остается только культя и цлион. Культя в системное сглаживание не умеет и это тоже пиздец, вот так.
>>1024948>Как анон относится к Qtну вот я для себя сделал такой вывод: хочешь относительно без проблем устроится крестомакакой, то у тебя два пути- первый это игрострой, ну а в россии щас это мобилки, по сути - что там надо задрачивать, понятно- и остальные вакансии - это надо задрачивать qtк сожалениювот так все просто
>>1024954кстати, в этом то и преимущество табов - их отображение ты можешь настроить как 2 так и 4 пробельных местатаким образом, в коде табы, а у разных людей на проекте отображается, как им удобно
>>1024954зачем корежишь фамилии? представь, твою фамилию переиначат, будет же обидно, не так ли
>>1024974Не так.
>>1024971Пробелы выиграли войну, просто признай и сдайся.>>1024974Мне похуй будет.
>>1024815> в зависимости от кодируемого диапазона меняется кол-во байт представления символаЕМНИП, можно опкодом выбрать другую страницу и если символы неподалёку, т оможно по байту на символ для любого языка.>>1024804>Так эт, если нет zero-cost-abstractions то кресты это хуита полнейшая без задач.Если совсем грубо - то да, но тебе не нужны зиро-кост абстракшнз на всё вообще. Про контейнеры я уже сказал.>>1024821>Читай контекст вопроса: человек спрашивал как ему проще всего перейти, а не как ему заморочиться.Ты удивишься, но в самом Qt подводных камней порядочно, чего только COW стоит. Контейнеры из Кут очень похожи на контейнеры из stl. ОП вопроса страшился не эстээля, а количества премудростей в плюсах.>Я говорил "эффективного использования""эффективное" != "математически оптимальное">>1024884Потому что виндовая CRT (с помощью которой реализована STL) с багом, на который МСу насрать.
Где взять этот ваш великий и ужасный СТАНДАРТ?Как вообще его читать-понимать и нужно ли?
>>1024941>просто сесть и писатьСмешная шутка.>В бусте только интрузив контейнеры из этого спискаКак насчет boost::lockfree? Как я понимаю, тебя он не устраивает? Ну так пердолься с либами, раз не устраивает, это сугубо свои половые трудности. То что тебе нужно это еще не значит что оно должно быть в стандарте, понимаешь?>>1024933>Не ну сравнил так сравнил ни прибавить не убавить.Мои пруфы не пруфы? Понемаю, бывает.
>>1025116а) купитьб) украстьв) качнуть последний драфт, публично выложенный комиссией перед утверждением (бывают мелкие исправления перед утверждением)>Как вообще его читать-пониматьа) в глубину, ЕВПОЧЯ: не понимаешь термин - ищешь определениеб) с начала
>>1025116Предлагаю забить.
>>1025121> То что тебе нужно это еще не значит что оно должно быть в стандарте, понимаешь?Я щас кекнул: ну вот мне нахуй не нужна STL. По твоей логике её от туда можно просто выпилить и не тратить время - все сделают в бусте, а комитет пусть лучше прикладывает силы к языку.А вообще, ахуенные какие-то у тебя доводы. Долбоёбский лист из STL, который копирует каждый элемент, хранит овердохуя лишней инфы и просто на кой-то хуй рефкаунтит содержимое, из-за чего при малейших лагах придется либо писать в C-style либо тащить буст - нужен, как и вектор со строкой которые будут алоцировать хуй знает сколько памяти когда нужно десяток символов в него закинуть, что можно было бы сделать на стеке - тоже зачем-то нужен, а вот нормальный набор контейнеров под разные задачи, который есть в любом нормальном языке (я сейчас не про расты с говнами) - нахуй не упали. Ну и любитель же ты говна.
>>1025143>на кой-то хуй рефкаунтит содержимое, из-за чего при малейших лагах придется либо писать в C-style либо тащить буст - нуженГде карту получали туда и идите.
Посоны, поясните зачем нужны прекомпилированные заголовки?Я так понимаю: Из-за проблем с кросс-компиляцией и бинарной совместимостью, некоторые люди решили делать все в заголовках, чтобы принудительно компилировать нужно было всем, а не таскать вероятно не совместимые бинари. Далее, если h-only либ очень много и они большие (boost) компиляция проекта увеличивается в разы. Теперь мы заводим свой prcomp.c + precomp.h, которые служат только для того, чтобы получить объектный файл, который не нужно будет часто перекомпилировать, и который не нужно таскать по репозиториям.Как-то так?
>>1025143>> То что тебе нужно это еще не значит что оно должно быть в стандарте, понимаешь?>Я щас кекнул: ну вот мне нахуй не нужна STL. По твоей логике её от туда можно просто выпилить и не тратить времяЁю твою мать...
>>1025166Предкомпилированные заголовки (не)нужны потому, что один и тот же заголовок может быть включён в несколько исходников. Кэширование результата компиляции заголовочного файла (в который может быть включено всё, что используется во всей программе) сильно ускоряет компиляцию.
>>1018248Жаль что платный. На торрентах еще не выложили?
>>1024954>рупстрауса же пишет с 4 отступами, а эти пидоты с 2, так это выскочкино говно или гениальное гугловское изобретениеЭкономия места в кодбазе.
>>1025168>Кэширование результата компиляции заголовочного файла (в который может быть включено всё, что используется во всей программе) сильно ускоряет компиляцию.gcc и msvc умеют держать это на диске, или на каждый сеанс компиляции новый кэш делается?
>>1025167Я просто инвертировал твое утверждение, бывшее отрицательным по отношению ко мне — с точки зрения дискретной математики все ок, надуй иди.>>1025173Да нет, я вот недавно попробовал сам — и подсел. Ахуенно.
Чому?
>>1025180Переустанови Windows
>>1025180очевидно не совпадают кодировки.
>>1025194Ну окей, делать-то что.Может есть бустовая альтернатива этому говну?
>>1025199Тебе нужно японский текст из utf-8 в кодировку для названий виндовых файлов сделать? Гугли как это делается на чем тебе нужно.И проверь еще в какой кодировке твои исходники.
>>1025200https://msdn.microsoft.com/ru-ru/library/windows/desktop/dd317748(v=vs.85).aspxМайки тут божатся, что для ntfs используют unicode. Попробуй в каком-нибудь Notepad++ пересохранить исходник в utf-8.Может еще как-то студию можно допердолить.
>>1025174Гугли сам. Если я правильно понял - без предкомпилированного заголовка им придётся компилировать его в каждой единице трансляции.>>1025177>Я просто инвертировал твое утверждение1) Не моё.2) "Инвертируя" (лолкак) утверждение, ты не оспариваешь его.>>1025180>CreateDirectoryA>L"хуй"Твоя стопа умерла в зародыше.
>>1025200Не совсем, в принципе, я до конца не понимаю что нужно делать.Идея в том, чтобы сделать двухсторонний преобразователь из юникода в аски, чтобы работало с любыми символами.К примеру, банально создать папку через CreateDirectoryA, или это функцией невозможно создать "Jхуй花咲くいろは2" ?>>1025202Все в utf-8, проверил даже.
>>10252021) Unicode - это не utf8 (что такое unicode() - даже не знаю).2) В каком месте описания CreateDirectoryA написано, что ты можешь передать UTF-8 и получить читаемый текст?
>>1025207unicode() -- toUTF8()
Почему фьючерсы называются именно так? Что это значит?
>>1025206MSDN открой-то, блядь.
>>1025207Да я дурачок просто. Оно же создает какую-то поеботу с какими ебнутыми символами, значит что-то происходит.>>1025210То есть Utf-8 не применим в WinAPI ?Ладно, основная причина - gcc не открывает файлы по std::wstring.Как с этим справиться?
Какую IDE прикрутить к mingw?
>>1025213>То есть Utf-8 не применим в WinAPI ?Бинго, блядь.>Как с этим справиться?Никак.http://en.cppreference.com/w/cpp/io/basic_fstream/openОткрывай файлы через WinAPI.Олсо, обрати внимание на эту строчку:void open( const std::filesystem::path &filename, ios_base::openmode mode = ios_base::in|ios_base::out ); (4) (since C++17)И клацкни ссылку на std::filesystem::path. Там поймёшь сам. C++17 включается в gcc экспериментально через -std=c++1z
>>1025215Блокнот code::blocks
>>1025220Можно даже редактор кода, лишь бы подсветка была.Code blocks не понравился
>>1025238notepad++, подсветка есть.
Нравится Visual Studio Code, но под линуксом в нем отвратительная подстветка. В каком файле хранится описание охуенной виндовой подсветки?
>>1025258https://stackoverflow.com/a/29961309/6889930
>>1025121Пруфы на что?
>>1025116employer тебе не предоставляет?
>>1025246Там автокомплита нет
>>1025213>Ладно, основная причина - gcc не открывает файлы по std::wstring.>Как с этим справиться?Есть такая либа, называется nowide. Есть как в виде boost::nowide, так и в самостоятельном виде. Intent — избавиться от необходимости использовать некоторые w- функции и сделать это переносимо. Сам не пробовал, т.к. я, слава б-гу, не спермоблядь. Но, как я слышал, пользователям данной ОС она нравится.
Когда уже полностью портируют llvm-гомосятину на винду?Заебался использовать сlang вместе с уебищным mingw или msvc.
>>1025346Никогда, это просто нахуй никому не нужно.Кстати, посмотрел http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4656.pdf и... блять, ну нахуя это говно (asio) тащить в стандарт? Надеюсь и в 20-м отклонят нахуй.
>>1025350> Надеюсь и в 20-м отклонят нахуй.Оставь надежду. Я надеялся что filesystem не смогут протащить — но нет, протащили.
Почему лучше VS еще ничего не сделали?
>>1025397define лучше
>>1025357Дык, fs хоть немного попахивает годнотой.Это же чудище требует создавать по 5 классов ради того чтобы послать ебаный пинг и получить ответ.
>>1025403ЧО?
>>1025397CLion.А отсутствие профайлера он окупает быстрым стартом и настраевыми хоткеями (можно шлятся по коду ебаной средней кнопкой мышки! гипгип ура) и наличием человеческого мультикурсора (в студии, как и остальных пирдольках от спермы, даже с этим в 2017 проблема).
>>1025435Он безбожно тормозит, в отличие от VS, которая хоть как-то сносно работает на моем ноутбуке.
>>1025443Он тормозит только во время индексации, после летает. VS тормозит всегда по-немножку, лол.
>>1025447Ну я вот просто думаю, что лучше VS + VS Assist X/Resharper C++ или CLion.
>>1025448И да, пока что только вкатываюсь в Си, кресты буду учить потом.
>>1025447Кстати, тормозит Clion в основном при выделении кода, это прямо ощутимо замечается.В VS такого нет
>>1025422Хуй через койчо, дебич.>>1025443>тормозит, в отличие от VS,Телл ми мор фаггит. Последняя нативная студия - 14.>>1025449 >>1025448Это просто, блядь, неважно: Клион или Студия.
>>1025453>Последняя нативная студия - 14.Если про полностью нативную говорить - 10, вообще-то. После начались лаги (они поэтампно портировали на дотнет).
>>1025455В 10 и ниже нет почти нихуя, с тем же успехом можно VS Code использовать с плагинами
>>1025458Там нихуя нет потому что они в то время таким образом двигали дотнет, и наплодили решарперов с прочими асистентами.Но не суть - это была последня нативная реинкарнация студии.
>>1025459И что же сейчас используют в промышленной разработке?CLion? VS? Или что-то другое?
>>1025460Кому что нравится.Вообще, вне винды конкурентов клиону и нет. Нихуя не умеющие культи, кодлайты, вено забагованные в говнище кдевелопы и икскоды...
>>1025462QtCreator
>>1025471>Нихуя не умеющие культи>Этот ВЕЗДЕ ОДИНАКОВО УЕБИЩНЫЙ рендеринг шрифтов>через раз работает с cmake-проектами
>>1025482define нихуя (нахуй тебе Кутэ? Тебе креактор предлагают, а не Кутэ)Шрифт меня устраивает. Надеюсь, ты про ИДЕ говоришь, а не про Кутэ, который ьебе не предлагали.
>>1025545Да, ебло тупое, я именно что про культьКреэйтор говорю (ибо по иронии судьбы, что называется, в самом куте системное сглаживание шрифтов нормально работает). Если тебя устраивает шрифт - ты либо сидишь на мониторе 720x480, либо просто долбишься в глаза и ничего лучше не видел.
Посоветуйте книгу по WinAPI. Начал читать Петзольда "Програмирование для Windows 95", но там ни один пример даже не компилируется на Visual Studio.
анон объясни пожалуйса почему не выходит из цикла?только только вкатываюсь
>>1025689Ctrl+Z
>>1025766Бля, не. cin >> word скипает пробелы, поэтому word всегда заполнен.
>>1025568>я именно что про культьКреэйтор говорю`нихуя’ undeclared (first use in this function)> Если тебя устраивает шрифт - ты либо сидишь на мониторе 720x480, либо просто долбишься в глаза и ничего лучше не видел.Вариант "мне насрать на шрифт" ты не рассматриваешь?>>1025616Это каким боком к плюсам относится? Иди в ньюфаг-тред или новый создай (про винду).>>1025767while(cin>>word, word!="\n")например. Контролз тебе не поможет - оператор>> возвращает не буль и не значение ошибки.http://en.cppreference.com/w/cpp/io/basic_istream/operator_gtgt
>>1025830>Контролз тебе не поможет - оператор>> возвращает не буль и не значение ошибки.Да, он возвращает стрим. У которого есть оператор boolhttp://en.cppreference.com/w/cpp/io/basic_ios/operator_bool
>>1025831Блин, забыл. Этот оператор проверяет fail(), но fail() не проверяет EOF-статус.
>>1025832>fail() не проверяет EOF-статусДействительно.Но если выставлен eofbit, то при следующей попытке чтения будет выставлен failbit. Так что while (cin >> ...) работает.
>>1025830>Вариант "мне насрать на шрифт" ты не рассматриваешь?Когда ты днями работаешь с текстом — на него похуй быть ну никак не может, если он не пиздоглаз.
>>1025835>он >долбоеб которому похуй на эти шрифты>>1025830>`нихуя’ undeclared (first use in this function)>>1025482>>Нихуя не умеющие культиУ тебя парсер говно.
>>1025830>Это каким боком к плюсам относится?Почему консольный ввод/вывод относится к плюсам, а графический - нет?
>>1025850>Почему консольный ввод/вывод относится к плюсам, а графический - нет?Консольный ввод/вывод есть в стандартной библиотеке, а окошек там нет
>>1025855Где обсуждают нестандартные библиотеки для плюсов? Явно же не в ньюфаг треде.
>>1025833Но тогда одна строка будет обработана дважды, разве нет? Что окажется в строке, если из потока ничего не считано?>>1025837>У тебя парсер говно.`нихуя’ undeclared (third use in this ITT thread)>>1025859С твоим вопросом ("там ни один пример не компилируется") тебе вообще в MSDN, а не треды создавать. Учить одновременно WinAPI и даже C (хер с ними, с плюсами) тебе будет сложно.WinAPI - это не библиотека для плюсов, это API ДЛЯ СИ.
>>1025859Нигде их не обсуждают.Тем более винапи никто уже в помине не использует.
>>1025865C/C++ я уже выучил и писать консольные приложения мне не интересно.>>1025866>Нигде их не обсуждают.Очень плохо, т.к. "голый" С++ практически бесполезен. А современное приложение на С++ - это графическое приложение.
>>1025866>Нигде их не обсуждают.MSDN - это ДОКУМЕНТАЦИЯ, блет.>>1025875>C/C++ я уже выучил и писать консольные приложения мне не интересно.В SDK есть огромная масса примеров для всего. Нахрен тебе примеры из книжки про Вин95?
>>1025875>современное приложение на С++ - это графическое приложениеНу так учи Qt, нахуй тебе сишное винапи чтобы рисовать окошки?Скажу больше, эпоха десктопных приложений прошла, сейчас все переносится в веб.
>>1025865>Но тогда одна строка будет обработана дважды, разве нет? Что окажется в строке, если из потока ничего не считано?Я тут почитал и попробую подробно изложить.Но сначала стоит заметить operator>> для string не читает пробельные символы. К которым, в частности, относится \n. Так что твой код точно работать не будет, если только ты не подставишь локаль, в которой \n не считается за пробельный символ.Что касается failbit: «The failbitThe failbit is set by the following standard library functions:The basic_istream::sentry constructor, executed at the beginning of every input function, if either eofbit or badbit is already set on the stream, or if the end of stream is encountered while consuming leading whitespace.»http://en.cppreference.com/w/cpp/io/ios_base/iostate#The_failbitТак что если ты в новой строке нажимаешь Ctrl-Z и, насколько я помню, в Windows ещё надо нажать Enter, в отличие от *nix, где просто Ctrl-D достаточно, то при попытке прочитать из cin в string eofbit и failbit выставятся сразу, т.к. eof будет достигнут при попытке пропустить пробелы.Что насчёт значения строки после облома: я так понял, она останется неизменной, т.к.«2) Behaves as a FormattedInputFunction. After constructing and checking the sentry object, which may skip leading whitespace, first clears str with str.erase(), then reads characters from is and appends them to str as if by str.append(1, c), until one of the following conditions becomes true:»http://en.cppreference.com/w/cpp/string/basic_string/operator_ltltgtgtЯ так понимаю, если checking the sentry object говорит, что всё плохо, то str.erase() не вызывается.
>>1025897> sentry object, http://en.cppreference.com/w/cpp/io/basic_istream/sentryЭто не мьютекс (я так думал), это посложнее что-то, там и пропуск вайтспессов есть.
>>1025875>C/C++ я уже выучил>современное приложение на С++ - это графическое приложениеЯ так же думал в 13 лет, ничего, с возрастом пройдет
>>1025981Вот вы хейтите графические приложения, а ведь сами ими пользуетесь. Тот же браузер или компьютерная игра - это графическое приложение.В одной консоли много не напрограммируешь.
>>1026042Гуй ты можешь хоть на жаваскрипте сделать (прости хоспиди).
>>1026045А кто эту жаваскриптину запустит? Кто будет отрисовывать для неё графику. Правильно, графическое приложение, в данном случае браузер.
>>1026062Охуительные истории. Что ещё расскажешь?
>>1026064Мы как-то с ребятами в универе хотели свою операционку написать. Я даже свой загрузчик написал на ассемблере и уложился в 512 байт.
>>1026088А я как-то голый залез в море и насрал!
>>1026088Я как-то лабу писал, решил выебнуться и написал на WinAPI за неделю, не зная ВинАПИ вообще.
>>1026062>А кто эту жаваскриптину запустит?Движок V8 в хромиуме.>Кто будет отрисовывать для неё графикуВидеокарта, очевидно>Правильно, графическое приложение, в данном случае браузер.А вот нихуя не правильно. JS Electron, там из браузера только движок, а ты, пидор грязный, иди нахуй со своими окнами, сейчас все нормальные пацаны пишут на таких языках как пеашпи и питоно, а вечером ебут твою ЕОТ, пока ты дрочишь плюсы, живя с мамкой и поедая ее борщи
Есть один демон std::thread, который работает фоном, получает из очереди background_task и выполняет их. Как возвращать из демона результат выполнения тасков, если они могут быть разных типов?
>>1026154воид звёздочка и класс-энум для типа либо получать тип объекта динамически через typeidstd::variant
>>1026159А возвращать значения из треда каким образом?
>>1026161Вариант - это тимплейт, которому через аргументы нужно передать все возможные типы. Тип возвращаемого значения - инстанс этого тимплейта.Или попердолиться с воид и typeid, и тогда будет void.
>>1026161http://en.cppreference.com/w/cpp/utility/variant
>>1026164Я имел в виду, что проблема не в типах. Вот я обработал в треде какой-то таск. Как вернуть и треда результат обработки? Дополнительно передавать в тред лямбду, которая захватывает по ссылке локальную переменную, и при помощи лямбды присваивать этой локальной переменной значение?
>>1026166Строго говоря, было бы очень неплохо иметь отдельный класс, который уничтожает тред, чтобы ты себе никогда в ногу не выстрелил, выйдя из вызывающего треда/функции и убив переменную для возврата. Это можно решить либо новым классом (деструктор которого будет всем этим заниматься), либо шаред_птром.
>>1026166Олсо, глянь в бусте, с бустом не знаком.
Доброго времени суток, господа!Дано:- Есть интернет-магазин на CMS под названием CS-Cart. - Располагается на сервере под управлением Debian.- Скрипт, написанный на php, делает запрос по сети к файлу xml, который формируется по такому запросу. Файл xml обрабатывается и результаты обработки помещаются в создаваемый файл csv.- Файл csv обрабатывается и передается в базу через специальные функции CS-Cart. Так происходит обновление базы товаров. Внимание, четыре вопроса:1. Можно ли сделать парсер на c++ и, минуя функции CS-Cart, взаимодействовать напрямую с базой MySQL?2. Если можно (а это, наверняка, можно, потому что c++ велик и могуч), то нужно ли? 3. Если не нужно, то какие аргументы в пользу ненужности? (сложность c++ по сравнению с php в качестве аргумента не принимаются).4. В какую сторону копать и есть ли какие-то решения?Заранее спасибо за ответы. Всем добра!
>>1026305>Как реализовать парсер xml файла и обновление базы MySQL на языке c++? 1) Берёшь любую xml-либу из пакетного менеджжера (можешь нагуглить сравнение производительности разных либ и подключить backports для получений новых версий на старый дебиан) и парсишь.2) CSV - это формат таблицы с разделителями? Смотришь свой CSV-файл и выводишь так же (fstream).Парсер вызываешь из PHP (так проще, чем с сетью на плюсах работать).>то нужно ли? Охуительный вопрос. Нужно для чего? Работает - не трожь.>1. Можно ли сделать парсер на c++ и, минуя функции CS-Cart, взаимодействовать напрямую с базой MySQL?Это плюсотред, а не кскарт-тред.
Как реализовывать 2d графику, имея координаты? на линуксе
>>1026364Ньюфаг-тред к твоим услугам.
>>1026376 Но ведь ето крестовый тред! Тут больше специалистов
>>1026386И нам не интересно отвечать на вопросы для ньюфагов.
>>10263862D графику можно реализовать хоть на пиздоне. Крестовый тред не про графику.
Хули все начали с сажей писать?
>>1026490Чтобы никто не увидел, что тут долбоёбы про 2Д спрашивают. Бамплимит уже исчерпан, впрочем.
boost::lexical_cast - годно?
>>1026349> Это плюсотред, а не кскарт-тред.Не надо выебываться, дядя. Я в курсе, что это плюсотред. Вопрос не в том, чтобы работать с CS-CART или заставить тебя с ней работать. Вопрос в том, будет ли прирост производительности при работе с БД напрямую, минуя специальные функции движка CMS (неважно какого движка: WP, 1C, CSCAR, TYPO или "твоя мамка CMS")?
>>1026493да
>>1026502>Вопрос в том, будет ли прирост производительности при работе с БД напрямую, минуя специальные функции движка CMS (неважно какого движка: WP, 1C, CSCAR, TYPO или "твоя мамка CMS")? Если ты хочешь пропустить формирование XML-файла (грамматическая структура) и херачить из SQL в CSV - конечно будет, безусловно (особенно в том случае, в котором XML тоже формируется интерпретируемой программой). Интерпретируемый язык - говно в плане производительности. Но каков порядок прироста в твоём случае - не чаю.Всё решается балансом процессорной мощности и скоростью доступа к БД. Если у тебя нехватка производительности, и ЦП перенагружен, то нативный код ещё как поможет.
сага анрилейтид
>>1026518Спасибо, добрый человек!
Программачеры, нужен совет. Есть два стула. На первом стуле вакансия с 1С и зарплатой 40к, что для моего мухосранска и очень много, особенно учитывая, что опыта у меня нихуя. Стул второй - возможное (это не точно) место с С++. Что лучше выбрать?
Какую автоматическую систему сборки лучше удобнее использовать для проекта на крестах,
>>1027823Зависит от того, насколько ты ненавидишь 1С и любишь плюсы.
>>1027841К 1С отношусь нейтрально и совершенно его не знаю. Плюсы нравятся я люблю сложности и мне нравится низкоуровневость плюсов, нравится реверсить программы (правда тут я нихуя не умею).Я вот хуй знает, как быть
Аноны, как передать динамический массив по ссылке в функцию потока?int n = 5;int foo = new int[n];std::thread(func, ref(foo));Подобное не работает.
>>1027843Ничто не мешает тебе заниматься плюсами в свободное время. Чем больше ты будешь писать на плюсах сам, без оглядки на требования работодателя, тем больше ты будешь уметь делать сам.Выбирай бабки (про бабки ты не сказал - звучит так, как будто вакансия на плюсах чем-то хуже) и гарантию трудойстройства.
>>1027880Что такое ref()? Что именно не работает?
>>1027823С 1С ты всегда будешь куском говна на побегушках у жирных теток, с С++ твои возможности почти не ограничены. Гугл\Майкрософт\Амазон\Фейсбук - везде нужны крестобоги.
>>1027880thread thr([pointer] () { делай чо хочешь; });
>>1027900std::ref() проебался немногоОборачивает объект для того чтобы передать его по ссылке в функцию потока.
>>1027927Ты нам зарплату не платил за то, чтобы мы из тебя информацию по кусочкам вытягивали.
ПЕРЕКАТhttps://2ch.hk/pr/res/1028033.htmlhttps://2ch.hk/pr/res/1028033.htmlhttps://2ch.hk/pr/res/1028033.htmlhttps://2ch.hk/pr/res/1028033.htmlhttps://2ch.hk/pr/res/1028033.htmlhttps://2ch.hk/pr/res/1028033.htmlhttps://2ch.hk/pr/res/1028033.htmlhttps://2ch.hk/pr/res/1028033.html
>>1027924Лучше уж работать с 1С и получать реальные деньги, чем мечтать о Майкрософт и в итоге пойти сисадмином в говноконтору.
>>1028082Если ты потомственный лузер - да, лучше.
>>1025209> The names ‘‘future’’ and ‘‘promise’’ are historical; please don’t blame or credit me. They are yet another fertile source of puns.Bjarne Stroustrup
>>1027880int* foo = new int[n]Может причина в этом, но я раковый
>>1028694Аааа, ну да. Я забыл. Деньги не главное. Главное - стартап и мечты. Потом расскажешь об этом своей тянке, которая будет сосать болт у лузера из 1С. Ты же великий программист.