Это копия, сохраненная 6 мая 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Утонувший:https://2ch.hk/pr/res/904165.html (М)
Что значит "получить часть данных"? Для количества элементов попробуй вычесть итераторы.
У этого SomeObject меня интересуют два поля: x и y
Из них надо создать QPoitnF, с которым уже буду работать дальше
> Для количества элементов попробуй вычесть итераторы.
Круто, работает
АТО
Получаешь по индексу объект, смотришь поля. Или разименовываешь итератор, раз у тебя итераторы есть.
Ананасы, есть ли какие-нибудь молодые перспективные можно и не очень проекты на github, куда может вкатиться ньюфаг?
студентота же
еще нет вообще, чекаю только неделю
алсо, везде в обязательных требованиях идет хуетень типо "немного знай кресты, но, сука, умей в sql и js" хотя в вакансиях что-то вроде "стажер-разработчик (c++)"
>Все идут на хуй
Бля, а где можно спросить раковие вопросы ньюфагу?
Как реализовать разную сортировку пузырем в зависимости от элементов в массиве?
Например первые 5 элементов будут по возрастанию, а следующие 5 по убыванию
Делаешь вменяемое резюме, где у тебя будут очевидны зачатки интереса к крестоблядству.
Мол буст трогал, QT. Какие-то свои пет хуйни, уровня СОРТИРОВКИ ПАПКИ ПО ТИПУ ФАЙЛА.
Рассылаешь его по всем компаниям подряд, где нет специфических требований уровня:
>C++ Developer
>...
>Умение писать модули для ядра Linux.
Попадёшь на собеседование, где тебя будут мурыжить и доказывать, что ты нихуя не знаешь. Потом предложат ~30к рублей за 5/2. Отработай там, сколько хватит силы воли. Обычно в подобном дерьме всем похуй на твою реальную квалификацию, т.к. там 80% сотрудников - студенты. Поэтому в любом случае набьёшь руку на практике. Плюс увидишь как НЕ НАДО писать код, заодно сам такого говна напишешь.
После года опыта в позиции С++, если не будешь ебланить, то дальше будет сильно проще.
После 2х годков уже HR сами будут тебе периодически спамить на почту.
Ну и з.п. по ДС2 будет от 60к. По моему опыту 80к+
Главное не засиживаться в подобных конторах. И не переставать развиваться. В подобных местах у тебя будет достаточно времени, чтобы на рабочем месте пилить пет проект/читать проф лит-ру/учить алгоритмы/... .
Ну офк не позволяй себе выгореть, в подобной параше почти всегда аврал. Всё вечно течёт, падает, огромный тех. долг и прочие радости жизни.
Добавлю к >>932740, можешь отсортировать весь массив по возрастанию.
А нужные куски развернуть через http://ru.cppreference.com/w/cpp/algorithm/reverse
но я еще студента, поэтому ищу все же либо стажировку, либо не неполный день. На деньги просто пофиг, ищу ради опыта. И что-то почти нихрена нет :с
Конечно.
Анон, помоги пожалуйста.
В общем такая штука, если коротко, последнее время учу кресты, нравится все и сам язык и прочее (может быть это по неопытности), толком много не выучил, но чувствую что по чуть чуть начало получаться, отвечаю на некоторые вопросы в тредах по С++, естественно не на все вопросы, редко. но бывает.
Думал к лету дочитать полностью книгу С. Прата и книгу Седжвика (Алгоритмы на С++), немного почерпнуть классики из Джосаттиса и попробовать рыпнуться на стажировку хоть куда.
Теперь переходя к проблемам
1. Хватит ли вышеперечисленного базиса, чтобы пройти на стажера ? Задачи типа перевернуть строку, не вызывают проблем, классические алгоритмы типа пузырьковой сортировки знаю, но что то большее типа сортировки Шелла или графы думал выучить к лету, сроки вроде бы позволяют.
2. Сегодня появилась вторая проблема.
Позвонил друг позвал к себе в кантору работать, продавать оборудование, я не гордый, он сказал стартовая 60К чистыми после первого года 100К грязными + премия и так далее, честно скажу заинтересовало, очень интересно мнение анонов ,я немного в растерянности, и колется и хочется.
О себе: 26лет, специальность теор физ, сам сейчас аспирант , до этого ни на чем другом не прогал, выскажите свое мнение, пожалуйста.
1. Касательно первого пункта, стоит ли еще что то конкретно подучить. И где можно взять задания для пет-проекта, чтобы показать что я хоть чуть чуть не даун, я понимаю что придумать должен сам, но кроме арканойда и
кастрированной копии маткада (считает интегралы и чертит графики через OpenGL(больше мозгов пока не хватает) ).
2. стоит ли задуматься над предложением, потому что друг сказал , что с начальником договориться и я работать буду, признаю меня интересует только вопрос интереса + деньги если денег будет сильно больше чем в варианте с С++, боюсь что выберу его.
Что скажите ? Прошу вашего внимания. Приветствуются любые ответы, ну желательно по существу.
Спасибо.
Хуёво. Я вот из веба думал перекатиться в кресты в ДС, но пугает малое кол-во вакансий. Вот прямо сейчас без опыта 3 штуки норм стажировок. В ДС!!
Не понял, ты учишь кресты и хочешь пойти в стажёры, и одновременно тебе предлагают пойти ебаным продажником и ты в растерянности, куда же рыпаться? Ну что ж, удачи. денег, если найдёшь стажировку, будет около 30-50к, так что сам думай, что тебе важней
и да
>дожил до 26 лвл и не умеет в -ться, -тся
Тебе точно в продажники
Анон ответь на вопрос из пикрелейтед.
Объект удалиться. Поток не остановится. Если у объекта не была создана локальная (по отношению к потоку) копия то при попытке доступа к данным объекта наступит UB.
Стажировок вообще мало, да и нахуя тебе стажировки?
Делай свои проекты, разбира решай, разбирайся и устраивайся джуном.
Только на hh, если честно, не знаю, есть ли ещё какие места для поиска вакансий
>>933640
Но как, блядь, он умер, если все машин-лёрнинги, искусственные интеллекты и прочая интересная фигня на нём пишутся? Да и игрули туда же.
>>933671
Стажировкой я назвал как и, собственно, стажировку, так и "джун без опыта, но со знанием". У остальных вакансий стоит чётко - опыт разработки от 1/2/3 лет.
Да и вакансий для опытных - куча, но почему-то для новичков нет нихуя.
На hh в МСК чисто без опыта вообще (нулевые) 46 вакансий С++.
С опытом 1-3 уже 450, и на многие могут взять чувака без опыта, если ты круто пройдешь собеседование. Джуном естественно.
Весь тред вас тут таких. Я бы тоже искал, но в моей мухосрани спрос только на PHP, а переехать я не могу.
Приглядись, там из этих 46 половина уже за давностью лет забылись, другая половина около-крестовые, по большой части знание крестов - в доп пунктах, а сама вакансия ни о чём
Пригляделся, там 80% вакансий реальных.
Скажи честно, на самом деле тебе работа нахуй не нужна и ты хочешь сразу в топовую контору со всеми удобствами и чтобы рядом с домом?
а теперь посмотри, сколько же из них на неполный день, или просто сколько стажировок. Потом посмотри, где нужно именно на крестах прогать, а не "пишите на sql, c++ как приемущество"
мимо другой анон-студентота
Тебя понял. С++ студентики на полставочки нахуй не нужны. С их ебучими сессиями, лабами и студентскими жизнями из студентиков получаются хуевые работники, которые ничего не пишут, а если пишут, то создают больше проблем, чем решают. Иди лучше делай лабы в универе, наработаешься еще по жизни.
Я вот когда студентом был - на фул устроился с третьего курса, а лабы к сессиям либо покупал? либо делал после работы. Бтв, после того как устроишься, ВУЗы вообще воспринимаются как клоунада.
а вот теперь обидно стало за жизнь :с
не знаю, учусь вроде в одном из top-tier вузов, но понимаю, что мой диплом без опыта и умений нахуй никому не нужен поэтому и хотел устроиться куда-нибудь :С
Вы неправы, всего доброго. Ну анончик, нифига же подобного, первая же вакансия от трёх лет разработки, очевидно, они просто не указали опыт в настройках резюме.
Ну и вторая половина первой страницы пикрилейтед, там чуть ли не 1с в дом требованиях вместе с крестами. Ну и начиная со второй страницы все такие уже. Нормальных вакансий штук 5-6 сейчас для полных нубов
Тебе не надо ничего конвертировать, еблан
warning: C4290: C++ exception specification ignored except to indicate a function is not __declspec(nothrow)
почему указание в сигнатуре бросаемого исключения не учитывается?
где можно посмотреть, как в плюсах происходит работа с файлами, когда постоянно есть риск ошибки ввода-вывода?
Студентик, который не хочет фуллтайм, не хочет стажировочку, но хочет работать.
Стажировки могут себе позволить компании уровня яндекс и прочая хуйня, которые это будут делать исключительно с точки зрения пиара. Плюс пару рабов на будущее приглядеть.
Крестоблядство - это не та сфера, где безрукий раб может принести хоть какую-то пользу. В лучшем случае это будет поделие с безумным количеством временных объектов, которое в половине случаев полноценно справляется со своей задачей.
А более вероятный исход - хуйня, которая хлещет по памяти и сегфолтится на любом шаге в сторону.
Учитывая, что это студентик, так он ещё и будет постоянно отпрашиваться на всякие вузовские мероприятия. А потом под конец 3х месячной стажировки исчезнет нахуй.
Зачем компании нужен такой человек? Если нужны рабы с низкой квалификацией, то кол-во студентов/выпускников на фулл тайм вполне достаточно. И их можно тыкать в их хуёвый код постоянно, что в итоге может привести к подобию рабочего результата.
ну а я ищу либо стажировку, либо не фуллтайм.
И чего вы все цепляетесь к "студенческим жизням" и "вузовским мероприятиям". Второе, лично мне, просто не нужно. А под первое я хз, что подогнать. Рассчитывая на стажировку или не фуллтайм, я естественно собираюсь не пинать и не отпрашиваться куда-то. Другое дело с качеством работ, тут уж зависит от поставленных задач. Но ведь опыт надо где-то брать, разве нет? чтобы не бегать с голой жопой, зато с дипломом
Согласен на стажировку, на фуллтайм, на переработки и вообще за еду. Куда обращаться?
По мухосрани около ДС ничего не скажу.
В любом случае джуну можно смотреть на НИИ, военку и прочую хуйню.
Туда берут почти любых людей, которые смогу написать на листочке for и if.
Офк платить будут мало, зато получишь опыт для дальнейшего движения.
А так открываешь hh и рассылаешь своё резюме по всем вакансиям связанным с С++. На опыт и прочую хуйню похуй. Если ты не подходишь, то МАКСИМУМ что будет - увидишь отказ.
> Если ты не подходишь, то МАКСИМУМ что будет - увидишь отказ.
А вдруг меня отпиздят и обоссут?
Только если морально. Такое, увы, возможно. Хотя это шанс этого исключительно мал. Подобным на собеседованиях занимаются.
юзай паттерн "interruption points"
> Как сделать?
Берешь референс на вектор передаваемый при инициализации и хранишь в классе. На каком этапе у тебя проблемы?
code::blocks
ty kind anon
О, так ты только в начале пути
Алсо, сам что-то делаешь, или только то, что требуют?
хотя что требуют и от преподов зависит, в первом семе у меня халява была дикая, дальше уже хоть что-то сложное и требующее разбираться самому пошло
Мне тут не показалось халявно, так как информатику в школе преподавали отвратительно. Я из тех долбоебов, которые практически наугад выбрали специальность, Выбор был между инженерным факультетом и программистским гуманитарным ничем не хотел заниматься, в медицину тоже не тянуло, в приемке сказали, что в ИУ7 я буду выглядеть совсем уж слабо, может были правы, может преувеличили, но порекомендовали РК6, на чистого инженера идти попросту зассал, так как весь год готовился к физике и написал на 60 с небольшим, к информатике готовился неделю и с минимума до 65 баллов дорос хотя может это не достижение, но до подготовки я делал задания лишь те, которые просто логически можно было решить, думаю за год мог бы дойти до 80 точно Делаю то, что требуют и совсем недавно стал немного от себя делать всякие безделицы сейчас дописываю игру "го" на C, после хочу что-то математическое сделать, калькулятор производных, быть может (хотя это не просто для меня). Ну я не чувствую, что проебался выбрав это направление, просто опыта в нем крайне мало, да к тому же я туповат.
спасибо :3
ты тоже там не забивай на прогу, если нравится, тк мб и не удивлю, но не факт, что по специальности будешь работать хотя что там у вас на рк6, я не помню, проектирование что ли какое-то
алсо, в следующем семе в этом уже даты регистрации все, если будешь понимать, что есть свободное время, пробуй в технопарк пойти. На основную может и не стоит, но открытые курсы годнота и будет полезным
>не факт, что по специальности будешь работать
Имеешь в виду не факт, что в программировании или не факт, что в своей сфере? У нас программистская специальность и немного инженерного.
>хотя что там у вас на рк6, я не помню
Системы Автоматизированного Проектирования (САПР) программы типа Inventor, Компас и тп.. Предполагается, что научат нас разрабатывать модули этих самых САПР и свои маленькие САПР, так как разработкой полноценной САПР занимается команда разработчиков хотя меня не тянет именно в эту сферу программирования.
>>934702
Не парьтесь чуваки. Я вообще Э закончил пару лет назад, прогать на 5 курсе начал, 3 сема проходил в технопарк и сейчас вполне неплохой плюсовик.
ходил на открытые курсы или на основную?
я как-то вроде и думал на основную, а потом чет прикинул, 2 года как-то
ГДЕ ИСКАТЬ СТАЖИРОВОЧКУ НА ПЛЮСАХ??? Я кроме hh и career особо не знаю, да и первый подгружает со второго вроде как
В мое время открытой вроде не было, гонял в основной.
ТП вообще такая штука, куда надо идти пока не начал работать, так как по мне он слишком широкое образование дает. Так что пока не работаешь пройди его, стажером в мэйл много кто идет на разные технологии, а ТП просто будешь по остаточному принципу закрывать, так как учеба в нем, вроде, обязательна для стажеров.
>СТАЖИРОВОЧКУ
Онли крупные конторы типо мэйлояндекса
Алсо попробуй saveboard от касперского.
Я в свое время просто откликался вообще на все, даже где от 3 лет опыта было, но програмерскую работу я только на 2 семе 6 курса нашел и работал фул тайм сразу.
>идти, пока не начал работать
Не знаю, мб я слишком загоняюсь, но ТП - еще минус два года без работы как таковой, хотя и с неплохим доп образованием
И то со следующего сема тогда уж, тк в этом поступал только на открытые
А опыт то нужно все же накапливать, вот и пытаюсь не очень успешно :с найти какую-нибудь стажировку или подобное
А какой тебе смысл надо? Если ты там не смог начать зарабатывать, в с++ тебе делать нечего
Нужен. Короче, шапку буду дрочить.
>нужны быть ОЧЕНЬ жестким, чтобы попасть туда
Поботай алгоритмы хорошенько и Ассемблер+как работает комп.
Не боги горшки обжигают, я вообще в 21 начал код писать, не то чтобы я топовый разраб, но вроде все получается.
Алсо все РЕАЛЬНО жесткие это начиная от призеров всероса.
Остальные +- как ты, непреодолимого разрыва нет.
Visual C runtime с тобой несогласен
dll-ки рядом с прогой положи.
Вроде как doxygen достаточно часто используют. Но это же нужна поддержка о стороны ide - нужно сомтреть в конкретном случае какую систему ide использует, и использует ли вообще.
Да я, в принципе, куда угодно пересяду, кроме VS. Спасибо.
ну берёшь стрим, сплитишь по "\n", полученную колцекцию пропускаешь через map, в маппере у тебя takeWhile, что сложного то?
Всем похуй.
Автоподстановку и синтаксис чекает и NetBeans, и Эклипс и даже devC++. А, вот, документации встроенной, как с джава мне не хватает.
Я и не ухожу. Но подрядили сделать небольшой модуль для левого проекта. Собсна, на крестах. Потому хотел нормально всё задокументировать
Нет, я про то, чтобы загрепать все сорцы, найти там
>#include "путь к перемещенному файлу"
и заменить путь на правильный. Желательно чтобы можно было перемещать целые папки одной командой из консоли, и чтобы обновляла билд-файлы VS.
За прошедшие 30 лет кто-то должен был такое написать. Неохота пилить свой велосипед.
Распространен такой подход что в #include указано только наименование файла, либо "имя библиотеки/имя файла". Никаких путей там нет. Их передают линкеру - ide или какие-то сборочные скрипты, make и т.п.
Мне знакома эта боль. Папочку с проектом можно переносить, т.к. всэ ее ништяки можно прописать относительными путями.
Моя трабла в том, что в растворе (solution) референцами лежат пара других (Bullet physics). Я так и не нашёл, где в студии пределать путь ко всем разом.
Как бы так у каждого свой путиь прописан... вот и держу всё в корневом на Ц:/. Он как бы на всех компах один и тот же.
Вопросов по теме с сети много. Внятного решения пока не нашёл. Перебивать пути в vcxproj не работает.
https://www.quora.com/Whats-a-way-to-make-Visual-Studio-always-have-a-relative-path-for-references
>"имя библиотеки/имя файла"
This. Если библиотека разрасталась-разрасталась и там уже 100 файлов в папке, то хочется разбить ее на подпапки, чтобы видеть структуру. Соответственно, во всех инклудах, подключающих перемещенные файлы, нужно заменить пути на новые.
>выстроить
быстрофикс
Надо найти номер минимального значения в массиве
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 20; j++) {
if (array[j] > 0 && min < array[j]) {
min1 = array[j];
cout << "min1 = " << min1 << endl;
}
}
if (array == min1) min = i;
}
Все хуйня. Попробуй удалить, постараться забыть что ты писал, немного подумать о задаче и написать заново.
cовсем пиздец?
Оке, тогда два вопроса: какой учебник для нулевого обучения, и какой взять, чтобы узнать новые фичи и освежить знания? Просто у Страуструпа раньше были конкретные уроки, в которых ты реально что-то делаешь( типа аудиодрайвер)
У тебя условие неправильное в if. И если у тебя не двухмерный массив, то два цикла не нужны.
auto result = std::min_element(std::begin(v), std::end(v));
int index = std::distance(std::begin(v), result);
У меня нету матана
Большое спасибо анон, но мне нужен номер минимального, думаю дальше я сам.
Еще раз спасибо
Эм, а зачем в if выводить min, можно же это сделать за циклом
Если ты его отсортируешь, то тебе вообще нужно только крайнее значение присвоить переменной
>>А почему должен быть?
Где ты учишься? Я думал ты студент
>Где ты учишься?
На курсах, там нету матана, походу все поясняют. В школе с этим плохо было но на курсах я вроде относительно далеко не самый долбаеб.
У меня тут обосрамс опять.
По факту тут надо посортировать плюсовые по убыванию. Я уже менял значения по разному, делал и добавлял еще цикли, один раз вроде получилось но я его стер потому что сначала просто шли плюсовие и все, надо было сдавать так.
Суть в том что я хочу цикл сортировки запустить с минимального плюсового числа (ну и с другим значением, шоб в другую сторону пошли цифры).
int idxmin = 0;
minvalue = arr[0];
for(int i = 1; i < sizeof(arr); i++)
{
if(arr < minvalue)
{
int idxmin = i;
minvalue = arr;
}
}
По-русски это значит следующее: говоришь, что держишь первый хуй член массива за минимальный. Сохраняешь его индекс. Очевидно 0. Если при сравнении с ним другой хуй член массива будет меньше, берёшь его индех и обновляешь значение. Так делаешь, пока не обсосёшь все хуи члены массива. PROFIT.
Или так, или я непонел твою задачу. Обращайся.
Купил себе ноут в японской виндой win10pro. Чтобы в консоли получить читабельное, надо посылать с Shift-JIS. Я бы это понял и принял как должное. Но почему же божественный UTF8 выдаот в консоль нечитабельную хрень. Ладно, проехали.
Пробую вывод японских крякозябров на английской винде win7ultimate. Поначалу та же фигня что в UTF8, что в Shift JIS, но переставляю локалку на Джапан и, о чудо из чудес!, строки в UTF8 читабельны!!!! Но не в рассовом Shift JIS, bleat.
Имеем следующую ситуацию:
Японская винда требует для консольки Shift JIS и не приемлет UTF8
Английская винда не ест Shift JIS ни так, ни с японской локалкой, но хавает японский через UTF8.
"Я хуею, дорогая редакция!" (С)
Нахуя мне линукс?
>надпись на стакане
>>935300
Сорян, я правда не понял твою задачу что надо сортировать
тебе нужен bubble sorting, это старо как мир и гуглицца
Там идёт сравнение соседних и они меняются местами
Это и есть вся задача
>>935348
Можно поподробнее. У меня либо последнее выполняеться либо не сортируется вообще.
Упорядочить по возрастанию элементы с отрицательными значениями, и по убыванию положительные.
Как на пике надо наоборот - что бы -19 шло к -3.
Сначала сортируешь весь массив по возрастанию любым способом, потом находишь первый положительный элемент и сортируешь все начиная с него по убыванию, то есть в for вместо int i = 0 будет int i = first_postive. Ну или можно как-то так:
std::sort(v.begin(), v.end()); //сортируем весь вектор по возрастанию
auto it = std::find_if(v.begin, v.end(), [] (const& int s) {return s>0}); //находим первый положительный элемент
std::sord(it, v.end(), std::greater<int>()); //сортируем все что после него по убыванию
>std::sort(v.begin(), v.end()); //сортируем весь вектор по возрастанию
>auto it = std::find_if(v.begin, v.end(), [] (const& int s) {return s>0}); //находим первый положительный элемент
>std::sord(it, v.end(), std::greater<int>()); //сортируем все что после него по убыванию
ему надо ручками
Спасибо, но мне надо по простому через for/if там.
Я вроде так и делал, только проебался с
>сортируешь все начиная с него
#define game_state 0
#define menu_state 1
unsigned state = game_state;
switch (state)
{
case game_state:
{
while(windowIsOpen())
{
cout << "game state";
}
}
case menu_state:
{
while(windowIsOpen())
{
cout << "menu state";
}
}
}
По нажатию на кнопку должен меняться стейт, и он действительно меняется, однако дальше дело не идёт, он видимо из цикла не выходит. Кто объяснит, где я обосрался?
The window is still open. You cannot leave the while-loop.
The window is still open. You cannot leave the while-loop.
The window is still open. You cannot leave the while-loop.
На этом скрине есть вакансия, на которую собеседую лично я. Такие чучела-мяучела приходят, аж без слез не взглянешь. Нихуя не знают, нихуя не умеют, хотят денег.
Что за вопросы задаёшь хоть примерно, а то я скоро тоже буду приводить людей в состояние дикого недоумения.
The window is still open. You cannot leave the while-loop.
Вы нам подходите.
два люка, немного изоленты и проволоки, смешать, но не взбалтывать и получится ВЕ-ЛО-СИ-ПЕРД. таск можно закрывать.
Двощ, каким образом Reverse Engineering относится к Министерству финансов?
https://astana.hh.kz/vacancy/19159706?utm_campaign=KZ&utm_medium=meta&utm_source=qyzmet
Начиная от "Чему будет равно A в uint8_t A = 333" заканчивая упрощенными вопросами из Майерсов и Саттеров. На ~90% моих вопросов ответить реально, если майерс и страуструп были прочитаны. Однако нет, есть индивиды, которые не отвечают вообще ни на один.
Хотя догадываюсь, лол, небось легаси всякое поддерживать.
Самое смешное, когда я пишу решение, а именно - 333 & 0xFF - у половины просто шары на лоб. Собрались байты ебать, а побитовые операции не знают.
Некоторым командам приходится, т.к. специфика софта подразумевает повторение миллионов одинаковых операций в секунду. Если ты где-то сэкономишь пару тактов, то это здорово.
Переполнение понятно не знают, но потом выясняется, что побитовые тоже не знают. Приходишь ты весь из себя умный на собеседование, думаешь - изи катка. А тебе задают вопрос, который ты вообще не знаешь. И ответ - в который ты тоже не врубаешься. И тут начинается когнитивный диссонанс
Какого хуя так зделали? Ведь ежу понятно что != это !(operator ==). Нахуя лишний пердолинг?
Блять, если бы на дишечке существовал аналог Qt (хотя бы гуи-части, все остальное то и так искаропки есть) - я бы уже давно забыл бы кресты как страшный сон. Но увы.
Могут, но из нативного разве что dlangui, который пилит анон с лора, и который на нем пилит свою IDE для ди и читалку для ведроида.
Но там не qml - язык разметки css-образный похож, но в биндинги оно не умеет.
А все остальное - это очередные блядские биндинги. Биндинг к gtk, awt, qt, qml, и еще куче хуйни. А я ненавижу биндинги, пусть нормальный натив запилят.
Давно мечтаю о гуе на основе движка шаблонов как в Vibe.d, это была бы песня.
Если собеседант (или как он там? Собеседник, точно) ответит на этот вопрос, используя копию стандарта, это будет зачёт?
>Какого хуя так зделали? Ведь ежу понятно что != это !(operator ==). Нахуя лишний пердолинг?
С++ предоставляет огромный арсенал для уничтожения твоей ступни, комитет прямо об этом заявляет.
> Ведь ежу понятно что != это !(operator ==)
Оператор != можно реализовать эффективнее чем !(operator ==), так как для != достаточно сравнивать объекты до первого несоответствия, а для == нужно совершить полное сличение объектов. Заставлять программиста выполнять полное сравнение объектов, тогда как можно обойтись лишь частичным противоречит идеологии с++ - программист не должен платить за то что не использует.
Ерунда какая. Оператор == обычно так и пишут, сравнением до первого несоответствия. Разницы с != здесь никакой.
Переделал немного.
return digitSoFar;
int x;
int numDigits(int number)
{
int digitSoFar = 1;
if (number < 0)
number = -number;
while ((number/=10)!= 0)
++digitSoFar;
return digitSoFar;
}
Но функция не возвращает число, а вот если пишешь
cout << digitSoFar;
return 0;
то прога работает. Щто я не так делаю?
Я тоже хотел эту хуйню написать (даже подумал, что я пост случайно отправил, когда начал твой пост читать), но >>936153 . Нужен какой-то пример по-сложнее, в котором, действительно, будет какой-то выигрыш в производительности за счёт разницы между тем, как много нужно проверить для выяснения равенства и выяснения неравенства.
То есть, должно быть выполнено условие:
- ты не можешь без ущерба для производительности вычисления равенства минимизировать время вычисления равенства до времени вычисления неравенства.
Ни с одной структурой, представляемой набором интегральных значений, такое не возможно.
Спасибо, анончик. Мне надо поспать.
>Но функция не возвращает число, а вот если пишешь
Пишешь где? В теле функции? Нахрена?
>Но функция не возвращает число
stdout в идеоне прочитай. Как там может быть 4, если она не возвращает число?
Можно сделать using namespace std::rel_ops;
Проблема в том, что математически A != B тождественно равно !(A == B). Не существует в принципе такой ситуации, когда один из операторов можно реализовать эффективнее, чем другой, и получить при этом корректный ответ при любых исходных данных.
Это превосходно работает. Каждое целочисленное деление на 10 уменьшает число десятичных цифр на 1.
Ты упускаешь то, что ты можешь наперёд знать о неравномерности распределения данных.
Вот, придумал. Например, есть у тебя набор длинных строк, и ты знаешь, что:
- оператор равенства чаще всего используется тогда, когда аргументы равны (вот такой вот говнокод), а оператор неравенства - тогда, когда неравны
- строки часто различаются в конце, а не в начале.
Тогда в операторе равенства ты сравниваешь строки с начала, а в операторе неравенства - с конца, но это медленнее из-за обратного чтения памяти, но это всё равно выгодно, так как тебе известно, что чаще всего строки, сравниваемые оператором !=, неравны, а различия находятся в конце.
Довольно синтетический пример, разумеется. Все другие примеры будут такие же: у тебя может быть статистическая информация о том, в каких местах чаще всего объекты не равны.
int(log(num)/log(base)) + 1
После деления number преобразуется в bool, где 0 - false, другое- true. То есть, while работает пока number != 0
Вот уж действительно код курильщика.
Код здорового человека: два или более методов вида bool equalsExpectDifferentHead(Govno &other); equalsExpectDifferentTail и т.п., которые используются вместо прямого сравнения там, где это оправдано; оператор ==, который делегирует наиболее нейтральному методу, и оператор !=, который делегирует оператору ==.
Аноны, может вы подскажете, пользуюсь функцией PostMessage, чтобы отправить текст в окно (игру), если отправляю латинские символы, все отлично, если кириллицу, то, например, вместо 'ф' получается 'D'. Как пофиксить?
PostMessage(Handle, WM_CHAR, 'ф', 0);
Пробовал WM_UNICHAR, но так вообще никакие символы не получилось отправить.
От игры зависит (шрифтов). Попробуй отправить все возможные комбинации - если кириллицы не найдется то без модификации программы нихуя не сделаешь.
Перепробовал много, не нашел. Странно, ведь с клавиатуры вводится кириллица без проблем
Ахуеть, почему я этого не знал?
Давно это у тебя? Насколько запустил?
>Прошу прощения, не подскажете ли вы как избавиться от нулей на главной диагонали матрицы?
Тебе нужна матрица без нулей на гл. диагонали , но с тем же детерминантом?
Идёшь по диагонали, после встречи нуля ищешь ненулевой элемент в той же строке (или вертикали - главное, чтобы везде так же), и ту строку прибавляешь к этой.
Спасибо, сейчас попробую! Я и забыл об этом свойстве, благодарю вас =)
1. логгировать конструкторы и операторы копирования, перемещения
2. долбиться в ассемлерную выкладку
3. долбиться в очко?
Сделай конструктор копирования, меняющий, допустим, глобальную переменную - и посмотри, изменилась ли она. По стандарту - если RVO или NRVO происходит, то конструкторы копирования не вызываются, и, соотв-но, ты увидишь это, т.к. глобальная переменная не изменилась. С++17 для этого не нужен. Так же можно похачить move конструкторы, например.
>>935369
суть такова: есть библиотека https://github.com/nanomsg/nanomsg , которую я тереблю в своем проекте на щарпе с помощью дотнет обертки. соответственно дллки из репозитория: https://github.com/mhowlett/NNanomsg
и они требуют msvcr120.dll строго. я скачал исходники самой nanomsg, сделал проект через cmake, выставил для всех проектов в солюшене Multithreaded вместо MultithreadedDebugDLL чтобы она не требовала рантайм. собралось всё успешно, но не проходит тесты и периодически отваливается
что мне сделать чтобы конечному юзеру моего приложения не требовалось тащить vc++ redist?
Почему при определении конструктора с ненулевым количеством параметров не создается конструктора по умолчанию?
потому что, он генерится только если не объявлин любой другой, если ты объявил то дефолтный ты должен тоже объявить явно
>If no user-declared constructors of any kind are provided for a class type (struct, class, or union), the compiler will always declare a default constructor as an inline public member of its class.
Ну допустим, ты создаешь свой конструктор и не хочешь, чтобы использовался дефолтный, как ты это сделаешь если он будет включен по умолчанию?
Тупо std::string str; str += "string1"; str += "string2"; str += "string3";
Или std::stringstream ss; ss << "string1" << "string2" << "string3";
Сейчас у меня первый вариант, ибо нет никаких конвертаций интов или ещё чего, как и хитрого форматирования, в которые умеет stringstream. Просто из нескольких мелких строк собирается одна.
без разницы, если ты делаешь laba1.
Если надо максимально производительно - то в дестинейшен стринге преаллоцируешь память, и потом туда аппендишь инераторы трех строк
Создаю 2 проект для програмки, написал простенький код, а он не работает, ошибку не понимаю - пикрил.
Помогите, в чём может быть проблема?
Шаг номер 1. Удали нахуй свое красноглазое поделие, которым не пользуется ни один вменяемый человек.
Шаг номер 2. Поставь Visual Studio.
Конец.
Выключи precompiled header
>>937847
И правда, удалил и создал заново хедер и заработало, спасибо.
>Удали нахуй свое красноглазое поделие, которым не пользуется ни один вменяемый человек
Ну я только начал, вроде он простой и функционирует нормально. Для начала сойдёт.
Задумался над реализацией генератора капчи, какие подводные?
Не слишком ли легко? Может есть какие другие идеи?
Друг, даже если ты только начал - надо пользоваться нормальными инструментами сразу. А не поделкой из под залупы носорога.
Уйди нахуй содомит, я только аутоэротической асфиксией балуюсь.
Сап, крестовики. Сегодня понял, что в будущем кресты мне понадобятся для околонаучных или вроде того штук. Изучал кресты в универе - писали алгоритмы всякие, чуток winapi на многопоточность.
Но тут такая тема - понял, что чтобы не обосраться - нужно очень хорошо знать C++, иначе будешь генерировать говно, которое медленей питона, а как его знать, если не пишешь еверидай, да и если пишешь, я хз.
Всегда лоллировал с таких ошибок в gcc.
*==
аааа default city....
>Не, мне так не идет.
Смажь вазелином и ещё раз попробуй. Студентотаа-неосиляторы идут лесом.
>какие подводные?
Твою капчу скормят какоу-нибудь распознаватору, он распознает, и ты обломишься.
Генератор капчи - это задача с разным решением в каждый момент времени. Как только начали распознавать - надо дорабатывать, универсального решения нет.
>Но тут такая тема - понял, что чтобы не обосраться - нужно очень хорошо знать C++, иначе будешь генерировать говно, которое медленей питона, а как его знать, если не пишешь еверидай, да и если пишешь, я хз.
Писать так, чтобы было медленнее питона, сложно. Как можно сделать так, чтобы было медленнее питона:
- постоянно создавай и разрушай объекты в динамической памяти
- делай дохрена коротких циклов
- никогда не пиши локальные алгоритмы (т.е. использующие ограниченный набор данных)
Я бы сказал, что обосраться сложно.
>, а как его знать, если не пишешь еверидай
1) Читай код программ, которыми пользуешься.
2) https://isocpp.org/wiki/faq/
3) https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
> Студентотаа-неосиляторы
Причем тут неосиляторы, я говорю что я не могу так сдать по дефолту, мы еще такого не учили.
ну я бы и сам поискал, просто последний раз что-то серьезное я писал на плюсах три года назад и времени вникать снова у меня нет
>мы еще такого не учили.
Скажи преподу, что батя подложил стандарт языка под подушку, и ты там нашёл std::find.
Если вы учили, то почему ты вообще спрашиваешь? Если тебе дали задание, с которым ты разбираешься, как хочешь - это одно, а если тебе всё разжевали и дали элементарное упражнение - сделай сам.
https://github.com/sosachbot/cppthreadhat/wiki - прочти первые абзацы
>>937208
>что мне сделать чтобы конечному юзеру моего приложения не требовалось тащить vc++ redist?
Как насчёт того, чтобы вколхозить эти DLL в деплоймент пэкэджъ?
А если у меня там не 3 строки, а пара строковых поля и ещё несколько строковых списка, в которых может быть и 1 и 10-20 элементов?
Сейчас я, как в первом посте, объявляю строковую переменную и делаю += полей в неё и тот же += но в for для списков. Ясен хуй, хотелось бы делать это максимально эффективно.
>Причем тут неосиляторы
При том, мой необучаемый, что нормальный студент за те 3 дня что ты тут канючишь, уже давно эту хуйню уже бы сделал. Так что ты и есть каноничный лаба даун, который идет нахуй.
>Затем был С и С++, которые я учил 2 года, к указателям даже не приступил.
И что же ты там 2 года учил? Как буковки на клавиатуре наживать?
>А если у меня там не 3 строки, а пара строковых поля и ещё несколько строковых списка, в которых может быть и 1 и 10-20 элементов?
Тогда есть смысл в том ,чтобы наколхозить свою функцию, которая будет делать объединение любого числа строк за одну операцию.
Тебе понадобится http://www.cplusplus.com/reference/cstdarg/va_list/
>>938465
>Как себя перебороть и вкатиться?
Никак, это судьба. У тебя наверняка с другими делами такие же проблемы.
Если ты ещё не пробовал: поставь задачу, которая интересна ТЕБЕ, и реши её. Задача должна быть такая, чтобы ты смог решить её за обозримое время - без жёсткого матана и ковыряния внутренностей языка.
До него пихали конструктор в private.
Я забил хуй просто временно, у меня еще есть параллельные дела
>>938444
Еще раз говорю что мне такое не подходит потому что оно должно быть по другому.
С этого бы и начинал тогда.
И да, это не лаба
>Тебе понадобится http://www.cplusplus.com/reference/cstdarg/va_list/
Лолчто? Речь про то, что будет быстрее - обычный += к строке или std::stringstream или есть ещё какие методы?
Миня аж трисёт
Тебе уже ответили
> Если надо максимально производительно - то в дестинейшен стринге преаллоцируешь память, и потом туда аппендишь инераторы трех строк
В случае просто объявления объекта Cls obj; вызывается конструктор Cls::Cls() насколько я понимаю. В объявлении массива он вызывается для всех элементов массива или нет?
И поясни что происходит на скрине - почему объявление массива Cls1 вызывает ошибку, а Cls2 - нет?
Когда ты создаешь массив zalupa z[4] то у тебя конструируется 4 обьекта zalupa при помощи дефолтного конструктора.
В варианте с Cls1 ты обьявил кастомный конструктор, соотв-но дефолтного нет, и вызваться он не может
>В варианте с Cls1 ты обьявил кастомный конструктор, соотв-но дефолтного нет, и вызваться он не может
Блять, т.е. если не описан ни один конструктор, то создаётся дефолтный конструктор без параметров (и с пустым телом, наверное), а если описан хоть один конструктор с любыми параметрами - то уже хуй тебе?
Да.
Меня интересуют в первую очередь C++related вопросы, а не вопросы на общее знание нейронок.
Ну ты спросил. С++ настолько обширен, что хер его знает, из какой области они могут задавать вопросы. Если до этого на С++ не программировал, то ловить тебе нечего.
Речь про то, что, объединять все строки за один проход будет быстрее, хуеплёт.
Можешь без функции обойтись, чо. Кучу раз вставляй один и тот же код, как деды делали.
У C++ есть несколько главных свойств:
- полиморфизм
- шаблоны
- стдлиб
Скорее всего, вопросы будут об этих трёх свойствах + какие-нибудь вопросы на знание мелочей языка (но вряд ли упор будет на них).
Это то, что я вижу с дивана.
Что спрашиваю на собесах я:
1. Сложные наследования, порядок создания\удаления обьектов в иерархиях.
2. Ловля эксепшенов, эксепшены из конструктора\деструктора.
3. Итератора + algorithm иногда
4. Что такое тимплиты, зачем, специализации (это мидл+)
5. Сишный пердолинг, типа переполнения знаковых\беззнаковых чисел, адресная арифметика.
6. Немножко про многопоточку. Треды, Атомики, Процессы, Мутексы
Чисто теоретически - прочитав всего Майерса и обе книги Саттера, ты ответишь на 95% моих вопросов.
>Мутексы
я бы нахуй тебя послал, если бы ты меня собеседовал.
расскажи лучше про остальные 5% вопросов.
Ну, проблема в том, что работы ты ищещь, а не я. Если ты будешь посылать нахуй когда тебе что-то не нравится, то "Мы вам перезвоним-тред" твой славный удел. Мы несколько раз брили людей, которые проходили тех собес, но не нравились как люди.
Остальные 5% вопросов придумываются из головы по результатам дискуссии с собеседуемым, если дискуссия с ним возможна.
Т.е. если человек хорошо отвечает на вопросы - дальше идет свободная беседа уже.
я согласен
250000
те у вас проекты завязаны на иерархиях классов, плюс использование исключений
и все это в многопоточной среде?
лол
у нас на фирме просят перевернуть список или сделать сортировку пузырьком на бумажке
80% кандидатов не пишут
остальные пишут со скрипом и ошибками
:D
а я вот не помню сортировку пузырьком, нахуй она нужна? ваша фирма пузырьками сортирует?
я только помню, как визуально выглядят сортировки пузырьком и переворачивание списка.
самая простая сортировка потому что
развернуть однонаправленный список
надеюсь ты не работаешь шестой год senior enterprise c++ programmer
Подскажите компилятор сэ++ для мак ос,не хкод
чтоб из коробки можно было запустить и компилить
если бабка оставила выморочнкую квартирку на васильевском острове, то норм =^_^=
а понаехалы пусть страдают и кучкуются вместе на съемных хатках
пердолиться с крестами помидором за 80 норм? это как нужно себя ненавидеть
clang/LLVM, он как раз вместе с XCode идет, но я думаю, его можно и без IDE поставить.
Скажи спасибо, что есть хотя бы 80.
В других отраслях о таких зарплатах люди даже и не слышали, работают за 15, в лучшем случае 25к/мес.
а че такого?
считай, крестовикам платят в среднем на 30% меньше чем явашникам
и да, в питере на 80 кусков еще поискать надо будет работку
приехал сюда пожить, отбивай тем что есть, а именно наркотой и культурой
советую походить по музеям закинувшись марочкой ;D
но это для эстетов
ну вот я кресты давно дропнул, ибо просветлился, а вот qt активно пользую и смотрю, что даже он более оплачиваем чем чистый плюс.
а мне нравится, лучше чем масквабад
Это азы языка. Если ты не знаешь азов языка - ты ждешь звонка. Если спрашивать предметно по нашим продуктам - там такие технологии, с которыми ты дома не столкнешься вообще никогда. Нет, правда никогда. Т.к. они слишком специфичны для одной конкретной области.
О, вы берете джунов? А какие требования? 30 лет, без во и опыта работы подойдет?
Если пройдешь собеседование и понравишься, почему нет. У нас есть примеры 29летних вкатывальщиков на джунов.
хорош юлить
че, правда высраиваете иерархии классов аля привет 90е как в mfc или vcl? дык никто так уже не делает
исключения - не юзают по факту
многопоточка - опять же нафиг по ней гонять если на проектах не используете..
>30 лет, без во и опыта работы подойдет?
в кресты?
нет
попробуй что-нибудь другое
просто потратишь время (которого и так у тебя не много осталось) на попытки устроится и все
Добавлю к моему посту >>939310. Меня на полном серьезе мучает временами вопрос - как проводить собеседования по С++. Т.к. язык огромный. В итоге я пришел к выводу, что надо спрашивать только о самом языке и стандартной библиотеке. И даже тут меня критикуют. Серьезно, как определить уровень человека?
К нам приходил мужик с 5 годами опыта, не ответивший ни на один вопрос. К нам приходили люди вообще без опыта, ответвившие на большую часть вопросов. И мы их брали. Я обьясняю это тем, лучше взять мотивированного, который сам изучал, но без опыта. Чем хуесоса с 5тью годами, который даже не знает, что С++11 вышел. Первого можно научить, второго нельзя.
Ну в питере зарплаты все-таки выше, чем по стране. А вот в моей 50к мухосрани (Ростовская область) работы вообще никакой нет, думаю в Ростов осенью перекатываться.
все эти языковые ньюансы и пузырьки нахуй не нужны и вылетают из головы если не юзаешь, вон тот мужик с 5 годами точно такой. я бы смотрел на проекты и как бы анон решал некую задачу из продакшена на псевдоязыке.
в дворники конечно же, головняка никакого, можешь в свободное время пилить стартпуп и пить пиво.
Да хуй его знает. Вбил себе тогда в голову, что кодинг не мое. А тут чет опять попробовал и прям интересно стало, втянулся. Сижу вот mit'шные лекции по алгоритмам смотрю.
>>939324
Значит решено - в дворники.
>50к мухосрани
хм, в таких городках только и жить что натуральным хозяйством + мамкина пенсия ;D
>Меня на полном серьезе мучает временами вопрос - как проводить собеседования по С++
>Серьезно, как определить уровень человека?
давать простейшую задачу (на 15-20 строк) делать на бумажке
это необходимость
по языку спрашивать только то что у вас используется на проектах
Ну какие проекты? Я на прошлой работе, видел разрабов по 10 лет опыта, которые просто настолько говноеды, которых я бы даже с джунов гнал ссаными тряпками, насколько они нихуя не знают. Просто научились 10 лет назад шлепать говно, так его и шлепают, не думая. C++11 для них это что-то мистическое, лучше на старой доброй 2005ой студии хуярить, зачем нам новое. Они вообще не знают и не понимают язык, просто знают некие паттерны самопальные (я не про GoF), и их и применяют. Вот по-этому я спрашиваю по языку. А спрашивать про прошлые проекты - я могу тебе столько нафантазировать, что ты лапшу с ушей не снимешь, т.к. все, проекты, которые я делал на работах, я знаю как работают, но сам бы их никогда не написал.
> С++ настолько обширен
При написании нейронок все возможности C++ разом используются или ты просто про сабж ничего не знаешь?
https://ocw.mit.edu/courses/audio-video-courses/#electrical-engineering-and-computer-science
курсы 6.006, 6.046J. Есть еще 6.849, но это уже какая-то специализированная хрень.
Код, связанный с нейронками, это лишь какая-то часть проекта. А как написана вся обвязка - никто не знает. Может быть там поехавший архитектор, которому в детстве вместо сказок читали Александреску?
> https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
> enforcement
Есть какие-то более менее "стандартные" инструменты для этой хуйни, или кто что найдет и прикрутит то и используют, если вообще используют?
Я бы с удовольствием сгонял, но захикковал просить у начальства билеты
__cplusplus == 199711
WTF!
Середина марта где-т
воистину, кто нихуя не умеет, тот читает лекции.
Ты на практике с нейронками на C++ встречался? Привести пример что конкретно там использовалось можешь.
Я просто пытаюсь перевести разговор в конкретное русло, а кукакрекать ВСЕ ЧТО УГОДНО, МНОГО ЧТО ИСПОЛЬЗУЕТСЯ может любой даун вообще в вопросом не знакомый.
это сделает даже ДЦПшник с одним пальцем и одним глазом. Заметь, я не употребил слово "мозг".
Два двумерных массива. Первый содержит буквы алфавита A, B, C, D и т.д Второй координаты типа AA, AB и т.д. В итоге пишешь ты Hello, каждая буква в слове получает свою числовую координату в первом массиве и передает эту же координату во второй массив.
Создай map<Буква,Код>
Если бы ты убрал массив массивов, было бы норм.
'_MSC_VER': value '1900' doesn't match value '1800' ин маин.обй
Ладно бы она была постоянно, а то ёпс и компелирует! В релизе нет, в дебаге есть. Хотя и те, и те либы собраны однохуйственно.
Вот и сейчас она ошибка эта опаньки.... и изчезла после перезапуска студии.
У кого была подобная фигня? И либы, и сам проект собирался под платформу как на пике cykablat
Теперь нет и в дебаге. Усё собирает... без гарантии, что не выскачет снова.
дадат, clean solution каждый раз
могут состоять лишь из 0, 1, 3, 5, 7
самый длинный last 15-тизначный
first на 9 разрядов короче
генерируешь все комбинации из 0, 1, 3, 5, 7
0
1
3
5
7
10
13
15
15
30
31
35
37
их 5 в 15 степени, т.е. 30.5 лярдов. Те с 0 в конце сразу нах.
и с 5 в конце, безусловно, туда же
Take off the last digit and multiply it by 2.
Subtract it from the digits you have left.
If the answer divides by 7 (or is zero), then your original number will also divide by 7!
К хуям генерить 30+ лярдов. Юзай это правила тыпонел
сохраняй %рассово-верные% простые числа как потенциальные делители тех, в ком не уверен.
Ненутыпонел?!
никто не сказал, что это тебе не придётся прогать самому cykablat%%
почему всё через жопу?
почему codeblocks в раздаче 13-й версии, a ne v 16-й?
почему надо САМОМУ ставить г++ и оно пездит про dependences?
>>939772
смышлёный малчег
Через ссл сокет пишу все, как пишет браузер, если я все правильно понимаю.
Скрипты/картинки и прочее не подгружается, сам браузер с выключенным контентом через noscript suite lite прекрасно работает через одну только html страницу.
В ответе на скопированный с браузера запрос вместо хтмл кода страницы идет адекватный респонс, полность аналогичный респонсу для браузера( только Connection: close ), видимо, сервер закрывает, видимо ему что-то не понравилось.
После моей дебаг строчки new data идет бинарная срань вместо html кода. ЧЯДНТ?
>Взоржал с рукожопых дЭбилов
песавших линух, в данном лучае минт
у них в репозиториях 13-й codeblocks
г++ не с пакете, и не встаёт без костылей
Мусор, но бесплатный. Шьвабодка!
омфг, убрал из Accept-Encoding и все заработало, аутентификация прошла успешно
как расчехлить этот gzip? скопировать бинарки в 1.gz и пробить gzip -d 1.gz не проканало.
и да, может быть ты знаешь, как можно из полученного респонса найти скрипт рекапчи, получить вводимую капчу/картинку/аудиокапчу к себе в приложение, решить на стороне любой антикапчей и запихнуть это все дело обратно на сайт? в веб деве огромная куча говна в котором трудно искать полезную информацию
> омфг, убрал из Accept-Encoding и все заработало, аутентификация прошла успешно
> как расчехлить этот gzip? скопировать бинарки в 1.gz и пробить gzip -d 1.gz не проканало.
Подключить библиотеку zlib и распаковать в памяти, манька, я такое в 12 лет делал.
> и да, может быть ты знаешь, как можно из полученного респонса найти скрипт рекапчи, получить вводимую капчу/картинку/аудиокапчу к себе в приложение, решить на стороне любой антикапчей и запихнуть это все дело обратно на сайт? в веб деве огромная куча говна в котором трудно искать полезную информацию
Для начала взять нормальную библиотеку, предназначенную специально для этого. Или ты собрался велосипедить не только хттп, но и парсер дом, и интерпретатор джяваскрипта?
>Linux Mint с флешки
>SDL2
No available video device
Какое же гавно этот ваш линух...
Ох уж эти пустозвоны из интернетов
Разве стоит брать 1 в комбинацию, в условии сказано, что она не простое число.
Так же, почему в данном подходе не учтены числа, содержащие 2 или 223 , например 23 ? 23 - простое число, состоящее из 2 простых чисел, под требования подходит.
getopt
У тебя умственная отсталось?
>2k17
>кресты
необучаемые
Разумеется нихрена стандартного нет, так как даже этот документ - не стандарт.
Стандартный enforcement - это Rust, D и прочее.
>This adds up to quite a few dilemmas. We try to resolve those using tools. Each rule has an Enforcement section listing ideas for enforcement. Enforcement might be done by code review, by static analysis, by compiler, or by run-time checks.
Строка или массив байтов.
>интерпретатор джяваскрипта
Нет, именно этого я и не хочу делать, я хочу сам интерпретатором с той стороны, с которой мне это нужно
привел же пример с капчей - есть скрипт, котоый подгружает картинку или что-то подобное со стороннего сервера, обработать у себя, отправить на сервер с капчей, получить ключ аутентификации и добавить его в пост, если я правильно понял как это все работает.
Mint Cinnamon
> Меня на полном серьезе мучает временами вопрос - как проводить собеседования по С++
ИМХО, нужно спрашивать базовый синтаксис и общие вопросы на адекватность. Если человек заявляет экспертизу в какой-то прикладной области, то мусолить по ней.
На последнем собесе (проходил чисто для фана) дело дошло до того, то начали спрашивать про линуксовые и виндовые ABI -- рассказал; про vtable & type_info (для dynamic_cast) -- рассказал; про то, что будет, если в хэдэре объявить переменную char c = 0 и включить этот хэдэр в два разных cpp, объектники которых слинкуются в общий файл -- тут я выпал. Такая практика явное зло и зачем так делать? Значит, можно и не помнить такие нюансы. А вот спросили же.
Если этот char сделать static, получатся две разные переменные, а так как-то даже хуй знает.
Не скомпилится. Вроде будет пиздеть, что переменная с таким именем уже существует
Причем тут C++?
>>940436
> Найдено 9 вакансий
даже PERL выгоднее учить в 2017 году, чем ваше говно без задач
потому что сокет, я подключаюсь к серверу вк и хочу отправить сообщение, используя куки, а каким образом можно вызвать функцию отправки сообщения и где ее найти я не знаю
да и в целом в с/с++ тредах експерты по всем областям обычно
Что такое mail.send() - это надо JS код вконтача ковырять. Т.к. он скорее всего минифицирован - желаю удачи.
А в варианте С++ - смотри либкурл, для GET\POST запросов. Но анивей, проще это на JS написать, каким-нить говноюзерскриптом
Ставишь burpsuite (или открываешь консоль разработчки - вкладку сетевой активности) и смотришь что браузер шлёт на самом деле. Скорее всего POST запрос с json в теле запроса. Но имхо проще vk api взять https://vk.com/dev/messages.send
В любом случае, как бы это ни было релизовано, невозможно уйти от того, что у браузера есть сокет, и в этот сокет он что-то пишет, чтобы отправить это сообщение.
Где этот js ковырять? Я в вебе ноль полный.
Ну, логично же, что скрыть реализацию от пользователя невозможно, все равно где-то лежит этот скрипт и где-то в нем находится то, что нужно запихнуть в сокет.
Есть подозрение что на пике некая шаблонная js функция, которая генерирует пакеты по любой сигнатуре. Но главный вопрос в том, как эта js функция работает при выключенном js.
>>940456
Да я только в ней и сижу, происходит пост с одним и тем же хеш кодом, вот пост код для различных сообщений, сообщения видны на скрине. Отправляется ключ аутентификации (как я понял) и некое магическое число. Я сомневаюсь что в этом магическом числе записано все сообщение.
Проще раскатать ssl через wireshark уже, но как-то не хочется байтоебить раньше положенного.
>Где этот js ковырять?
Глаза разуть на свой экран и увидеть вкладку дебаггер.
Если как пользоваться и как работает дебаггер программы не знаешь - это уже не проблема незнания js.
Как, блядь, они сокеты не используют?
>вк апи не использует сокетов вообще
Я на хую вертел вк апи, я хочу делать все напрямую.
>>940474
>сли как пользоваться и как работает дебаггер программы не знаешь - это уже не проблема незнания js.
В ТОМ ТО И ДЕЛО, ЧТО ДЖС Я ВЫКЛЮЧИЛ всеми возмоджными способами, аддоны блокируют. Сообщение отправляется непонятным мне способом, через пост отправляется только код аутентификации и МАГИЧЕСКОЕ ЧИСЛО.
>через пост отправляется только код аутентификации и МАГИЧЕСКОЕ ЧИСЛО
Не пизди.
Пикрелейт сниф post реквеста после отправки сообщения с выключенным js.
Все есть.
проще всего собственную криворукость оправдывать МАГИЕЙ.
>код аутентификации и МАГИЧЕСКОЕ ЧИСЛО
Ты вообще дурак и смотришь не туда. Это отправляется не в post, а query string.
Твое сообщение лежит в post data. Туда и смотри
ты непонел, что __cplusplus значет?
с коково хуя компилятор в VS2015 пездит, что он Ц++98, если он на сомом дели Ц++14
>кода, который рассчитан на C++98
это ваще пушка
apache mesos
>с коково хуя компилятор в VS2015 пездит, что он Ц++98
С кокого хуя ты взял, что он говорит, что он для ++98? Откуда ты скопировал этот кусок текста, ослоёб?
std::cout << __cplusplus;
о чём ты, мань?
http://stackoverflow.com/questions/14131454/visual-studio-2012-cplusplus-and-c-11
Обход вроде норм, но суммирование и особенно фильтрование у меня вызывают вопросы. Можно ли лучше? Да, я знаю про boost::fusion, интересно было свои велосипеды написать
http://pastebin.com/QkMrYDRg
>о чём ты, мань?
Оператор == в выводе этой команды откуда, мань?
>ссылка
Взлольнул. https://blogs.msdn.microsoft.com/vcblog/2016/06/07/standards-version-switches-in-the-compiler/ - это не оно?
Тупой пидарас. Ты пишешь:
>VS 2015
>__cplusplus == 199711
Я тебя спрашиваю, откуда ты это взял, ты пишешь:
>std::cout << __cplusplus;
Откуда ==, уёбище? Хочешь проблему описать - опиши точно, без отсебятины.
Флаги для переключения стандартов попробовал?
мамкиному поргамисту пичот :3
// run this in VS2015
if(__cplusplus == 199711){
std::cout << "Microsoft, WTF!" << std::endl;
}
что и этого ты не понел?
Я не понял:
- почему ты не запостил сразу этот кусок кода
- почему ты до сих пор не проверил работу флагов, упомянутых в статье
>этот кусок кода
что из сишного == может быть непонятно в тхреаде про Ц++ facepalm
>>940744
>почему ты до сих пор не проверил
просто иди нахуй
Все вакантные места уже заняты программистами, использующими компилятор от MS, так что я остаюсь.
int main() {
int x = 10;
f(x);
}
При передаче аргумента x я не знаю как он примется в качестве параметра. Это так и надо?
Для сравнения, используя только указатели, я чётко знаю что я передаю и как это принимается:
...
void f(int* y) { }
...
f(&x);
немогу никак разобраться с указателями, как правильно передавать указатель, чтоб выводился массив значений, а не адресов. (строки 6, 22, 47).
Не могу никак вразуметь - указатель, разыменование, взятие адреса.
Прочитай хоть 1 книгу по C++, а потом приходи. Все твои вопросы разжеваны в 100% книг для ньюфагов
Дереференсни указатель cout << *Field. Только если у тебя есть перегруженный оператор<< для этого говна, офк
Chrome dev tools
template<typename T>
class StackElement {
...
T m_data;
};
class Stack {
...
};
StackElement<int> t1(5);
StackElement<char> t2('x');
Stack stack;
stack.push(t1);
stack.push(t2);
Или это надо делать не через шаблоны, а сделать базовый класс для StackElement и для каждого типа наследовать его и писать отдельную реализацию, а в стеке оставить контейнер для базового класса? И какой из этих двух вариков предпочтительнее?
Ну залупу с полиморфизмом если только делать и void*.
Но, обычно, такие задачи значат лишь то, что ты что-то делаешь не так.
Почему не так? Я хочу реализовать контейнер, который будет хранить элементы с содержимым разных типов, но с одной и той же оберткой. Может это как-то называется, или это вообще невозможно в компилируемом языке? В питончике, например, где нет типизации, можно просто любые объекты хуячить в один и тот же массив
Это не питончик, в этом то и проблема. Есть std::tuple, куда ты можешь пихать любые типы, однако все эти типы должны быть разрешены на этапе компиляции
>Я хочу реализовать контейнер, который будет хранить элементы с содержимым разных типов
Пидарас. У меня в Haskell за такое убивают нахуй!
>При передаче аргумента x я не знаю как он примется в качестве параметра. Это так и надо?
f(*y), где y - указатель
А кстати да.
Скорее всего Ужасные Плюсы таки записывают ID типа в заголовок каждого элемента.
Не удивлюсь если и динамические я/п тоже так делают.
Эта хуйня разжевана во всех книгах. Если ты не можешь это осилить - попробуй php
Я писал на джаве и горя не знал, все казалось простым и понятным, включая нетривиальные вещи типа паттернов и тд.
Я читал и Страуструпа, и советы Майерса. Вроде когда читаешь все кажется неплохо. Но когда начинаешь сам писать - это просто сущий пиздец (я не говорю про хелло-ворды и три класса аля фигура-круг-квадрат).
Вот, например, у меня есть класс, типо упрощенный контейнер для BaseClass, в котором весь функционал сделан для работы с типом BaseClass. Но сам BaseClass нихуя не содержит(типо просто интерфейс), а я хочу хранить в контейнере и работать с наследниками BaseClass. И у меня так не получается сделать, ибо все функции энивей вызываются для BaseClass.
Если BaseClass типо интерфейс, то его функции объявляются как виртуальные и при работе с с его наследниками будут вызываться их функции. В чём проблема?
Конечно, ведь ты хранишь в контейнере объекты по значению, а не по указателю. То, что ты сделал, называется "срезка". Храни в контейнере std::shared_ptr'ы на свои объекты, если тебе нужен именно контейнер, содержащий указатели на класс-интерфейс.
И чем реализация подобного на плюсах отличается от джава реализации, кроме необходимости объявить функции виртуальными? Не совсем ясно что ты имеешь ввиду под "нормальным" компилятором, и что именно тебя заставляет писать на плюсах, а не джаве - но есть вариант что никакой компилятор джаве не поможет, а все объясняется именно "эти блять конструкторы копирования,константные r-ссылки на константные данные, операторы равенства, виртуальные декструкторы".
Такс, похоже ты прав. Т.е. если в контейнере я заведу массив указателей на базовый класс, то каждый раз будет вызываться нужный метод унаследованного класса, даже несмотря на то, что указатели на базовый?
Отличается тем, что там есть ебучий интерфейс и нет указателей/ссылок. Я могу в контейнере создать лист с типом интерфейса, а пихать туда наследником и для каждого наследника будут вызывать его функции.
Да, если все правила полиморфизма соблюдены. Но в 2017-м никто не работает с голыми указателями без особой причины. Используй умные указатели, я один тебе уже назвал.
Алсо, в джава все не POD типы всегда создаются на куче и за ними следит сборщик мусора. В плюсах все типы могут быть созданы как на стеке, так и в куче. Если объект создан на куче, то за его удалением должен следить ты или у тебя будет утечка. Но я и так тебе дохуя разжевал, иди кури мануалы.
>Почему до сих пор не сделали нормального компилятора к джаве
http://www.bitbucket.org/arnetheduck/j2c
>конструкторы копирования,
>константные r-ссылки на константные данные
>операторы равенства
Не пользуйся всем сразу-то.
>виртуальные декструкторы
Делай все деструкторы виртуальными.
>хуево сделанные виртуальные функции
ВРЁТИ.
Я бижала два километра чтобы сказать.
>и чисто виртуальные
Классы с ними — это те же интерфейсы, что и в жаббе.
>множественное наследование
Не пользуйся. Кто тебя зостовляет.
>вполне годное С с классами
ВРЁТИ.
Оно негодное.
В нём не было наследования поведения (т.е. интерфейсов), в нём зато было наследование реализации (классов) и это был такой же ночной кошмар, как в тырпрайзной жаббе, см. Google, "fragile base class".
Я уже разобрался с этой хуйней, спасибо. И да, я в курсе про память в джаве/с++ и шаред/уник птрыи прочую хуету из новых стандартов. Просто я видимо слишком много читал, и слишком мало практиковалсятак-то в тырпрайз хуйне работаю, просто решил воплотить мечту детства - написать свой движок для игр. А так с/с++ учил в универе, даже компилятор свой писал, но тогда как-то новый стандарт никто еще не использовал и все выглядело более-менее понятно
Я завалил банальное простое интервью по скайпу, когда косячил непрерывно онлайн кодя простую программу. Перед этим рекомендую освежить знания по банальной поинтер арифметике, исключениям. Как это все называется из stl. Способы скопировать два массива без подсказок из гугла
Алсо, есть разница между Visual C++ и просто C++? Я слышал, что visual c++ урезан, по сравнению с полными версиями, мол только под CLI собирается и всё такое. Или там есть возможность выбора?
Читаю сейчас книгу Стенли Липмана из ОП поста, вроде все норм. Книга с самого начала вводит в классы и стандартную библиотеку без лишней ебли с Сшной низкоуровньщины. Короч сразу С++.
Полет нормальный. Опыт программирования имеется, книга легко читается.
>есть разница между Visual C++ и просто C++?
Нет, лол. Хотя рекомендую Clion от жыдBrains с компилятором gnu
>Читаю сейчас книгу Стенли Липмана из ОП поста
Тоже читаю ее. Вдобавок начал читать последнюю книгу от дохлого страуса в самого начала, но че-то очень уныло идет.
Так читать надо одну из них. Дочитай Липмана, попрактикуйся а потом почитай что то сложное и более специализированное.
Старуструп 1-2 издание - там мало страниц по сравнению с последними изданиями
>читать последнюю книгу от дохлого страуса
Только уловил тонкоту этого поста и обосрался в голос. Всегда думал что он Страуступ а оказывается от СтраусТруп
ахааххаах)))0
>Хотя рекомендую Clion от жыдBrains с компилятором gnu
А вот почему? Я установил уже себе, но он интуитивно непонятен, поэтому я вернулся в visual studio. В CLion'е даже проект не смог запустить, кнопка run была неактивна, и я в рот ебал разбираться, если разницы нет, а в вижуал студио всё с пол пинка заводится. В чём разница то между компилятором gnu и том, что в VS? Скорость?
Главная фишка CLion'a - это кроссплатформенность и CMake. Т.е. это реально заявка на первую универсальную IDE для всех платформ.
Но увы, пока получилось тормозное java-говнище, кококо, петуханы, 85 гигабайт памяти хватит всем. Ну и парсер там пока сильно хуже, чем в студии. Через пару-тройку лет, возможно, CLion станет неким стандартом индустрии, как и Phpstorm и Pycharm, например.
А пока - близкого ничего к студии в винде нету. Все из коробки, все идеально работает, лучшее автодополнение, лучший дебаггер. Только за дебаггер для ньюфагов - студию надо выбирать в 100% случаях. Никто с этим высером gdb пердолиться не будет
Дык, студия куда менее юзабельное и более тормозное говно.
Хз какие там проблемы с парсером нашёл, цлион умеет из коробки как студия с решарпером (а студия с ним ещё лагучее чистой студии в 3 раза), так ещё и юзабельнее по всем фронтам — сравни хотя бы кейбинды. Попробуй вот в одной и во второй по клавиатуре понавигировать по коду, забиндить что нибудь на колесико или ктрл+м1 в студии, или просто как в одной и второй делается column select — хз как вообще студией можно пользоваться (хотя тут жеж люди на плюсах в 2017 пишут, чо там). Про фичи вроде семантической подсветки вообще нечего сказать.
Вне винды ничего кроме улиона тоже нет — икскод баганное говно не работающее с плюсами почти никак, всякое прыщавое вообще не работает.
Гдб в этом самом лионе работает не хуже чем в студии (он все равно нужен ровно до первой пары шаблонных высеров из буста или как пока кол-во потоков == 1).
Юношеский минимализм — это собранный руками арч с нано на борту, без всяких гуев.
>нано
говноед, есть бажественный вим. алсо, консольный арч с вимом для девелопинга это еба иисечка дающая пасасать всем иде спермобоядям.
>То есть по факту тебе сказать нечего?
По факту я ебал твою мамашу. Никто не пишет на плюсах то что можно сделать на менеджед говне за 5 минут из коробки.
А всякие сложные хуитки на них и пишут, так что иди нахуй
>грепа
именно так, все руками, или ты рефакторишь средствами иде? хотя если у тебя хэлоуворд, то это может и прокатит.
ты плохо оправдываешься, разве твое вижуалстудиосилионговно не ломало тебе проект к хуям при рефакторинге?
>кудкудах
лан отвали
>>941405
В вижуалстудиоговне рефакторинги вообще не работают (как и во всяких кутякреаторях и кдевелопах, цлион единственная хуитка которую я видел в которой можно поменять название поля сразу во всем проекте. Вот такой плюсы хороший язык, для хачкеля легче иде блять написать, срсли).
До тех пор пока тебе нужен редактор с подсветочкой кода и, максимум, доподлнением тегов. Иначе — тормозное говнище с лагами. Там кстати хотя бы треть поагинов под восьмерку с асинками переделали?
Долго до тебя доходило
Это ахуенно
У меня странная хуйня с контекстом выходит: девайсов ноль
Дрова есть и в принципе работает.
Засада вот в чём (см. комментарии)
http://pastebin.com/LcNT5kVR
то есть я передаю из функции, и уже не могу в девайсы.
Если же то, что в функции скопипастить в main, то всё нормуль.
и самое гавное
на ноуте глючит (см. пик)
на другом компе находит девайсы и так через рутину
Юзаю Intel OpenCL SDK
на ноуте, где эта проблема, родной Intel HD 4000
nна другом компе Nvidia GTX 960 и проблемы нет
глюковато как-то. Надеюсь, что я просто где-то наебался.
Чёт проиграл с этого тролленга
class TestNotPassedException : public std::exception {
public:
TestNotPassedException(const char msg) : m_errMessage(msg) {}
virtual const char what() const throw() {
std::cout << m_errMessage;
return m_errMessage;
}
private:
const char m_errMessage;
};
Создаю буффер и пытаюсь кинуть исключение:
std::ostringstream oss;
oss << "Required equal failed: " << #first << " != " << #second << "\n" \
<< "At " << __FILE__ << " : " << __LINE__ << "\n"; \
throw TestNotPassedException(oss.str().c_str());
Исключение вроде как бросается, но сообщение нихуя не выводится, скорее всего очередная еботня со стринг/чар. Что не так? Алсо, если просто передавать oss.str() и сделать конструктор для строки, то энивей нихуя не робит
Обосрешься, если я тебе скажу, что в 2013 версии MSVC не было возможности создавать перемещающие операции по-умолчанию, для копирующих-то `default` работал нормально, а вот на перемещающих операциях отказывался собирать.
В отличии от GCC, например, у компилятора также добавлена туча дополнительных служебных функций, которые предназначены для работы с WinAPI, и, хотя, реализовать это можно с использованием MinGW'шных библиотек и поргированного GCC, все же они гораздо удобнее в применении (если речь идет о WinAPI). Алсо, в компилятор включены функции связывания C++ с C#, который они прозвали CLR, то есть при использовании той же крествоской DLL'ки не придется ебаться с маршаллингом, да и вызовы, как многие говорят, будут быстрее.
Или 0010011011000101 (16 символов)
Кароч кол-во символов всегда кратно 8. Мне надо эту строку раздробить по 8 символов и перевести каждую часть из двоичной записи в буковки, расшифровать эту строку короче. Как это сделать?
У тебя на компе может быть несколько реализаций OpenCL (допустим, для AMD и для Intel).
Посмотри, какую платформу ты забираешь. Возможно, у тебя какая-то mock-платформа, под которой нет девайсов.
Если это единственная платформа вообще, то попробуй накатить официальные дрова с OpenCL sdk.
Освой синтаксис - весь c++03, нововведения c++11 (move-семантика, лямбды, умные указатели, потоки), задрочи <algorithm>.
Затем читай Майерса последовательно, затем Саттера.
К этому моменту ты уже спокойно сможешь идти на джуна.
А когда в продакшен попадешь - уже сам поймешь, как и куда развиваться.
На самом деле все не так сложно, как могло бы казаться. Главное - хуй не забивать.
Добра тебе!
На этом ноуте в гарантией только Intel. И, как я писал, генеральной проблемы, что не находит девайсы нет. Проблема в том, что, передавая собранную скомпилированную program из субрутины, в её context теряются devices. Что-то происходит на выходе из субрутины. Если тот же кусок, что собирает program, держать там, где и юзать, то всё нормально.
Этот способ вытащить контекст и девайсы из уже собранной program я взял с ютуба. И повторюсь, на другом компе проблемы нет. Тоже стоит Intel OpenCL SDK. И даже там материлась, что OpenCL драйвера.
Наверное, не стоит замарачиваться на эту тему, а делать по канону. Я в OpenCL первые выходные.
>java настолько пиздата
Другой язык с другой сферой применения, твой друг ебанутый шизик, можешь его уебать. Но вообще, для вкатывания джава попроще, поэтому унтерменьши ее больше котируют
Петуханы, там netbeans загрузился!
А если на деле - Джава это кровавый говноэнтерпрайз и уебанский бэкенд сайтов. врагу не пожелаешь
http://codepad.org/sxm2Bc5Y
Вот тебе пример реализации, под свои цели, думаю, сам переделать сможешь.
А, я не так тебя понял.
Тогда фиг знает.
Я всегда весь хост в одном треде делаю, проблем никаких нет.
И я также стану. Смотрю тьюторилы одного брита на ютупе. Съобезьяничал с него. Главное двигаться дальше!
echo 'alias java = echo "Exception in thread 'main' java.lang.NullPointerException"' >> ~/.bashrc
Очень советую книжку OpenCL programming guide.
Написана понятно, примеров достаточно, покрывает всё, что нужно.
При этом первая половина - фактически, понятным языком изложенный стандарт. Вторая половина - решение реальных практических задач с полным разбором.
Причем тут жс, сравниваем вроде java и c++. Я не устраиваю срач, просто констатирую факт. у меня жава для работы, а с - для души
Без траленга скажите, какие задачи под джабу?
Под кресты и думать не надо: графика, симуляция, opencl, opencv и прочие ништяки
А джава что даёт кроме костыльной кроссплатформенности?
Что сложного?
Две функции - для превращения символа в массив и обратно.
В первом случае мы смотрим значение каждого бита (через побитовое И) и пихаем в нужную ячейку.
Во втором - ставим каждый элемент массива на нужное место в символе через сдвиги.
Сдвиги и побитовые операции в школе проходят.
Как минимум весь тырпрайз на нем, иногда бекенд, ну и андроид. Это основные области, иногда что-то другое на нем пишут(вон майнкрафт на джаве, есть утилитка для отрисовки графов ну и тд)
Блять, ну кароче остальное - это ит отделы в банках, где ты будешь исправлять баги в коде, написанном 30 лет назад, делать запросы к базам данных и подтверждать транзакции. Только ебанутый согласиться делать это в здравом уме, но там обычно дохуя платят, поэтому многие туда и идут.
Есть стурктура structA, внутри которой присутствует массив CArray
если массив задавать через поинтер, то возникают проблемы при присвоении одной переменной типа structA другой переменной того же типа, потому как первая трется (допустим, она задается в классе, который в итоге разрушается, а мне надо из этого класса ее вынуть) и в итоге поинтер указывает на неверный адрес.
но при этом, если массив задать напрямую, то начинается полный расколбас с
function "structA::structA(const structA&)" (declared implicitly) cannot be referenced -- it is a deleted function
Причем тут конструктор, я не очень понял. Возникает такая фигня, например, когда я пытаюсь передать переменную типа structA в виде параметра функции. Причем при создании самой функции компилятор молчит, но при попытке применить эту функцию и запихнуть в нее переменную, тут же ругается.
Что можно вообще в этом случае сделать? memcpy по возможности хотелось бы избежать (к тому же я пробовал и оно не копировало всю память). Как полностью присвоить значения одной переменной другой переменной такого же типа.
Кстати, я еще пытался переписать operator=, но это тоже ничего не дало.
Есть, конечно, вариант написать функцию, которая перенесет значения из одной переменной типа structA в другую по одной переменной, но это попахивает онанизмом.
Где-то видел предложение вместо CArray использовать vector, но не понимаю чем это может помочь, пока еще не пробовал.
std::move
Ты дегенерат? как виртуальная машина Java может быть написана на Java, если языка Java без виртуальной машины которая транслирует его в байткод не существует? JVM написана на С/С++.
Сам язык Java может быть написан на Java, как С# написан на C#.
Что за дебилы со мной на одной борде сидят, епт..
Очередной тупорылый выблядок порвался. Открой википедию и почитай. Нет блять, надо совать свое важное мнение не удосужившись элементарно потратить 2 минуты времени на поиск информации. По твоему все компиляторы с++ написаны на с, а с - на ассемблере?
да, очень похоже, только массивы у меня не константные.
Ладно, попробую все же еще раз переписать оператор.
Спасибо за помощь!
Не оператор, а конструктор копирования (и перемещения).
Запомни, если у тебя в классе есть указатель или массив, то тебе обязательно нужно создать свой конструктор копирования.
Город - DC2.
Ща думаю ливать из своей конторы зп 45 - ни о чем и искать новую работу.
3 года плюсов в проекте с хорошей кодовой базой критичная область, говнокодить там было нельзя, выдрачивали производительность вплоть до ассемблерных вставок, так что умение писать рабочий и читабельный код есть.
Скиллы - c++11/14, Qt,OpenCL, OpenCV, вся периферическая обвязка (bash, cmake/make, valgrind, и т.д.)
Помимо этого относительно неплохо знаю питон (в основном, правда, юзаю numpy/scipy/matplotlib) и хаскель (какой-нибудь трансформер монады могу на бумажке накатать). Если нужно, могу работать с асм х86, хотя его я больше читаю, чем пишу.
С алгоритмами тоже неплохо - структуры данных, графы, деревья, немного компрессии и криптографии - все это есть.
На какую зп могу рассчитывать, куда стоит смотреть? Пока что поглядываю на Яндекс.
Желательно мнение тех, кто реально проводит собеседования или недавно их прошел.
Ну так в том то и дело что при выходе. А у меня по ходу работы в нём куча говна накапливается.
Можешь в unique_ptr все завернуть и, как только объект становится не нужен, юзать reset.
Можешь делать .clear(), правда тогда для векторов ещё и .shrink_to_fit() делать придется.
Чтобы клик-клик и открылось в редакторе
>>942234
нубу уроки дашь?
в формате как тьюториалы на ютупе
сидим в скайпе, разбираем ништяки
я вижу, что ты прогаешь и повторяю
я перекатываюсь из делфи, в студии первый месяц
перетащил свою OpenGL прогу из делфи в кресты с SDL (наверное, под прыщи и не понадобиться)
но это порядочный говно код. Так же привязал Bullet physics для жизни
В конце должен получится клон MMD для анимублядей с элементами motion capture и физики для запила VR
Не, сорри, на такой подход времени нет.
Разве что накидать ссылок и книг - это всегда пожалуйста.
добра тебе, спасибо, что ответил нубу.
В моей конторе в ДС такие как ты могут расчитывать на 120+. Ну, если не пиздишь, конечно.
Visual AssistX поставь и доволен будешь. Там хоты и вполне себе неплохие сниппеты можно накривить.
Разве GCC не использует GNAT для сборки?
На всякий случай отпишусь о результатах.
Выяснил следующее, для массивов, включенных в класс(структуру), заданных напрямую, нужно перегружать оператор присваивания (перегрузки одного лишь конструктора копирования ему оказалось мало), для массивов внутри класса(структуры), заданных указателем - конструктор копирования.
В итоге у меня все получилось, еще раз спасибо анону, который мне подсказал.
Спасибо! Дельное предложение
Поставь Решарпер С++ он попизже, и его можно спиздить как и всю остальную джетбрейнсопарашу через jetbrains.tencent.click
Слышал, что в яндексе даже сеньйоры не шибко много получают. Сомневаюсь, что там ты будешь получать больше, чем сейчас. Но зато получишь опыт работы и твое резюме повысится в цене
Глассдор показывает среднюю 90-110 по питеру для миддла, но я хз, насколько этим цифрам можно верить.
ну, я переехал из мухосранска в ДС в свое время. Не жалею
За бугром в основном востребован либо эмбед, либо high-frequency trading. Обычный general C++ и, тем более, QT - редкость. Либо задрачивай лоулевел и алгоритмы, и перекатывайся. Либо, я хз, джаву выучи, на похожа на qt.
А что на счет геймдев компаний, например? Движки же разные на плюсах пишут. Еще разные амуде-штеуд-нвидиа, по идее там все должны на си писать. Или там своих вкатывальщиков хватает?
Меня недавно в Интел приглашали звали, с возможностью релокации. Но я в embedded.
Ебошь микроконтроллеры, это интересно.
Я не тот анон, что на QT пишет. Я студентота нормального вуза в ДС, в этом году получаю диплом(поиск дефектов в исполняемом коде). Сам дипломчик пишу на чистой джаве. Джава нравится, мб даже бы вкатился и разобрался с фреймворками, но не хочу тратить всю жизнь на тырпрайз хуйню. В свободное время пишу на сишечке/питоне/плюсах разные маленькие программки(позадротил некоторые алгоритмы, писал генерацию лабиринтов, игру жизнь, разные тетрисы-змейки с аски-графикой, телеграм ботов ну и тд). Есть шанс за оставшиеся полгода подзадротить С и попытаться джуном(или хотя бы на стажировку) устроиться за бугор? Алсо, с чего начинать учить микроконтроллеры(asm86/86-64 понимаю, ибо в работе с дипломом приходится много кода читать на асме, устройство процессора примерно представляю)? Последние две недели думаю купить себе малинку.
>Или там своих вкатывальщиков хватает?
Подозреваю, что так. Но ты всегда можешь сделать свою гейдев контору тут.
1. За полгода без опыта за бугор - очень вряд ли. Джунам визы обычно не спонсируют. Разве что если ты покажешь себя как гения индустрии. Иначе - разве что если сам получишь визу с разрешением на работу а сам ты её не получишь.
2. В контроллеры с малинки вкатываться не советую, там больше линукса, чем embedded. Закажи какую-нибудь stm32f4discovery с али (или купи в ближайшем Чип&Дип, если ждать не хочешь), да пиши под неё. Поморгай светодоидами, потом шимом серву покрути, потом на ADC замути электронный термометр. Затем купи всяких датчиков и через взаимодействие с ними изучи стандартные протоколы - UART, I2C, SPI и иже с ними. Этого зачастую достаточно, чтобы получить место.
Ясно, спасибки. А по литературе что посоветуешь? Или как обычно: любая книга + стековерфлоу?
По контроллерам, если честно, книг я не читал.
Как правило, в reference manual всё написано достаточно подробно и логично.
Ну, можешь easyelectronics почитать про концепции в целом, там в общих чертах все описано довольно неплохо.
У решарпера хинты накладываются на стуюиевские, с этим я нихуя не смог поделать. Алсо он люто тормозит, в C# с ним заебись, но на крестах я вообще охуел от того вреда, который он приносит, нежели чем от его пользы.
Думаю скорее не физики, а основ схемотехники, обработки сигналов и тд
В основном основы схемотехники, и то не обязательно. Если понимаешь, зачем тут воткнут резистор, а тут - конденсатор, то все ок.
Проектированием плат заниматься будут инженеры, ты в основном будешь писать код.
ты проёбываешь свою жизнь почём зря
>подскажите шорткат, чтобы в студии прыгнуть к декларации класса, например
В настройки залесь, вкладка keyboard, там огромная куча функций.
Definition - alt+f12 или f12.
спасибо! работает
valgrind называется
сорцы есть в свободном доступе, тебе остается только скомпилировать все это дело под студией
Валгринд использует линуксовые системные вызовы, без виртуалки ты на винде его не запустишь. Тонко.
>>942997
спасибо
привентил вот это
https://msdn.microsoft.com/en-us/library/x98tx3cf(v=VS.100).aspx
Сук, мне уже пичот. В гугле пусто, в мануале на офф сайте - тоже.
Да, хотелось бы юзать вижуал студию, но на данный момент в распоряжении имеется недоноутбук, который улетит в силиконовую долину, как только я попытаюсь запустить тут VS
Хотел креатор, который юзал ещё из под юникса, но установщик предложил скачать 20гб, что меня немного смутило.
Повторюсь, ноутбук полное дерьмо. Он еле держит 4 вкладки в огнелисе, по этому решил ограничиться минималистичной IDE.
Пока железо не закажу, конечно же
>но установщик предложил скачать 20гб
Скачать? Ты читать умеешь?
>Как codelite заставить запрашивать инпут?
Блядский вопрос какой-то. Что такое "запрашивать инпут" по отношению к IDE?
Есть строка русских символов и вектор позиций в этой строке. По этим позициям мне нужно построить слово в юникоде и вывести на консоль. Как это сделать? Почему в моем коде ничего не выводится? Пробовал += и push_back, но структуры данных не заполняются и ничего не выводится.
https://ideone.com/sjPYpe
>>943286
Не пони. В конце функции main я конвертирую вектор позиций в строку, а потом вывожу эту строку, но на экране нет ничего. И почему в строке std::wcout << L"sym: " << alpha[code] << std::endl; выводятся позиции, а не символы?
Я тоже залип. В плюсах не новичок, но:
1) https://ideone.com/ePOaJQ - идеоне не осиливает юникод.
2) Эта же шняга не работает и у меня тоже: выводится alphaBEGIN.
Сижу, как баран, и пытаюсь врубиться.
>>943322
Тушите свет, плюсы не умеют печатать вчары сами по себе: http://stackoverflow.com/questions/2493785
То есть, как ты ни извращайся, напечатать вчары ты не сможешь, если фаза луны не та. На SO пишут, что не смогу напечатать символы, которых в локали нет - пиздёж, у меня даже урсские строки не печатает.
Тогда просто поставь вим с кучей плагинов, как раз почувствуешь себя человеком
http://stackoverflow.com/questions/3130407/c-wide-characters-outputting-incorrectly
И ещё пиздец.
Короче: дети, не пишите в wcout на винде, от этого братья умирают.
https://ideone.com/iiXL01 - вот так это работает на ОС здорового человека, НО ТОЛЬКО НЕ НА ВИНДЕ (у меня undefined bahaviour, в консоль пишется:
lol1
lol2
alphaBEGIN
0x516e40
alphaEND
И вместо 0x51 может быть другое число хоть каждый раз.
https://ideone.com/ankAnD - вот так это не работает (не знаю, почему).
Короче: видно, что ты хочешь написать "правильно". Ответ:
- если пишешь под винду, используй WriteConsoleW или что-то там.
- если пишешь кроссплатформенно, используй Qt
Возможно, стоило это изначально написать, а не показывать свой уровень развития?
Стивен Прата - Язык программирования C++ 2012
ну это не /b и C++ подразумевает голову на плечах. По крайней мере, мне так казалось
Все бы ничего, но случается пикрил 1. То есть, как вы догадались, программа запускается, я могу писать, что хочу, но нихуя не происходит, завершить программу могу только нажав ctrl_Z. Прочитал код (пикрил 2 - 5), вроде все нормально, но что-то с ним явно не так.
в плюсах я ньюфаг
Пикрил 5
Забыл написать, что когда пишу просто ./a.out, пишет, что недостаточно аргументов (то есть в этом случае прога работает как надо). Отладочные выводы (putchar('1')) тоже пихал в разные места, выводит только в случае недостатка аргументов строки вызова и только те единички, которые я писал в мэйне до кода, отвечающего за проверку числа аргументов командной строки.
Не понял, что ты этим имеешь ввиду?
Свой компилятор на С: без всяких яков, а сам пишешь фронт(лексер, разбор АСТ дерево), и бек - трансляцию дерева в бинарный код(смотришь как устроены бинарники и по шаблону генеришь свой). В промежуточном этапе делаешь оптимизации и разные распределения регистров и тд. Когда сможешь компилировать любой более-менее сурьезный код, пишешь линковщика. Если скомпилишь стд либ, то на собеседовании охуеют(ну если там не типичные долбоебы-олимпеднике, которые будут спрашивать балансировку красно-черного дерева). Но даже если сделаешь небольшой компилятор(скажем 80% покрытия языка, т.к. С достаточно маленький, то это вполне реально сделать), то все равно норм, заодно разберешься как там все работает.
А так вообще похуй что писать - от любой игры-платформера до рисовальщика графа друзей Впаше. Даже банальный калькулятор можно раздуть до размеров вольфрама(кстати, символьное дифференцирование несложно реализовать, решения некоторых диффуров тоже можно по шаблону запилить ну и тд).
Я бы постеснялся с таким заданием идти в C++ тред и просить помощи. Выглядит так, как будто ты при первой же проблеме кричишь, что ничего не выходит.
Без обид.
p.s. Для подобной задачи действительно нужен класс?
Подходит ли Qt для мобильной разработки? Write once build everywhere действует? Как дела с лицензией? Есть ли нормальные приложения в макете, написанные на Qt?
Цель: написать приложение для android и iOS. React-native не хочу, отдельно под каждую платформу пытались писать, слишком затратно.
Лицензия - LGPL для большинства модулей (проверь).
Write once действует, но в каждой ОС есть свои платформенные плюшки, к тому же есть баги.
https://bugreports.qt.io/browse/QTBUG/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel
>>943613
Вообще совет, на самом деле, дельный. Однако хорошенько подумай, ибо вероятность того, что замахнувшись на компилятор, ты лишь отобьешь себе желание чото ещё кодить, крайне высока. Если всё же решишься - в помощь тебе книга Ахо, Сети, Ульман - Компиляторы: принципы, технологии и инструменты. Написана годно и считается классикой в отрасли.
А вообще я бы советовал чонить сетевое. Простенький HTTP-сервер, например. TCP/IP везде нужно, и если ты покажешь, что умеешь в кресты и работать с сокетами - то это два плюса тебе одновременно. Ну и пишется не так запарно, как компилятор.
Хех, действительно, проебался.
const std::string alpha = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
for (int i = 0; i < alpha.length(); i = i + 2) {
std::cout << alpha << alpha[i + 1];
}
std::cout << std::endl;
Забудь на время wchar и делай в UTF-8
для понимания:хоть там и по 2 чара на букву, это не wchar, а UTF8.
Убедись, что твой сурс сохранён в этой кодировке (save as -> выбрать кодировку UTF8 with signature)
Вообще, с кодировками ты ещё поешь говнеца
Разве не проще вместо указателя использовать переменную на которую он указывает?
> зачем нужны указатели
Они есть в машинных кодах. Такая архитектура процессора. Это не какая-то выдуманная сущность, над которой ебались что-бы ее ввести в язык. Это низкоуровневая хуита, над которой построена небольшая прослойка абстракции (арифметика указателей). Ебаться нужно было чтобы ее скрыть от программиста (но при этом оставить нужный функционал - в первую очередь это низкоуровневые "массивы", и динамически выделяемая память, но не только). А так как при проектировании языка С при выборе из двух вариантов: "ебаться с реализацией" и "нихуя не делать" - в 99% случаев принципиально выбирался второй вариант, то указатели попали в язык. А С++ базировался на С.
>вместо указателя использовать переменную на которую он указывает?
Переменная А и будет содержать указатель (адрес) на то место, где лежит значение.
>Разве не проще вместо указателя использовать переменную на которую он указывает?
Если переменную используют несколько потоков, или переменная - огромный массив, нужно делать копии, да?
Какой профит разделять на два файла (cpp/hpp) против того, чтобы делжать всё в хедере?
1) ты можешь иметь глобальные переменные и функции, которые не видно - помогает поддерживать разделение задач
2) можно компилировать только изменившиеся .cpp-файлы - это быстрее, чем компилировать заново вообще весь код, который инклудит один изменившийся .cpp-файл. Линковка всё равно произойдёт снова, разумеется
3) тебе не нужно будет создавать третий файл для описания интерфейса к либе, которую ты пишешь
спасибо!
>>943858
Зачем вообще в плюсах и си такое разделение? Ни в одном другом языке такого нет. В чём профит?
Профиты я перечислил. Эти же профиты можно было сделать без разделения на два файла, но тридцать лет назад юзерфрендлинесс было никому не нужно.
А сорок лет назад вместо компов вообще тыквы были, так что оптимизировали как могли.
внезапно обнаружил и ctrl+F12
Меня настораживает этот пункт в соглашении LGPL:
>> In case of dynamic linking, it is possible, but not mandatory, to keep application source code proprietary as long as it is “work that uses the library” – typically achieved via dynamic linking of the library. In case of static linking of the library, the application itself may no longer be “work that uses the library” and thus become subject to LGPL. It is recommended to either link dynamically, or provide the application source code to the user under LGPL.
По идее, вся куча нативного и явовского дерьма заворачивается в один общий APK-файл, но подключение библиотек выполняется динамически.
>> The user of an application or device created with LGPL library has to be notified of their rights by providing a copy of the LGPL license text to the user and displaying a prominent notice about using the LGPL library – i.e. it is not allowed to hide the fact the LGPL library is used.
В дополнение еще и вот такое обязательство, то есть в интерфейсе твоей программы должна быть возможность посмотреть, кого ты обязан поблагодарить и за что именно.
Алсо кто бы как ни рекламировал QML, но на деле, куча их компонентов так весело забагованы, что никто даже не спешит их править, новое дерьмо добавляется, а старые ошибки, причем достаточно серьезные исправлять они не спешат. Чего только стоит замусоривание элементов управления.
код покажи что-ли. тут ванг вроде нету
Реквестирую, короч
onMouseXChanged: {
var dx = mouse.x - clickPos.x;
appWidth = appWidth - dx; //здесь он перерисовывает
thisApp.x = thisApp.x + dx;//здесь опять перерисовывает
}
Так вот как я понял моргает потому что сначала он ресайзит ширину окна appWidth - dx, а потом еще смещает положение x окна. Как хитро провернуть это дельце и выполнить все в один момент, чтобы он не перерисовывал лишний раз окно. Гуглил все что мог, внятного ответа не нашел. Если скажите про двойную буферизацию то сразу с примерами реализации
Может быть подсчет количества ссылок на различные объекты?
Подразумевается симуляция бесконечной памяти - ты создаёшь оббое количество объектов, а программа во врем выполнения сама решает, какие их них уже точно-точно никогда не понадобятся.
Удаляются объекты на которые не указывает ни одна ссылка, то есть их больше никак нельзя использовать. В С++ сборки нет, поэтому если ты выделил память под объект то, должен будешь вручную её освободить, или он будет висеть в памяти до самого конца.
При запуске программы пользователю нужно вводить энное количество чисел. Но вместо этого после запуска я вижу окно с Press any key
На ideone можно было во вкладку input засунуть нужные значения и всё, что меня вполне устраивало, но сейчас дальше по книжке работа с классами, где нужно аттачить хеадер, так что хочу всё же разобраться с IDE.
Это CodeLite, btw
> нужно аттачить хеадер
Ничего не нужно. Разбиение на файлы условность для более удобной компиляции больших проектов. Весь код можно вкинуть в один файл и все будет заебись. Такой подход иногда используется для небольших библиотек (header only library). Алсо реализацию функций тоже можно ебашить сразу в определении класса, прямо как в джаве А по вопросу - попробуй найти откомпилированую программу (скорее всего заголовок окна) и запустить из командной строки - возможно твоя IDE делает что-то плохое с стандартным потоком ввода, хотя это странно очень.
Первые строчки мэйна обязаны запрашивать ввод. Пиши багрепорт и жди, пока пофиксят.
Или установи наконец КутэКреатор, который весит вовсе не 20ГБ даже в установленном виде даже с вместе с QT 5.8, как ты говорил, пиздоглаз.
>А нельзя всё делать в одном проекте?
Можно но сложно.
https://forum.qt.io/topic/15202/building-multiple-binaries-in-one-qt-project
http://doc.qt.io/qt-4.8/qmake-project-files.html#project-templates
С другой стороны ничто не мешает тебе сложить их в одну папку. "Проект" - это лишь заумное слово.
А ещё лучше будет взять нотепад++ и с конпелятором через консольку, как в старые добрые(ㆁωㆁ*)
http://pastebin.com/NEjXWMw8
но у меня сегфаулт, в чем проблема? просто изучаю возможности с++, нигде в продакшене такое офк использовать не дадут
у тебя Slicing идет, и вообще та хуйня, что ты пытаешься сделать это UB, т.к. операции с втейблом не определены
Так какой слайсинг, если у объектов нихуя нет, кроме таблицы виртуальных функций? Алсо, почему они не определены? Это же просто куча байт в памяти, я привел к другому типу и уже вроде как не vtable. Точно так же можно получать доступ к приватным полям.
Фу блядь, неужели мозгов не хватило вместо винды и visual studio использовать linux и gcc/clang?
Тебя так беспокоит кто и куда ебётся?
Да вы больны, сударь. хотя это и так ясно, раз ты сидишь итт
Работая с объектами по значению полиморфизм не возможен. При выполнении "Base obj = <хуйня>;" вся хуйня с правой стороны будет приведена к типу Base. Если у функции есть параметр типа Base - все что ты туда засунешь будет приведено к типу Base (если такое приведение возможно, иначе ошибка) - с соответствующими модификациями таблицы vtable - тоесть попытки прочитать таблицу в "ручную" нихуя не дадут.
Чего ты собрался добиться указателем на функцию не ясно (в смысле совсем не ясно, ни единой идеи). Если ты решил что в первых четырех байтах лежит указатель на функцию Test() (что вполне вероятно, на 32 системе) то тебе нужно было кастить его к указателю на функцию с сигнатурой аналогичной Test() (в твоем случае без аргументов) и вызывать ее (без аргументов). Но как упоминалось, даже если ты правильно определишь указатель на виртуальную функцию, это не поможет так как указатель был заменен при приведении объекта к типу Base, так как он передавался по значению.
В твоем случае проблема (скорее всего) в том что твой указатель на функцию указывает куда-то в ебеня (скажем ты прочитал только первые или последние 4 байта восьмибайтового указателя, так как система 64) и ОС пиздит твою программу за попытки получить доступ по адресам которые тебе не выдавались. Либо из-за несовпадения сигнатур функций - честно говоря не знаю что в таком случае будет.
>мозгов не хватило
пердолинг не моё
линухоёбам не хватило мозгов сделать что-то работающее out of the box
Вопрос и про прочие сишные хедеры
Cишные хедеры - deprecated.
Зависит от хедера. Самая очевидная проблема что функции С и С++ по разному линкуются (имеется ввиду name mangling). Поэтому сишные функции нужно оборачивать в exern "C" - твой хедер может ожидать что его решат компилить плюсовым компилятором и добавлять это когда нужно. А может не ожидать и тогда нихуя слинкуется, так как линкер не найдет имена функций в объектном файле библиотеки. Ну и там могут нюансы быть, если не именно stdint.h, а взять какой-то древний хедер. Там разная хуйня может вылезти - к примеру auto это же ключевое слово С, и если на него вдруг наткнуться то неприятно будет, хотя конечно в хедере оно врядли встретится, если его вообще кто-то использовал.
Спасибо, антоша!
Какого хуя выдает ошибку stack smashing detected?
http://ideone.com/h3C8HS
Какого хуя появляется сeгафолт, если я ввожу ./a.out 22:46 26:82, сомнваюсь, что ошибка в ссканфе? Видел программу, где разные типы данных ссканфом считывались в два массива и один из них был целочисленного типа.
http://ideone.com/GPkkfI?
>char time1[8];
>char time2[8];
не забывай, что и на нолик в конце надо байтик памяти. И явно твой if пропускает длинные строки. Там у тебя везде жёсткий &&
и time1, time2 инициализированы мусором, а не zero-terminated string, которые нужны strcat
strcat считается небезопасной. Вот ты с ней и улетел в стек.
>в твоем случае без аргументов
Но ведь все методы имеют первый неявный аргумент - указатель на этот самый объект. Поэтому я и пытался вызвать функцию с адресом искомого объекта
>в первых четырех байтах
У меня sizeof int и sizeof указатель - совпадают(8 байт)
>но у меня сегфаулт, в чем проблема?
Прозреваю, что проблема в том, что vTable в объекте не хранится, а в самом объекте хранится только указатель на vTable.
>не забывай, что и на нолик в конце надо байтик памяти.
Блин, спасибо, не учел.
А то, что длинные строки пропускаются, это нормально, так и надо.
>>945468
Спасибо.
>>945475
Ок, благодарю.
>Блин, спасибо, не учел.
ты не одинок
https://github.com/angrave/SystemProgramming/wiki/C-Programming,-Part-3:-Common-Gotchas#strings-require-strlens1-bytes
Так я же привожу ту хуйню, которая у меня занимает первые 8 байт в объекте к типу указатель на указатель на функцию, которая принимает единственный аргумент - указатель на объект.
Алсо, правильно ли я понимаю, что объект Child хранится в памяти(пусть будет стек) как [vptr:Base:Child], т.е. хранится сначала вптр, потом потроха базового класса, а потом уже все остальное от наследующего класса? В таком случае каст от Child к Base получается простым отбрасыванием части, которая хранит Child, при этом vptr остается тем же.
Ладно, я вроде понял в чем проблема. При вызове функции, вызывается конструктор копирования Base, который создает новую копию, но при копировании сам vptr не копируется, а создается новый для объекта Base. Поэтому даже при вызове виртуальной функции напрямую, вызвалась бы функция для Base. Походу для осуществления такой штуки, нужно определять конструктор копирования, где объект будет тупо по байтам переноситься в новый
Дальше тебе нужно ебаться с поинтерами на функции. Компилятор может оптимизировать вызовы виртуальных функций. В случаях когда возможно гарантировано определить класс объекта во время компиляции то поиска по vtable не происходит и вызывается нужный метод класса. А когда аргумент функции имеет тип класса (а не ссылки или указателя на класс) - то компилятор вправе считать что там находится именно указанный класс (так как все что туда положат должно быть конвертировано в указанный класс).
\x4d
L'a'
42ull
1E-3F
Вот даже упражнение:
"Who goes with F/145rgus?012"
Это мне нужно пиздовать в таблицу АСКИ символов и искать там нужное значение?
А вот: 1024f. Я так понял, что 1024 имеет значение флоат и.... Что дальше и зачем? Или это просто для общего развития?
> Зачем
Чтобы иметь возможность использовать литералы состоящие не только из обычных символов и цифр. С флоатом - могут вызыватся разные функции, если есть перегрузка функций как для флоат, так и для даблов.
Это он обкурился или я что-то пропустил в плане "читабельности кода"?
пример от того же чела
https://github.com/pezy/CppPrimer
Я согласен за примеры. Вообще развивает воображение. Но пихать в for по типу "я у мамки хацкер"....
>pic
кто объяснит, почему под code::blocks без этого не линкуется, а студии как бы пофиг?
Кароч, надо не только glew32 и glew32s в настройках прописать, но и #define GLEW_STATIC в сурсе.
Студия сама прописывает, наверное.
согласен, но... я всё ещё живу надеждой перетащить свой говнокод под линух юзаю SDL
поэтому проверяю, чтобы собиралось и в студии, и в cb
Другая охуенная история, аноны! (<--- см. пик)
Я прав или не прав:
- если мультитхреадед DLL, то на компе должны присутствовать правильные ДЛЛ от микрософта под эти версию шиндовс, не то поем говнеца
- если же мильтитхреадед без нихуя, то линкер приплюсует всю "системную" обмотку к экзешнику и его можно раздавать соседям
Действительно, файл программы вырос в 330кБ до 1.3МБ во втором варианте
Да, кроме
> под эти версию шиндовс
Нужен будет Microsoft Visual C++ X Redistributable, где Х - версия студии, которой ты компилировал.
Если ты, конечно, не использовал новые системные вызовы, которых нет в старой версии Windows. Но это не твой случай, очевидно.
будет тебе холиварить
то есть те же redistributable надо полюбасу, да?
почему делфи может без этой обмотки...
чем мне грозит пунктик на пике? И чому не могу на семёрку сменить?
>то есть те же redistributable надо полюбасу, да?
Сам раскопал.
- либо линковать статически в студии, включив c++ redistributable в экзешник
- либо юзать mingw и прочие гцц
Если он хотел, чтобы тело выполнялось только если текст выведен успешно, нужно было заменить запятую оператором &&.
Не можешь сменить на семёрку потому, что для семёрки пункт 8.1 тоже подходит (даже для не SP1, ЕМНИП).
Пожалуй худший калькулятор, который я только видел. Как ты блять вообще придумал такой дизайн?
Дизайн? Я о нём не думал, просто делал так, как могу по-другому хз как написать, хотя есть идейка с массивами
В MFC при создании приложения с диалоговыми окнами нет настройки, чтобы убрать эту хуету, да и вообще сделать проект пустым.
Поясни?
Так чо, перекат будет иль нет?
Ведь ты каждый день устанавливаешь и удаляешь Студию. Иногда по 2-3 раза в день, да?
Пишу игрушечную базу данных на C++Qt (правда всякие йоба-средства Qt использовать не хотелось бы).
Таблица хранится в файле, в начале файла храниться схема отношения (шапка таблицы с именами и типами полей) и дальше лежат записи.
Так вот, как с записями работу организовывать? Писать отдельные классы для обработки полей разных типов, с общим родительским абстрактным классом?
Это копия, сохраненная 6 мая 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.