М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 14 февраля 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

C++ #64 21 дек, 20:55 1110566 В конец треда | Веб

111 Кб, 1280x72041 Кб, 770x27022 Кб, 952x45432 Кб, 512x512

Вместо шапки — https://github.com/sosachbot/cppthreadhat/wiki
Ответы на все вопросы:
- http://en.cppreference.com/w/
- http://www.cplusplus.com/reference/
Прошлый:
https://2ch.hk/pr/res/1099142.html (М)

Ответы134791459415053161601836518909

22 дек, 09:34 2 1110807

Поясните своими словами за объявление, определение и инициализацию.
Желательно это сделать с точки зрения того что в этот момент происходит с памятью, где что выделяется, куда что записывается и на что начинает указывать.

Как я понимаю:
1. Объявление - это присваивание некоторому адресу в памяти имени переменной
2. Определение - ???
3. Инициализация - записывание исходного значимого для кода значения в область памяти, начиная с адреса, присвоенного этой переменной, до адреса+=длина переменной в байтах.

Ответы1085210862

55 Кб, 766x541
22 дек, 11:40 3 1110852

>>1110807

Ответы10856

22 дек, 11:42 4 1110856

>>1110852
Вернее адрес даже не компилятор считает, а он сам во время выполнения находится, глубина стека, все дела. Угу, так оно и есть, скорее всего - он же не знает через сколько рекурсий ты бедную функцию пропустишь. Не проснулся ещё, извиняй.

22 дек, 11:47 5 1110862

>>1110807
Объявление - это объявление имени, ODR-использовать нельзя (брать указатель на неопределённую функцию или неопределённую переменную, брать размер от неопределённого класса, определять переменные неопределённого класса или включать их в определение другого класса и т.д.).
Определение - определение места хранения / определение тела функции и класса а также определение места хранения всех статических не-инлайн-переменных класса
Инициализация - первое присвоение значения переменной.

>Инициализация - записывание исходного значимого для кода значения в область памяти
Если вкратце - нет.
> начиная с адреса, присвоенного этой переменной, до адреса+=длина переменной в байтах.
Если вкратце, для классов и структур - нет.

Ответы10869

22 дек, 11:50 6 1110863

Если какой-то член нестатический член класса неопределён, то и сам класс не определён.

22 дек, 11:57 7 1110869

>>1110862
> определение места хранения всех статических не-инлайн-переменных класса
Точнее, использовать их до определения нельзя, но отсутствие определения их не вызывает неопределённость класса, вроде.

22 дек, 12:44 8 1110902

Есть ли какая-нибудь функция STL, что б проинициализировать вектор какими-нибудь начальными значениями??
Или единственный способ это создавать цикл, в котором каждый элемент инициализируется по одному?

Ответы10912

sage 22 дек, 12:50 9 1110912

>>1110902
> Есть ли какая-нибудь функция STL, что б проинициализировать вектор какими-нибудь начальными значениями??

Да. Конструктор называется. Одна из его перегрузок - как раз создать вектор в н элементов (первый параметр), инициализировав его каким-то значением (второй параметр). Разумеется, у твоего кастомного типа в таком случае должен быть реализован конструктор без параметров и оператор присваивания.

Ответы10918

22 дек, 12:56 10 1110918

>>1110912
спасибо,
а можно ли инициализировать вектор обычным массиом?

Ответы10933

22 дек, 13:09 11 1110933

>>1110918
Да
https://ideone.com/iTwSLd

Ответы11088

22 дек, 14:57 12 1111000

Анон как сделать чтобы шаблон инстанцировался по дефолтному параметру

https://wandbox.org/permlink/uBXPgXlOg0KbtCkE

Ответы11045

22 дек, 15:55 13 1111045

>>1111000
Дык он же пишет тебе, что не может Func дедуснуть. Дефолт для Функ сделай.

Ответы11056

22 дек, 16:14 14 1111056

>>1111045
Дефолт для параметра или аргумента? Для параметра я не могу пак перед F, поставить а без него не указать специализацию для дефолта. Короче хуйня какая-то выходит, смотрел тут все выводит http://en.cppreference.com/w/cpp/language/template_argument_deduction

Ответы11075

22 дек, 16:42 15 1111075

>>1111056
>смотрел тут все выводит
Там твой случай находится в списке "non-deduced contexts".
> пак перед F, поставить а без него не указать специализацию для дефолта
Дефолтные параметры - это не специализация. Не знаю, что ты там подумал, ты даже не пробовал.
https://wandbox.org/permlink/iG0o15xrIqYJJ8QH

Ответы11092

22 дек, 17:06 16 1111088

>>1110933
а если есть некий массив
int Mas[3] = {1,2,3, 4}
и нужно проинициализировать вектор его элементами массива со второго Mas[1] по 3ий Mas[2] , то как быть?
vector<int> vInt = ??

Ответы11104

22 дек, 17:09 17 1111092

>>1111075
>ResourceType*()
Вот это меня смутило, почему в скобках нет параметров.

Ответы1110411111

22 дек, 17:28 18 1111104

>>1111092
Если у тебя в дефолте Args пустой, то какие там могут быть аргументы? Надеюсь, что ты не удивляешься тому, что параметр пак может быть пустой, так как ты в соседней строчке пишешь <>.
>>1111088
Ranges TS ещё не завезли, так что быть так:
vector<int> vInt (begin(Mas)+1,begin(Mas)+2);
> со второго Mas[1] по 3ий Mas[2]
с как доллар, в как трезубец

Ответы1110911112

22 дек, 17:35 19 1111108

Хотя, нахуй там бегин, там и так можно:
vector<int> vInt (Mas+1,Mas+3);
+3 потому, что второй параметр - это итератор/указатель на следующий за концом, а не на конец.

22 дек, 17:36 20 1111109

>>1111104
>(begin(Mas)+1,begin(Mas)+2)
блин, вот почему не сделать как у людей
Mas[1:3]
в 2017м ебаться с указателями

Ответы12766

22 дек, 17:45 21 1111111

>>1111092
https://wandbox.org/permlink/VQU4FqGymEct5Ncv
Блядь все сделал правильно еще вначале, а компилятор выдавал непонятную хуйню тупо из-за опечатки (было AgrTypes в одном месте вместо ArgTypes). Вот я довен, несколько часов потратил на эту хуйню.

Ответы11154

22 дек, 17:47 22 1111112

>>1111104
Это будет работать только для типов с конструктором без параметров. Короче все, проехали.

Ответы1117211173

22 дек, 18:08 23 1111118

В чем прикол вектора указателей на пользовательский класс??
предположим есть пользовательский класс A
я зарезервировал для такого вектора 4 эмемента и сейчас они проинициализировались чем-то вроде 0000000
vector<A*> vpA(4)
как мне сделать так, что бы эти указатели указывали на реальные объекты класса А
как такое вообще провернуть?

Ответы1112511202

22 дек, 18:26 24 1111125

>>1111118
std::vector<A*> v = { new A, new A, new A, new A };
http://en.cppreference.com/w/cpp/language/aggregate_initialization

22 дек, 19:22 25 1111154

>>1111111
Ах ты пидарасина гет проебал

22 дек, 20:21 26 1111172

>>1111112
Схуяли? При чём тут число параметров у конструктора, если у типа есть копи конструктор?

22 дек, 20:21 27 1111173

>>1111112
Или ты про ограничение вектора говоришь? Тогда зачем ты (или не ты) спрашиваешь про вектор?

22 дек, 21:39 28 1111202

>>1111118
>что бы эти указатели
>что бы
Как же вы заебали!

Ответы11436

22 дек, 21:40 29 1111204

Бамп байтоёбам (уже не совсем) блеать

Какие дела, чо поделываете, как там стандарт новый

Ответы113121131811433

23 дек, 02:33 30 1111312

>>1111204
Уж лучше бы на си кодили

36,8 Мб, webm,
1280x720, 4:53
23 дек, 03:08 31 1111318

>>1111204
>Какие дела, чо поделываете, как там стандарт новый

23 дек, 14:08 32 1111433

>>1111204
Решаю AOC на плюсах, модули проебались до 20 года, до сих пор куча легаси, теперь можно писать
i = i++ + i ;
без UB.

Ответы11454

23 дек, 14:14 33 1111436

>>1111202
Здесь обсуждают строго типизированные языки, а не компот из исторического говна

23 дек, 15:09 34 1111454

>>1111433
>i = i++ + i ;
>без UB
С каких это пор?

Ответы1148811489

23 дек, 17:01 35 1111488

>>1111454
С 17 стандартом.
https://stackoverflow.com/questions/47702220/what-made-i-i-1-legal-in-c17

23 дек, 17:02 36 1111489

>>1111454
А, погоди, я пизжу, i = i++ + i это до сих пор UB.

24 дек, 08:20 37 1111681

Двач, где физически находится статическая, динамическая и автоматическая память?
Правильно ли я понимаю что автоматические переменные (на стеке) находятся в кеше процессора L3?

Ответы1168511693

24 дек, 09:02 38 1111683

Ряяяяя, нужно используя рекурсивные шаблоны нужно реализовать оператор для печати std:tuple:

auto operator<<(std::basic_ostream<Ch, Tr>& os, std::tuple<Args...> const& t)

Помогите дауну, тут в 5- строк должно выходить

Ответы11693

24 дек, 09:19 39 1111685

>>1111681
Не правильно. Грубо говоря, статическая и прочая память программной природы. Кеш процессора же можно сказать аппаратный, он вертел все твои программы и никакого представления стек там или ещё что не имеет.

Поправьте кто, если заблуждаюсь.

Ответы11693

24 дек, 10:52 40 1111693

>>1111681
>Двач, где физически находится статическая, динамическая и автоматическая память?
В адресном пространстве, которое может быть виртуальное и настоящее, а физически данные могут хоть на другом конце шара находитьсяи подгружаться по мере надобности. >>1111685
Часто в процессорах разделяют кэш инструкций и кэш данных, так как одно с другим никогда не пересекается, и можно определить оптимальную технику для кэширования того и другого.
А так - да, кэшу похуй. И уж тем более ничего в кэше не хранится, кэш - исключительно временное хранилище.
>>1111683
1000 рублей и я сделаю.

24 дек, 20:16 41 1111895

Если сразу несколько потоков тормознулись на ожидании свободного мьютекса, то очередность возобновления будет в том порядке в котором они его пытались захватить или нет?

Ответы11911

24 дек, 21:01 42 1111911

>>1111895
Почитай цппреференс. В FIFO нет никакого смысла в недетерминированных условиях.

Ответы11997

24 дек, 22:25 43 1111937

Двощь, ты когда-нибудь контрибутил в Open Source? Думал вкатиться пока новогод, а потом как-то с учёбой и работой комбинировать если будет время. Обязалова-то 0.

Я полуркал за Blender. Лепил как-то разные чайники в этой программе. Код сложный, но можно думаю разобраться. Какие вообще подводные камни?

И самое главное, можно ли потом это использовать как аргумент на собеседованиях?

Ответы1226912301

25 дек, 00:35 44 1111997

>>1111911
У меня поток владеет мьютексом практически постоянно, освобождая его только для того чтобы захватить обратно. Так сделано для перформанса. Иногда воркерам нужно вклиниться в этот промежуток для внесения изменений и с обычным мьютексом они могут ждать до второго пришествия. Нашел https://github.com/yohhoy/yamc/tree/master/include fair_mutex как раз то что нужно.

Ответы11998

25 дек, 00:38 45 1111998

>>1111997
Да и еще, можно было нагородить какие нибудь очереди с cv, но я в мультитрединге еще не оче.

25 дек, 16:03 46 1112184

Нужно ли производить какие-либо пляски при записи одним потоком данных .push ем в queue, и чтениеудалением .popом другим потоком?

Ответы12301

25 дек, 17:36 47 1112222

Подскажите годный компилятор для linux, для kali rolling в частности

Ответы12301

25 дек, 19:43 48 1112269

>>1111937
>Какие вообще подводные камни?
Можешь вырасти как профессионал.
>можно ли потом это использовать как аргумент на собеседованиях?
Да.

25 дек, 20:41 49 1112301

>>1111937
>Какие вообще подводные камни?
Заниматься лучше тем софтом, который интересен, а так - никаких.
>>1112184
Нужно. Потокобезопасность в контейнерах STL только на уровне доступа к элементам.
>>1112222
Кланг, ясен хуй. Моложе, чем ГЦЦ, но перспектив больше.

Ответы123151232612329

25 дек, 20:55 50 1112314

Зачем мы с С++ ебёмся, если за жс платят больше в среднем

Ответы12321

25 дек, 20:56 51 1112315

>>1112301
Спасибо

25 дек, 21:00 52 1112321

>>1112314
Ради того, чтобы не иметь дела со всем этим зоопарком жс и быть подальше от других жс разработчиков хипсторов и пидорасов

Ответы12334

25 дек, 21:05 53 1112326

>>1112301
а есть тутор как установить?

Ответы12329

25 дек, 21:08 54 1112329

>>1112301
>>1112326
всё, нашёл, осталось разобраться

25 дек, 21:13 55 1112334

>>1112321
Собираюсь кстати стать хипстором, штаны подвернуть, смузить пить и т.п., но продолжать писать на с++

какие подводные

Ответы12708

25 дек, 21:15 56 1112338

У нас пара вакансий на 200к+ будут открываться через месяц-другой. И опять никого не найдем, потому-что вокруг одни долбоебы и смузихлебы. Эх, беда..

Ответы123421235012378124001246912703

25 дек, 21:20 57 1112342

>>1112338
если ты тянешь на 200к кресты в рф это значит, что ты тянешь на овердохуя за границей

и зачем спрашивается сидеть

Ответы12344

25 дек, 21:21 58 1112344

>>1112342
Ну, лично я планирую внутри конторы в США перевестись, у нас это возможно.

Ответы12350

89 Кб, 1280x720
25 дек, 21:29 59 1112350

>>1112344
Все правильно делаешь, H1b получить почти невозможно сейчас, L1 изи под пивас раздают.

>>1112338
Мы жс дебила на 3500$ найти не можем который способен объяснить простейшие вещи, без алгоритмов и прочего дрочева, я даже не представляю как тяжело найти плюсовика нормального

25 дек, 22:14 60 1112375

Ерохин уехал в сан франциско как тимлид Эпама, как узнать сколько он получает, а то мамка постоянно меня сравнивает с ним и чмырит

25 дек, 22:16 61 1112378

>>1112338
>опять никого не найдем

так и хорошо, 200к экономии, или перепродаете джунов по цене синьоров

Ответы12381

25 дек, 22:20 62 1112381

>>1112378
Так у нас люди на проект нужны, не могу же я его вдвоем с коллегой писать, когда начальство хочет быстрее

105 Кб, 640x480
25 дек, 22:47 63 1112400

>>1112338
Гюльчатай, послушай...

26 дек, 01:15 64 1112450

хоспаде как же хочется модули

26 дек, 02:41 65 1112469

>>1112338
Пиши требования и вопросы например.

Ответы12527

26 дек, 09:37 66 1112527

>>1112469
3+ года С++, не быть идиотом, разговорный английский.

Желательно: Qt, драйвера под шинду.

Как показала практика прошлого набора, даже просто С++ никто не знает.

Ответы125391254112546

26 дек, 10:17 67 1112539

>>1112527
>драйвера под шинду
Сейчас еще этим кто-то занимается?

Ответы12540

26 дек, 10:23 68 1112540

>>1112539
Как видишь.

26 дек, 10:25 69 1112541

>>1112527
Есть 3 года номинального, но в большей степени на Qt (полноценные пользовательские приложения, многопоточность, работа с сетью и внешними устройствами).Драйверы не писал. Разговорный английский на уровне индуса.
Жаль.

Аноним 26 дек, 10:54 70 1112546

>>1112527
>3+ года С++
вообще не работал прогером, если не считать одной халтурки, пока что только для себя пишу
>не быть идиотом
+
>разговорный английский.
Есть, но не флюэнт. Устная речь небыстрая.
>Желательно: Qt, драйвера под шинду.
Писал халтурку на Qt вперемешку с WinAPI, пользуюсь креатором, как ide. Драйеры не писал, в байтоёбство умею.
>Как показала практика прошлого набора, даже просто С++ никто не знает.
C++ никто полностью не знает, но я хотя бы знаю многое и многое могу объяснить, тем более со стандартом на руках.
ДС.

Ответы12570

26 дек, 13:20 71 1112570

>>1112546
> вообще не работал прогером, если не считать одной халтурки, пока что только для себя пишу
Ну ты же понимаешь, что это сразу отказ, еще на уровне девочки-эйчарки?

Ответы12730

26 дек, 14:01 72 1112703

>>1112338
>И опять никого не найдем, потому-что вокруг одни долбоебы и смузихлебы. Эх, беда..
Да пошел ты нахуй, червь задроченный. Бери тех, кто приходит тратить 8 часой своей жизни в день на твою быдлоработу. Мне, может, вообще кодить не нравится, а хочется зарабатывать уличным музыкантом как в Европе, а приходится писать код на ограниченного задроченного мудака, который еще и носом воротит.

Ответы12709

26 дек, 14:18 73 1112708

>>1112334
От байтоебства может случиться когнитивный диссонанс

26 дек, 14:18 74 1112709

>>1112703
Всем похуй, что тебе там хочется. Либо соответствуй, либо иди нахуй.

5,4 Мб, webm,
1024x768, 5:00
26 дек, 15:01 75 1112730

>>1112570
Да ты охуел.

Ответы12775

26 дек, 16:20 76 1112766

>>1111109
Итераторами

Ответы12774

26 дек, 16:26 77 1112767

Двач, я понять не могу, что конкретно в C++ является compile time, а что run time? Может список какой есть?

Ответы1277212776

26 дек, 16:38 78 1112772

>>1112767
Ты про поведение? Так это надо с примерами, то, что ты просишь - это зубреж, а оно нахуй не надо, ты инженером все-таки решил стать или математиком блять

26 дек, 16:42 79 1112774

>>1112766
Итератор это указатель.

Ответы127841281612828

26 дек, 16:44 80 1112775

>>1112730
Есть фул на ютубе?

26 дек, 16:44 81 1112776

>>1112767
Когда собираешь приложение из исходников - это компиляция (build). Когда запускаешь приложение - это выполнение (run).

26 дек, 16:59 82 1112784

>>1112774
Не обязательно

Ответы12791

26 дек, 17:07 83 1112791

>>1112784
И правда ведь.

172 Кб, 1024x768
26 дек, 17:09 84 1112793

Пилю прогу для анализа звукового сигнала.
Пока есть генератор, модулирующий синус, и заливающий его в звуковую карту через portaudio.
Генератор вызывается, когда portaudio требует коллбеком заполнить очередной буфер кучкой семплов.
При этом нужно еще передать этот сигнал куда-нибудь для отображения графики с формой сигнала, и на последующую обработку (фурье, например).
Графика (уже) выводится через opengl в отдельном потоке, а данные получает из общего буфера (простой std::shared_ptr<std::array<float>>), в который данные кладет главный поток, тем самым колбеком. Никакой толковой конкурентности, время от времени видна гонка данных.

Вопрос в том, как правильно реализовать эти промежуточные буферы, или где взять хорошую готовую реализацию?

Ответы128131283612981

26 дек, 17:49 85 1112813

>>1112793
Такое чтоль пилишь? https://juce.com/doc/tutorial_audio_thumbnail

Ответы12817

26 дек, 17:53 86 1112816

>>1112774
>Итератор это указатель.
Здрасте.
Вот если бы ты сказал, что итератор произвольного доступа это указатель базаров нет, но остальные 4 вида итераторов, не обладают всеми свойствами указателей

Ответы13341

26 дек, 17:54 87 1112817

>>1112813
Не совсем. Делаю дешифратор морзянки. Графика и звук просто для демонстрации что происходит.

Ответы12818

26 дек, 17:55 88 1112818

>>1112817
Шумы фильтруешь небось?

Ответы12825

26 дек, 18:07 89 1112825

>>1112818
Я пока нифига не делаю кроме пищалки и вывода полосочек.

26 дек, 18:13 90 1112828

>>1112774
итератор - это абстракция с перегруженным оператором дереференса и инкремента, деинкремента для bidirectional, и - + для random access.

Указателем итератор является только в сырых массивах

22 Кб, 573x483
26 дек, 18:30 91 1112833

Салют, двач! Помоги тупому учиться. Пытаюсь написать программку для создания динамической структуры, представленной на пикрелейтед. Ссылку нужно осуществить через поля-указатели. Не могу понять как осуществить взаимосвязь средних блоков. Правильно ли я понимаю, что фактически здесь две структуры: бинарное дерево и взаимосвязанные блоки?

Ответы12878

26 дек, 18:35 92 1112835

Поясните за практику расстановки инклудов в файлах. Допустим у меня есть проект из 10+ .cpp и .hpp к каждому из них (кроме main). Во всех cpp/hpp нужны примерно одни и те же либы (в основном из stl). В cmake для удобства я собираю каждый cpp как отдельную статическую либу, хотя по отдельности, да и вообще вне проекта, распространять и использовать их не планирую. Можнонормально ли будет запилить какой-нибудь файл global_include.hpp вообще со всеми необходимыми инклудами внешних зависимостей и инклудить его во все подряд hpp, из которых оно потом будет попадать в cpp? Или нужно в каждом hpp и cpp файле всё заново прописывать? Как всё это вообще удобно и по человечески сделать?

Ответы13080

26 дек, 18:38 93 1112836

>>1112793
>Графика (уже) выводится через opengl в отдельном потоке
Нахуя такой гемморой? Сто лет уже синхронизация есть: https://www.khronos.org/opengl/wiki/Sync_Object

Ответы13081

33 Кб, 581x610
26 дек, 20:15 94 1112878

>>1112833
>программку
Брр.

Не понял что это такое и что из себя должна представлять подходящая структура. Типа, она в каком месте динамическая, в какие стороны динамируется? Можно добавлять блоки во второй ряд? Или вот это чудо стрелками вниз указывает на такие же конструкции? Или две стрелки указывают на ещё один ряд взаимосвязанных элементов по типу второго слоя? Или всё сразу, там что может быть произвольное число чередующихся блоков и слоёв с произвольным количеством элементов в слое?

Ответы12895

45 Кб, 1024x807
26 дек, 20:39 95 1112895

>>1112878
без второго ряда, вниз.

Ответы12897

26 дек, 22:04 96 1112897

>>1112895
Хм, тогда это односвязный список по сути. Нет никакого практического смысла (только если образовательный) делать эти двухсторонние связи указателями, можно просто заменить на три поля, верхнее, левое и правое и добавлять сразу такие блоки.

А ещё у каждого элемента указатели лишь на два объекта. Либо соседний и нижний, либо два нижних. Можно единообразно это делать в виде одной структуры на один блок, а смысл первой и второй ссылки восстанавливать во время обхода этой гусеницы. Но это какое-то извращение. Впрочем, не слушай меня, я тоже только учусь. Но могу попробовать написать это, почему бы и нет.

Ответы13167

27 дек, 02:40 97 1112981

>>1112793
shared_mutex

27 дек, 02:43 98 1112982

Извините за лабы в треде, но я просто уже перепробовал всё, спрашивал у самых разных людей, а преподаватель шлёт нахуй вместо помочь разобраться.

Суть:
Есть файл, в нём квадратная матрица, её нужно с помощью функций fstream считать, потом высчитать её определитель и его значение вывести в другой файл.

https://pastebin.com/3NEtY3Xg

Что не работает:
Не выходит присвоить элементам массива соответствующие значения из файла. Строку "in » arr[j]" легко найти по последнему комментарию.

Аноны, очень надеюсь на вашу помощь. Не хочу попасть на допку из-за одной лабы.

Ответы1299713344

27 дек, 03:27 99 1112997

>>1112982
когда ты берешь строку из стрима - это ссылка на память а strtok модифицирует строку, и в результате кораптишь стрим, тебе надо подругому считать

Ответы12998

27 дек, 03:32 100 1112998

>>1112997
Ого, спасибо, что отовался!
Я просто переделывал это задание из варианта с использованием классических функций C, вот он - https://pastebin.com/uciJ026Q
Так как посоветуешь посчитать размеры матрицы в файле?

Ответы12999

27 дек, 03:43 101 1112999

>>1112998
после подсчета строк надо перемотать файл и взять первую строку, скопировать разбить на токены и посчитать колонки (матрица у теб я всеравно прямоугольная)
вот код (ленивый ты хуй и мать у тебя членодевка, надеюсь ты не сдашь и тебя выгонят)
https://pastebin.com/UZU24MCU

Ответы13012

27 дек, 05:50 102 1113012

>>1112999

Ух ты ж бля, заработало, спасибо тебе огромное!

Да, всё почти так. На самом деле просто сейчас больше времени пошло на дописывание более сложных лаб, но действительно тебе очень и очень благодарен.

Ответы13013

27 дек, 05:58 103 1113013

>>1113012
отсоси, и с новым годом, я бухой и праздники, так бы хер бы чтото смотрел

Ответы13026

27 дек, 09:31 104 1113026

>>1113013
Новогоднее чудо уровня /pr

27 дек, 10:47 105 1113038

Здравствуйте, товарищи.
Мне нужно выделить из строки формата XX-YY-ZZ поочерёдно XX, YY и ZZ и потом их вывести отдельно друг от друга.
Это буду двухзначные числа.
Вроде бы не очень-то и трудно, но я всё никак не найду необходимый инструмент для этого.
Очень прошу, подскажите, пожалуйста, чем для этого нужно пользоваться.

Ответы130501308313096

27 дек, 11:04 106 1113050

>>1113038
data = "XX-YY-ZZ";
cout << data.substr(0, 2);
cout << data.substr(3, 2);
cout << data.substr(6, 2);

27 дек, 12:30 107 1113064

А почему
std::unique_ptr<Gdiplus::Bitmap> gdi_p = std::make_unique<Gdiplus::Bitmap>(hBitmap, NULL);
мне пишет что
Ошибка C2664 "Gdiplus::Bitmap::Bitmap(Gdiplus::GpBitmap )": невозможно преобразовать аргумент 1 из "HBITMAP" в "const WCHAR "

Ответы13068

27 дек, 12:51 108 1113068

>>1113064
Вопрос снят.

27 дек, 13:26 109 1113079

Как считать с текстового файла в кортеж std::tuple<Args...> по соответствующим типам? Я уже 2 дня строю всякое дерьмо и каждый вариант не компилится.

Ответы130991314613332

27 дек, 13:26 110 1113080

>>1112835
Можно, если у тебя именно заголовки стл, или внешних зависимостей, или заголовки которые не планируется часто редактировать, то имеет смысл загнать их в прекомпилированный заголовок. Еще и сборка быстрее станет.

27 дек, 13:29 111 1113081

>>1112836
Чтобы не блокировать окно консолькой, через которую я ввожу сообщения для генерации морзянки.

27 дек, 13:32 112 1113083

>>1113038
Ебани на Boost::Spirit

Ответы13237

27 дек, 13:38 113 1113086

Анон, есть шаблон стека MyStack2,
https://pastebin.com/JrRURsKB
реализованный с помощью односвязного списка,
в реализации оператора =
на строчке 72
возникает ошибка:
'=': cannot convert from 'int ' to 'MyStack2<int>::Node '
почему я не могу создать там новый список, выделив память по указателю на head, я не могу понять,
и еще,

можно ли реализовывать конструктор копирования через оператор присваивания или надо отдельно там все прописывать, потому то объект еще может не существовать для присваивания в него чего-то (здесь я тоже запутался)?
Помоги, плиз

27 дек, 13:55 114 1113096

>>1113038
flex, bison а вообще регекспы например

Ответы13237

27 дек, 14:07 115 1113099

>>1113079
смотри в сторону Cereal, например, или же если ты хочешь раскручивать кортеж вручную, то надо что-то вроде такого https://ideone.com/IIqTJc

Ебаненький пример, но концепция должна быть понятна

52 Кб, 1373x616
27 дек, 15:33 116 1113123

Что здесь может быть не так?
Уже собирал и пересобирал проект и солюшн
особенно мне непонятна выделенная ошибка

Ответы131631316813344

27 дек, 16:17 117 1113146

>>1113079
Args... должны быть известны на этапе компиляции. Т.е. если ты точно не знаешь формат файла - то вообще никак.

27 дек, 16:59 118 1113163

>>1113123
потому что надо смотреть не error list, а build output, там хоть что-то можно разобрать, а вот это для c# петухов

27 дек, 17:06 119 1113167

>>1112897
Это задание из самоучителя, плюс я не пойму как это сделать через указатели, но спасибо за ответ, анон.

Ответы18906

27 дек, 17:08 120 1113168

>>1113123
Сделай #include <iostream>
Очевидно же, блеять!

27 дек, 20:42 121 1113237

>>1113096
>>1113083
в булочную тоже на самолете ездите?

Ответы13344

27 дек, 21:20 122 1113247

Помогите, вот примерный кусок, который хз как обойти. Как в класс CSVParser скопировать поток?

class CSVParser {
std::ifstream file;
CSVParser(!?!?) что в конструкторе?
}

std::ifstream file("test.csv");
CSVParser parser(file);

Вопрос быть может и ебланский, новичек я, хз как такое прогуглить, за конкретизацию уже большое спасибо, мне лишь бы добраться до инфы.

Ответы1328313314

27 дек, 22:51 123 1113283

>>1113247
референс передай
CSVParser::CSVParser(ifstream& ifs)

Ответы1334413374

28 дек, 00:20 124 1113314

>>1113247
class CSVParser {
std::ifstream file;
CSVParser(std::string filename)
: file(filename)
{}
}

CSVParser parser("test.csv");

Ответы13374

28 дек, 01:20 125 1113332

>>1113079
Типо такого? https://wandbox.org/permlink/0PiIDzQIYaH1eILi

28 дек, 01:46 126 1113341

>>1112816
>Вот если бы ты сказал, что итератор произвольного доступа это указатель базаров нет
Нихуя. Итератор может вообще никуда не указывать, а текущий элемент в себе хранить, ты можешь хоть функцию-генератор в рандом аксесс итератор обернуть.

28 дек, 01:56 127 1113344

>>1112982
>а преподаватель шлёт нахуй вместо помочь разобраться.
И КОНЕЧНО ЖЕ ты не сделаешь так, чтобы нахуй пошёл он, верно?
>>1113237
Регекспы - это самый нормальный инструмент для этого. То, что в плюсах нужно объявить ажно три переменных для того, чтобы их использовать (STL) - это проблема плюсов.
>>1113123
Ты хотя бы первые строчки прочти, уёбок. Крмпиляторы плюсов иногда могут высирать кучу бреда из-за одной опечатки.
>>1113283
Это неправильно. ifstream не копируется, он только мувается, поэтому если прям до жопы нужно по ссылке передать, то нужно передавать по рвалью-ссылке, и передавать std::move(файл).
Иначе ты нарушаешь принципы использования ссылок.

Ответы133481337413378

28 дек, 02:05 128 1113348

>>1113344
> Это неправильно. ifstream не копируется, он только мувается, поэтому если прям до жопы нужно по ссылке передать, то нужно передавать по рвалью-ссылке, и передавать std::move(файл).
Ты прав с точки зрения семантики. Но товарищу и так очень тяжело, грузить его мувами и рвэлью перебор, кмк.

28 дек, 02:52 129 1113354

Новичек вкатившийся. Надо захешировать openCV::Mat используя вот этот хэш.

https://github.com/ron4fun/xxHash/tree/master/src/C++
https://github.com/Cyan4973/xxHash/blob/dev/xxhash.h

Функция хэширования принимает следующие объекты
(const void input, size_t length, unsigned int seed);

с seed все ясно -- это для генерации одинаковых хэшей при одинаковом сиде. А вот что есть первые два параметра?
Правильно ли я понимаю, что void input это указатель на адрес в памяти входных значений, а size_t это их длина?
Если так, то что передавать в первый параметр вполне ясно, а вот что передавать во второй? Вернее как узнать, какова длина объекта в памяти?

Ответы1335613372

28 дек, 03:36 130 1113356

>>1113354
> указатель на адрес
штоблядь

Ответы13357

28 дек, 03:41 131 1113357

>>1113356
да, хуйню написал. указатель на объект, вернее.

28 дек, 06:23 132 1113372

>>1113354
>что передавать в первый параметр
Поле data матрицы. Там тупо указатель на данные.
> что передавать во второй
http://answers.opencv.org/question/21296/cvmat-data-size/

28 дек, 06:27 133 1113374

>>1113314
Это очевидно, но это не то решение, что я прошу. Но как буферный вариант, чтобы делать проект дальше походу придется его использовать.

>>1113283
>>1113344
Дальше генерятся итераторы, поле которого этот поток (я, наверное, очень хуевую структуру сделал). Но суть в том, что поток мувается и уходит вообще нахуй из место где я его взял. По-крайней мере я это просто потестил на легких примерах. Мне бы этот поток аналагом глобальной переменной, чтобы я мог считывать.

Std::move не вариант потому что синтаксис от того, что я просил будет отличаться. По заданию именно такую конструкуцию реализовать надо.

std::ifstream file("test.csv");
CSVParser parser(file);

А выходит что CSVParser parser(std::move(file));

Ответы13437

28 дек, 06:56 134 1113378

А я не понял, что не так со ссылками на ifstream. >>1113344

Ответы13437

28 дек, 10:45 135 1113404

Двач, а разве переменные объявленные как static в block scope могут быть не zero-initialization? Иначе я не могу понять эту цитату в скобках.

Variables declared at block scope with the specifier static have static storage duration but are initialized the first time control passes through their declaration (unless their initialization is zero- or constant-initialization, which can be performed before the block is first entered). On all further calls, the declaration is skipped.

Ответы13418

28 дек, 12:09 136 1113418

>>1113404
static int benis;
равно нулю

static int vagoo = calc_vagoo();
calc_vagoo вызывается ровно 1 раз в момент инициализации, далее эта строка считай что "пропускается"

Ответы13431

28 дек, 12:44 137 1113431

>>1113418
Спасибо капитан, я это знал.

Ответы13437

28 дек, 13:18 138 1113437

>>1113374
>Std::move не вариант потому что синтаксис от того, что я просил будет отличаться. По заданию именно такую конструкуцию реализовать надо.
Тогда разве что в структуре указатель хранить, а передавать по референсу.
>>1113378
В плюсах принято следующее ебланство для аргументов функций:
референс - это параметр, который можно изменять и который где-то хранится
конст референс - менять нельзя, может быть временным значением
рвалью референс - параметр, из которого можно забрать ресурс, может быть временным значением. Передать по рвалью-рефу можно только временное значение или с помощью каста или мува (это делают мувом)
конст рвалью референс - нутыпонел

То есть, если ты хочешь хранить в структуре именно ifstream и передавать именно ifstream, нужно послать нахуй весь мир, передавать по ссылке и мувать в конструкторе, забирая ресурс из исходного объекта. Если тебе просто нужно заставить что-то работать, то делай, что хочешь. Если от тебя этого требуют в учебном заведении, лучше сделай так, чтобы это ни от кого не требовали, это маразм и непрофессионализм.
>>1113431
Ты только что спросил, как статическая переменная может быть инициализирована ненулём. Что ты знал тогда и нахуя ты спрашивал?

Ответы13439134451344813459

28 дек, 13:21 139 1113439

>>1113437
Дополню: формально рвалью-референс отличается от референса тем, что первый биндится только к временным значениям, а второй - только к glvalue.
То, что нельзя забирать ресурсы из объекта, переданного по референсу, это соглашение, которое языком не обеспечивается.

28 дек, 13:54 140 1113445

>>1113437
>Ты только что спросил, как статическая переменная может быть инициализирована ненулём. Что ты знал тогда и нахуя ты спрашивал?
>unless their initialization is zero- or constant-initialization, which can be performed before the block is first entered
static int benis; является zero-initialization.

Ответы13448

28 дек, 14:13 141 1113448

>>1113437
>>1113445
Ладно, всё, кажется я понял этот тупизм.
static int benis; - zero-initialization, может инициализироваться до входа в code block.
static int vagoo = calc_vagoo(); - не zero-initialization, инициализируется когда time control passes through their declaration. (хотя почему-то студия всё равно показывает ноль в этой статической переменной при входе в code block, когда даже time control did not pass through their declaration.)

Ответы13802

28 дек, 14:57 142 1113459

>>1113437
Да, до указателя уже сам додумался, но все равно очень благодарен. Странно, что изначально им не воспользовался, что-то меня оттолкнуло, будто кривое-кривое

Ответы13802

32 Кб, 945x149
28 дек, 16:54 143 1113479

>>1110566 (OP)
Ребята нужна помощь. Надо сделать задание пикрил. Сначало просто, потом через указатели. Просто я сделал https://pastebin.com/VKp2QDHi . Анонасы ранее посоветовали заменить Arr[0] на Arr и A на (Arr+i), сказали что это через указатели будет. Я заменил https://pastebin.com/L7C5AW1V . Препод сказала, что это не через указатели. Вопрос, как сделать это задание через указатели. Если можно, то исправив незначительно мой код с первой ссылки, если нет, то напишите пж с нуля программу(но без непонятных функций, мы прошли только if и циклы, больше ничего).

Ответы1348013515135271353413611

28 дек, 16:57 144 1113480

>>1113479
Arr и (Arr+i) конечно же.

Ответы13483

28 дек, 16:59 145 1113483

>>1113480
Бля он звездочки проебывает. В коде правильно стоит.

28 дек, 18:21 146 1113515

>>1113479
Вместо new используй malloc, вместо delete - free.
a тоже замени на звездочку. Возможно, препод придирается

Ответы1351613522

28 дек, 18:22 147 1113516

>>1113515
Имел в виду "а в квадратных скобках"

2,5 Мб, webm,
640x480, 0:13
28 дек, 18:30 148 1113522

>>1113515
>2k18
>c++
>используй malloc

Ответы1352413531

28 дек, 18:35 149 1113524

>>1113522
преалоцированный кеш-пул объектов без вызова конструктора (по запросу)? ммм?

Ответы13525

28 дек, 18:37 150 1113525

>>1113524
>2k18
>Не знать про placement new

Ответы13526

28 дек, 18:41 151 1113526

>>1113525
>без вызова конструктора

Ответы13529

28 дек, 18:41 152 1113527

>>1113479
https://ideone.com/PWombK

Ответы13623

28 дек, 18:44 153 1113529

>>1113526
>буд-то бы malloc вызывает конструктор

Ответы13532

28 дек, 18:47 154 1113531

>>1113522
Я пытаюсь помочь СТУДЕНТУ СДАТЬ ЗАДАНИЕ.
Так что свои вскукареки про 2к18 оставь при себе.
В программе уже есть printf.
Очевидно, что препод застрял в 90-х и спорить с ним будет себе дороже. Надо просто СДАТЬ (и знать, что на самом деле так никто не пишет).

Ответы13536

28 дек, 18:54 155 1113532

>>1113529
в этом и смысл, преалокация без инициализации, вызова конструктора, плейсмент всеравно вызовет конструктор, не говоря про гемор потом удалять такие объекты

Ответы13553

28 дек, 18:58 156 1113534

>>1113479
>мы прошли только if и циклы, больше ничего
Это разве не в 5 клессе проходят? Тогда нахуя ты называешь себя студентом, лол.

28 дек, 19:07 157 1113536

>>1113531
Жирная пидорша блять, вот из-за таких говноедов вроде тебя с пидорашьим мышлением рашкинская индустрия и находится в жопе. Лишь бы сдать, а потом похуй, пляшем, после чего такие программисты лишь могут кнопки жать на кассе в макдональдсе. Посмотри на себя - работаешь в нии или заводе
за 12к, в то время как я, пояснявший преподам за новые подходы, тимлид в крутой компании.
Соси хуй, блять, я ебал тебя в рот.

Ответы1354313545

28 дек, 19:25 158 1113543

>>1113536
Не бомби так либераст

28 дек, 19:38 159 1113545

>>1113536
ты никогда не станешь тимлидом, выебываясь на двачах. Софт скиллов не хватит

28 дек, 20:32 160 1113553

>>1113532
гугли std::allocator, сынок

Ответы13555

28 дек, 20:43 161 1113555

>>1113553
не надо было про new выебываться если не знаешь, дружок

26 Кб, 488x197
29 дек, 00:06 162 1113611

>>1113479

29 дек, 00:26 163 1113623

>>1113527
ппц, не позорился бы..

Ответы13626

244 Кб, 1680x1050
29 дек, 00:28 164 1113625

Платиновый ньюфаг влетает в тредю и спрашивает.
Для начала: я тупой, ненавижу программирование, ничего не слышал об ООП.

Я всю свою короткую прогерскую жизнь писал драйвера и консольные приложения под линукс на Си. Использовал gcc и nano.
Теперь меня пинают в сторону плюсов и винды, отсюда вопросы:
1. Что такое это ваше ООП: классы, наследуемость и прочие фишки. Почему си-шных структур не хватает?
2. Можно ли забить на еблю с вижуал студио на винде и сидеть, максимум, в код блоксе на линупсе и там компилить?
И как вообще программировать кроссплатформенную хуйню? Про использование классических типов данных читал. Библиотеки подключать через #ifdef и всё?
3. Моветон ли на плюсах забить на тамошние скобачки >> и делать по старинке форматированный ввод\вывод?

Ответы1362813633136361380213882

29 дек, 00:29 165 1113626

>>1113623
а, не, норм
извиняюсь

29 дек, 00:32 166 1113628

>>1113625
ответы зависят от того, какой софт будешь писать под винду

Ответы13630

29 дек, 00:34 167 1113630

>>1113628
Эх, а я думал это общетеоретические вопросы. В далекой перспективе - написание программ с openGL с ниебацца оптимизацией.

29 дек, 00:35 168 1113633

>>1113625
на третий вопрос ответ зависит важен ли для тебя type safety ввод-вывод, с++ позволяет это делать

Ответы13635

29 дек, 00:37 169 1113635

>>1113633
Нет, нужна только защита от дурака, не от хакеров.

29 дек, 00:38 170 1113636

>>1113625
на первый вопрос ответ такой: в общем случае возможности с++ по сравнению с си позволяют увеличить уровень абстракции, второе - сделать код типобезопасным

Ответы13637

29 дек, 00:40 171 1113637

>>1113636
>увеличить уровень абстракции
Классы выигрывают у структур? Можно чуть примеров?

Ответы1364213802

29 дек, 00:49 172 1113642

>>1113637
в с++ встроенный динамический полиморфизм через виртуальные методы, в си же приходилось ручками vtable делать
в с++ встроенное наследование, в си приходилось опять же ручками через указатели на структуры делать
в с++ инкапсуляция из коробки, в си опять же трюки со структурами надо было делать
опять же деструкторы-конструкторы есть, заменяют фукнции очистки-инициализации
ну это только по части возможностей ооп, в виде примеров..
можешь подходить с чисто практической стороны, продолжая писать в парадигме структурного программирования которым следовал си, но добавляя удобности с++

Ответы136431364513653

29 дек, 00:53 173 1113643

>>1113642
>можешь подходить с чисто практической стороны, продолжая писать в парадигме структурного программирования которым следовал си, но добавляя удобности с++
Вот примерно этим и хочу заняться. Ладно, пойду ньюфажную книжку по плюсам посмотрю про все эти конструкторы, полиморфизм и прочие вундервафли.

29 дек, 00:54 174 1113645

>>1113642
>в с++ встроенный

это не всегда так круто как рекламируется

Ответы13646

29 дек, 00:57 175 1113646

>>1113645
ну дык чем с++ зато "круты" дак это тем что все его возможности - опциональны
а если есть желание, ты можешь писать такой код какой деды на pdp11 делали, а компилить это будет компилятор стандарта с++17

Ответы1365013651

29 дек, 01:10 176 1113650

>>1113646
Дело ж в чём. ООП или ФП - это парадигмы.
Писать ООП код можно на Си, но это будет очень криво.
Писать ФП код можно на JS, но выглядеть он будет как аутпут purescript'а

29 дек, 01:11 177 1113651

>>1113646
А на ООП языках писать ООП просто удобне.

29 дек, 01:12 178 1113653

>>1113642
в с++ еще метапрограммирование при помощи темплейтов очень важный бонус

29 дек, 03:21 179 1113685

пацаны, перепилите вики
ссылки:
Скотт МейерсЭффективное использование C++2008
Скотт МейерсЭффективное использование STL 2002
Герб Саттер и Андрей АлександрескуСтандарты программирования на С++2008

не работают.

там ещё из энтри-левела что-то не то в ссылке, я в прошлом треде говорил, когда качал, чтоб пару моментов базовых объяснить на работе

Ответы13694

29 дек, 04:49 180 1113694

>>1113685
Эх, щас бы в 2017 по книгам пятнадцатилетней давности знания обновлять

Ответы15884

29 дек, 08:57 181 1113717

Вы тёлок жарите вообще?)

Ответы1372513994

29 дек, 09:23 182 1113725

>>1113717
Я уже полгода как не жарил(

Ответы1372613729

29 дек, 09:25 183 1113726

>>1113725

Слабак. Не жарю вот уже шесть лет, последняя тня, которую жарил 6 лет назад все мозги вынесла. И далее не собираюсь, горжусь этим.

Ответы137281372914724

29 дек, 09:27 184 1113728

>>1113726
>Слабак. Не жарю вот уже шесть лет, последняя тня, которую жарил 6 лет назад все мозги вынесла. И далее не собираюсь, горжусь этим.

Дай догадаюсь, маленький пипир, сам омежка-кун, свалила к другому, устав от отсутствия оргазмов из-за мелкого пипира?

Ответы1382713950

29 дек, 09:29 185 1113729

>>1113726
>>1113725

да вы охуели, мне скоро 25 и я листва, а они тут тянок жарят.

Ответы13741

29 дек, 09:59 186 1113741

>>1113729
Я в 17 с няшей сбросил, со второй второй раз было полгода назад. Сейчас мне 20.

Так что тоже не супер живём.

29 дек, 12:41 187 1113802

>>1113448
>(хотя почему-то студия всё равно показывает ноль в этой статической переменной при входе в code block, когда даже time control did not pass through their declaration.)
С точки зрения языка использование неинициализированной переменной - это UB. Так что что там студия показывает - это её личное дело, использовать это значение в программе ты не можешь.
>>1113459
Так и есть, тащемта: если ты хочешь расшарить объект, то лучше всего делать это с помощью шаред_птра. Сдохнет локальный объект из-за рефакторинга кода, например - будешь тратить время на дебуг.
>>1113625
1. Всего хватает (оба языка Тьюринг-полные), просто код можно написать по-другому и очень часто короче.
Чуть ли не самая важная часть плюсов - RAII.
2. Можно, для *кса есть МинГВ. Олсо, рекомендую Qt Creator (компиляторы подцепишь сам, можно использовать без привязки к Qt).
>И как вообще программировать кроссплатформенную хуйню?
Отделить её от универсального кода и ебашить ифдефы или лучше констэкспр-ифы (C++17).
3. iostreamы нужны для абстракции. Если тебе нужно только в файлы и в стандартные потоки выводить, то сишными функциями ты то же самое напишешь короче, чем на плюсах. (особенно доставляет отсутствие бинарного вывода чисел в стандартной либе плюсов, приходится в bitset преобразовывать)
>>1113637
В плюсах классы и структуры - это одно и то же, только одно по-дефолту публик и наследуется публично.

Ответы13882

29 дек, 13:51 188 1113827

>>1113728
Дай догадаюсь, ты МУЖЧИНА, который ДОЛЖЕН?

Ответы13834

29 дек, 14:12 189 1113834

>>1113827

Я альфа-самец-сениор-девелопер. Ношу модную одежду и солнечные очки, употребляю кокос и езжу на бмв m3.

Ответы13873

29 дек, 16:20 190 1113873

>>1113834
лидер митол группы?

29 дек, 16:43 191 1113882

>>1113802
Спасибо.
>>1113625-кун

29 дек, 21:18 192 1113950

>>1113728
https://www.youtube.com/watch?v=CIndjPdUWjs

Ты где-то видел больших пипиров?

29 дек, 21:20 193 1113951

Есть подобный кусок кода:
class A {};

std::string e;
std::string::iterator it = e.begin();
A func() { // ... };

int main() {
std::cin >> e;
A var = func();
}
Как мне загнать последние три строки в класс B так, чтобы я мог уже в другой части кода, типа
std::cin >> B::e;
A var = B::func();
Пробовал все делать статическим, gcc шлёт на хуй.

Ответы1395514019

54 Кб, 808x721
29 дек, 21:34 194 1113955

>>1113951

23 Кб, 1119x153
29 дек, 21:53 195 1113961

как ебануть в винапи нормальную архитектуру, нихуя не работает, что у них за адские колбеки

error: cannot convert 'boost::_bi::bind_t<boost::_bi::unspecified, int (__attribute__((__stdcall__)) )(HWND__, long int), boost::_bi::list2<boost::arg<1>, boost::arg<2> > >' to 'WNDENUMPROC {aka int (__attribute__((__stdcall__)) )(HWND__, long int)}' for argument '1' to 'WINBOOL EnumWindows(WNDENUMPROC, LPARAM)'
EnumWindows( (boost::bind(&EnumWindowsProc, _1, _2/, hwnds/)), NULL );
^

Ответы139621397713987

29 дек, 21:55 196 1113962

>>1113961
Вот поясните по пацански, что делает bind? Чем он лучше передачи ссылки на функцию или std::function?

Ответы13963

29 дек, 21:57 197 1113963

>>1113962
Переставить местами параметры, вбить в параметр какое-то определенное значенние
попробуй прошарить асинхронную сетку на boost::asio, все сразу поймешь

Ответы13965

29 дек, 22:05 198 1113965

>>1113963
Ну я так понял это как частичное применение?

29 дек, 22:52 199 1113977

>>1113961
Что ты пытаешься сделаешь, наркоман? bind возвращает callable object без параметров. EnumWindows принимает указатель на stdcall функцию.

Ответы13985

29 дек, 23:22 200 1113985

>>1113977
И как поступить?
Время почитать что это такое

Ответы1399214019

29 дек, 23:25 201 1113987

>>1113961
Ты в курсе, что в язык лямбды завезли вместо Bind?
Или ты из тех несчастных, кому нельзя С++11?

29 дек, 23:45 202 1113992

>>1113985
Ты никак не преобразуешь с захватом в обычный указатель. Тебе дали целых 4 (или 8) байт в lParam, кастани их в указатель на свой вектор, это же winapi похуй на типы. А биндить оказывается можно с параметрами через костыли с заглушками

29 дек, 23:46 203 1113994

>>1113717
каждые два дня.

Ответы14696

30 дек, 00:22 204 1114003

Я сейчас задам платину, а вы просто ответьте: Лафор или Липпман больше подойдёт новичку в программировании?

Ответы1400614083

30 дек, 00:43 205 1114006

>>1114003
читай все три из шапки, они друг друга дополняют

30 дек, 01:25 206 1114019

>>1113951
>gcc шлёт на хуй.
Ну, он же только тебя шлёт, вот ты с ним и разбирайся.
>>1113985
Бочку сделать. Лямбду-хуямбду в винапи ты не скормишь, хоть усрись.
>как ебануть в винапи нормальную архитектуру
Используй уже ебанутую, Кутэ, например.

Ответы14023140821452214533

30 дек, 01:32 207 1114021

Олсо, плюсовые лямбды конвертятся в функции с C-линкеджом, если у них нет захватов.

Ответы1402714600

30 дек, 01:33 208 1114023

>>1114019
В Qt есть унификация всего апи? Найди мне EnumWindows

Ответы1402514028

30 дек, 01:42 209 1114025

>>1114023
Так и скажи: "мне нужен винапи без винапи".

30 дек, 01:48 210 1114026

Олсо, сверху уже подсказали, как сделать. Пишешь свою перегрузку EnumWindows, которая принимает лямбду или что там у тебя, а внутри неё пишешь всю эту отсебятину с запихиванием аллаха в лпарам.

30 дек, 01:50 211 1114027

>>1114021
Этот прав, делай так.
Страуструп

30 дек, 01:51 212 1114028

>>1114023
Блядь сделай уже EnumWindows(EnumWindowProc, reinterpret_cast<LPARAM>(&_hwnds). В колбеке назад преобразуешь. Смотри только чтобы вектор не сдох раньше времени, сделай его статиком что ли.

Ответы14031

30 дек, 02:18 213 1114031

>>1114028
Кстати, почему все пишут эти static_cast, dynamic_cast, reinterpret_cast, ведь можно просто ебануть c-cast (LPARAM), зачем это нужно, быстрее? код нагляднее выглядит? у мейерса есть что-то об этом?

Ответы14035140361404714048

30 дек, 02:38 214 1114035

>>1114031
c-cast равнозначен reinterpret_cast'у
все остальные имеют другое значение и эффекты

Ответы14047

30 дек, 02:38 215 1114036

>>1114031
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#es49-if-you-must-use-a-cast-use-a-named-cast

30 дек, 03:57 216 1114047

>>1114035
Нихуя. Страничку цппреференса, в которой это опровергается, найди сам.>>1114031

30 дек, 03:58 217 1114048

>>1114031
Это касты сразным смыслом, Си-каст это солянка из всех пяти (ещё конст и ещё фанкшионал стайл каст вроде).

30 дек, 05:43 218 1114062

std::vector<bool> a = { 0, 0, 0, 0, 0, 0, 0, 0 };
bool b[8] = { 0 };
std::cout << sizeof(a) << sizeof(b);

>40 8
Почему 40?

>inb4 не используй std::vector<bool>
>inb4_2 смотри, как всё реализовано внутри

Ответы140651408115178

30 дек, 05:46 219 1114065

>>1114062
Сам открой цппреференс, сам прочитай про сайзоф и его значение.

Ответы15178

30 дек, 10:10 220 1114081

>>1114062
sizeof a
sizeof b
так илитней

30 дек, 10:14 221 1114082

>>1114019
> Лямбду-хуямбду в винапи ты не скормишь, хоть усрись.
неа, весь винапи сделан на коллбеках
и внезапно как появились лямбды в крестах, можно просто охуенно вызывать винапишные фии, просто по красоте щас это

Ответы14229

30 дек, 10:16 222 1114083

>>1114003
к&r штудируй, все упражнения делай обязательн, над справочной частью медитируй пока каждое предложение не будешь понимать
начинать с крестов - гиблое дело

Ответы14121

30 дек, 13:19 223 1114121

>>1114083
учить С хуевая идея. Еще Катя Грегори об этом рассказывала. Начинать надо с абстракций, и потом углубляться, а никак не байты ебать на втором занятии

Ответы1412814152

30 дек, 13:45 224 1114128

>>1114121
Нехуя. Я тоже начинал в шараге с абстракций - поцкаль, делфи, вот эта вся хуерга. Сдавал все на отъебись не вникая, потому как заниматься программированием не собирался. Все началось когда я лет 7 назад случайно попал на wasm.ru и меня зацепило. Потом был си, потом уже ооп и всякая функциональщина. Последовательно проходить все стадии эволюции гораздо лучше, белых пятен не остается.

Ответы1413414148

30 дек, 14:15 225 1114134

>>1114128
У тебя ошибка выжившего.

30 дек, 15:51 226 1114148

>>1114128
> Потом был си, потом уже ооп и всякая функциональщина
Здорово. Но существует и альтернативный вариант.
Джва года отработал погроммистом на си. Хотел увольняться, осознал, что работы (в ДС2) почти нет нихуя, что зарплата у крестодаунов раза в полтора выше. А перекатываться лень. Ибо нынешние плюсы с сями имеют мало общего, считай, мне нужно вновь ссаным нюфагом с нулевой зарплатой, учить переусложненный язык со стандартом на 1.5к страниц. К черту такое счастье.

Ответы14263

30 дек, 16:36 227 1114152

>>1114121
окей
с каких конкретно "абстракций" следует начинать новичку изучать кресты?

Ответы1416414221

30 дек, 17:21 228 1114164

>>1114152
Изучи сначала хотя бы как реализуется проактор, а потом уже можем и к классам переходить.

Ответы14230

30 дек, 19:52 229 1114221

>>1114152
string и vector

30 дек, 20:23 230 1114229

>>1114082
Про лямбду без захватов я уже написал, ничего больше ты передать не можешь. Ты мне перечишь?

Ответы14522

30 дек, 20:28 231 1114230

>>1114164
ты умными словами не в тему покидаться тут пришел, или что?

30 дек, 22:51 232 1114263

>>1114148
Расскажи больше про работу.
Нраица си за простоту уровня палки. А вот о перспективах ничего не знаю

Ответы1429014462

23 Кб, 500x449
30 дек, 23:48 233 1114290

>>1114263
>о перспективах ничего не знаю

Ответы14387

31 дек, 00:16 234 1114299

Подскажите хорошую книгу по Qt можно на английском.

Ответы14305

31 дек, 00:28 235 1114305

>>1114299
Макс Шлее

Ответы14380

31 дек, 07:00 236 1114380

>>1114305
Этот ебалас, похоже, кроме Qt 4 дальше не ушел, потому что инфа устаревшая. docs.qt.io итак уже содержит кучу простейших примеров и описание всего, что необходимо.

Ответы14442

31 дек, 09:05 237 1114387

>>1114290
Но так же везде, нет?

31 дек, 14:34 238 1114442

>>1114380
https://www.ozon.ru/context/detail/id/31619787/

Совсем тютю?

31 дек, 14:38 239 1114446

Есть где-то подробное описание директивы #define и всех ее возможностей?
А то в книгах только простые упоминания в стиле "как объявить константу но вы так не делайте это устарело".
Однако каждый раз заглядывая в стандартные библиотеки вижу что там вообще все написано вот этими вот дефайнами

Ответы1445114600

31 дек, 14:46 240 1114451

>>1114446
стандарт качай

31 дек, 15:02 241 1114462

>>1114263
Ссаные нии, железячники-байтоебы, жму пинус.
Я болтаюсь где-то между первым и вторым классами, пишу программы, которые по результатам наблюдений в реальном времени пытается подкорректировать движение тела таким образом, чтобы получившаяся матрица ковариаций (то есть некоторая характеристика разброса. Чем меньше, тем точнее твое тело приземлится куда надо) была "маленькой". Такая вот помесь маняматики матстат+теоркиб и байтоебства.

Ответы14577

6 Кб, 875x160
31 дек, 17:11 242 1114522

>>1114019
>Бочку сделать. Лямбду-хуямбду в винапи ты не скормишь, хоть усрись.
>>1114229
>Ты мне перечишь?
пытаюсь разобраться: какие есть проблемы щас по передаче лямб в виде коллбеков в винапи

Ответы1452314600

31 дек, 17:22 243 1114523

>>1114522
хм, получается нельзя лямбды с захватом параметров передавать в winapi, тк такие лямбды не приводятся к указателю на функцию

Ответы14600

31 дек, 17:50 244 1114533

>>1114019
>Бочку сделать. Лямбду-хуямбду в винапи ты не скормишь, хоть усрись.

http://en.cppreference.com/w/cpp/language/lambda

Таки, есть там каст в обычную функцию, но только при условии, что список захвата пустой.

Ответы14600

31 дек, 20:11 245 1114577

>>1114462
Ого, ты серьезный дядя.
А чем можно заниматься за деньги, если нравится копаться в байтах? Драйверы писать да микроконтроллеры программировать?

Ответы14621

31 дек, 20:53 246 1114594

22 Кб, 1037x27062 Кб, 1263x71956 Кб, 1056x573128 Кб, 1272x714

>>1110566 (OP)
помогите мне пожалуйста разобраться с Qt.
Я только начинаю разбираться с Qt. Почти сразу при запуске мне выдаётся эта ошибка на первом скрине. Как мне её исправить? Когда я нажимаю на вкладку "примеры" у меня нет примеров. Когда я пытаюсь создать проект, то написано "отсутствуют подходящие комплекты", когда я нажимаю на "настройки", и выбираю компилятор , то при наведении на жёлтый значок Desktop выводится 2 предупреждения "отладчик не задан" и "В конфигурации CMake не указан путь
к компилятору С++, при заданном верном инструментарии комплекта" и даже когда я нажимаю "применить", комплект не применяется. Помогите мне пожалуйста разобраться с этими ошибками.
У меня установлена Qt Creator 4.5.0-rc1 (4.4.83). Основан на Qt 5.10.0 (MSVC 2015, 32 бита)

Ответы14620

31 дек, 21:03 247 1114600

>>1114446
> и всех ее возможностей?
Какие у неё возможности-то, блядь, кроме замены одного идентификатора на другой, да макроподстановки? Там ещё можно изъебнуться и вызывать макро из макро, а ещё-то что?
>>1114522
>>1114523
>>1114533
Гугли C-linkage. И это, ты жопой читаешь: >>1114021

Ответы14648

41 Кб, 974x780
31 дек, 22:04 248 1114620

>>1114594
>>1114615
Ну вообще идет, просто при установке нужно было выбрать нужный компилятор, который уже настроен для работы с Qt.

Ответы146221465814659

31 дек, 22:14 249 1114621

>>1114577
> за деньги
> Драйверы писать да микроконтроллеры программировать?
Нет, лол.

Ответы14623

31 дек, 22:19 250 1114622

>>1114620
у меня же была ранее установлена Visual Studio 2013. А вот при установке Qt я не помню какой был выбран компилятор.Как мне сделать так чтобы приложение хотя бы создалось?

Ответы14625

31 дек, 22:22 251 1114623

>>1114621
Ну а шо тогда

31 дек, 22:34 252 1114625

>>1114622
Все зависит от того, как ты хочешь использовать QtCreator. Все-таки это полноценная IDE и можно ее использовать без привязки к Qt фреймворку. Для этого можешь использовать уже установленный компилятор от студии. Если же ты решил именно юзать фреймворк, то нужно доустановить настроенный компилятор, как на моем скрине. Чтобы доустановить запусти MaintenanceTool из папки с Qt.

Ответы14631

31 дек, 23:54 253 1114631

30 Кб, 1037x27012 Кб, 200x11364 Кб, 518x583166 Кб, 1270x735

>>1114625
объясни пожалуйста разницу между QtCreator и Qt. Мне нужна Qt5.7. Это фреймворк, то есть библиотека? А QtCreator это IDE?
Мне нужен фреймворк значит. А как исправить эту ошибку и почему у меня нету примеров?
У меня только как на третьем скрине можно выбрать, иначе новый компонент займёт 5 гигов, у меня столько нету. Можно же так установить через tools?
после установки у меня всё равно не создаётся проект, комплект не добавляется, как исправить? и та же ошибка внизу выводится про среду MSVC и MySQL.

Ответы14633

1 янв, 00:33 254 1114633

>>1114631
>объясни пожалуйста разницу между QtCreator и Qt
Qt - фреймворк, т.е. набор функций, классов и т.д. для создания приложений. Он весит в собранном виде ~3,5 Гб (компилятор MinGW).
QtCreator - IDE изначально предназначенная для удобной работы с Qt, потом переросла в полноценную, т.е. можешь к ней прикрутить любой из компиляторов: MinGW, MSVS, Clang, любую библиотеку, например Boost, FLTK, и т.д. или вообще писать на голом C/C++. Он весит ~300 Мб без компилятора.
Как Qt, так и QtCreator можешь собрать сам из исходников, которые можешь скачать поставив галку рядом с пунктом Source (на моем скрине можешь увидеть эту галку), но можешь этого не делать, правда придется, если нужно будет собрать свое приложение со статической линковкой без зависимостей (в нете полно гайдов).
>А как исправить эту ошибку и почему у меня нету примеров?
Скачать сам фрейворк.
>У меня только как на третьем скрине можно выбрать, иначе новый компонент займёт 5 гигов, у меня столько нету. Можно же так установить через tools?
Нет, нельзя. Делать нечего, ищи место под сам фреймворк.

1 янв, 01:53 255 1114648

>>1114600
>Какие у неё возможности-то
Ну так вот это я и хочу узнать.
Я то понимаю что
#define PI 3.14 - константа, но не понимаю по каким правилам определяется тип данных

#define sum(a,b) (a + b) - функция но с своеобразным синтаксисом про который я только сегодня узнал, а какие типы она принимает? а зачем вообще так делать? в чем сила этого дефайна? и почему стандартные библиотеки написаны именно с препроцессорами?

Ответы1465114658

1 янв, 02:02 256 1114651

>>1114648
Сишный препроцессор тупой как валенок - он просто заменит в тексте программы все вхождения на выражение, которое ты определил. Это легко проверить, запустив gcc с ключем -E.
Т.е. твой sum(a, b) будет просто заменен на (a+b). Стандартная библиотека была написана давно, и макросы давали прирост производительности по сравнению с вызовами функций. Сейчас использовать такие макросы - моветон, компиляторы достаточно умны, чтобы генерировать быстрый код, + ты еще получишь строгую проверку типов, чего нет в макросах.

Ответы14652

1 янв, 02:12 257 1114652

>>1114651
Спасибо, теперь понял

1 янв, 05:11 258 1114658

>>1114620
Кому ты пиздишь? Это список дистрибутивов под разные компиляторы.
>>1114648
>#define PI 3.14 - константа, но не понимаю по каким правилам определяется тип данных
Это не константа, это замена идентификатора на текст. Тип 3.14 узнай самостоятельно.
>#define sum(a,b) (a + b) - функция но с своеобразным синтаксисом про который я только сегодня узнал, а какие типы она принимает?
У идентификатора нету типа, блядь.
>а зачем вообще так делать?
Обычно так делали тогда, когда компиляторы не умели инлайнить, и шаблонов не было. Покажи мне макрофункции в твоей СТЛ, их там нет, там есть только дефайны для включения/отключения разного кода и для строковых литералов (С/С++ склеивают только литералы вида "a""b" -> "ab", то есть, если ты хочешь определить литерал, так, чтобы он зависел от других дифайнов, использовать переменную не выйдет).

1 янв, 05:11 259 1114659

>>1114620
И да, прочти текст справа, там так и написано.

1 янв, 05:22 260 1114660

И это, компилятор МинГВ включён в дистрибутив только из-за того, что лицензия совместима, а у МСВС даже редистрибьютабла нет, про лицензию не говорю уже.

1 янв, 16:24 261 1114696

>>1113994
Та не пизди, задрик ;)

1 янв, 18:25 262 1114724

>>1113726
Последний раз жарил 8 лет назад. До сих пор запах гари стоит блядь. Не рекомендую.

1 янв, 18:32 263 1114725

Не могу заставить структурные биндинги дать мне копии, если возвращаемый тип ссылка: я либо получаю всегда ссылки, либо всегда копии. Нахуй так делоть?

Ответы14758

1 янв, 21:07 264 1114758

>>1114725
Вкинь пример.

Ответы14788

1 янв, 21:54 265 1114776

Есть ли разница записывать значение временной константы в поле класса или в простую внешнюю переменную?

Ответы14782

1 янв, 22:14 266 1114782

>>1114776
Область видимости

Ответы14785

1 янв, 22:22 267 1114785

>>1114782
Ну это понятно, а скорость обращения отличаться никак не будет?

Ответы14861

1 янв, 22:32 268 1114787

Жил-был СТРАУСТРУП. Шел обычный, скучный день. СТРАУСТРУП занимался рутинными вещами, такими как ебля своей трехсоткиллограмовой матери в зад. Только успев кончить матери в пердак и вынуть измазанный в говне хуй, СТРАУСТРУП услышал стук в дверь. Не заметив, что его мать умерла от сердечного приступа еще 3 дня назад, он пошел открывать дверь и вышел на веранду. На веранде никого не было. СТРАУСТРУП, было, уже начал подозревать СТЕПАНОВА в очередной подъебке, но вдруг, из под крыльца что-то вылетело и понеслось на него. От перевозбуждения СТРАУСТРУП уронил скрепленнеые скотчем очки на пол и смиренно ждал, что будет дальше. ЛЯМБДА, с огромной скоростью пролетела мима СТРАУСТРУПА, квадратной скобкой отпихнула его и заползла в дом, крепко заперев дверь. ЛЯМБДА ясно дала понять, что она приняла дом в качестве аргумента, но отказывается возвращать функцию, которая принимает ПИЗДЮЛИ в качестве аргумента и возвращает дом. ЛЯМБДА заползла на стул перед компьютером и свернувшись в уютный клубок, зашла на ДВАЧ. СТРАУСТРУП знал ЛЯМБДУ. По крайней мере, это слово он точно слышал, но не знал, что оно значит. Он очень удивился, когда недавно узнал, что ЛЯМБДУ включили в НОВЫЙ СТАНДАРТ, принятый полгода назад. СТРАУСТРУП понял, что надо выгнять ЛЯМБДУ из дома, потому что желание в очередной раз залезть на мамочку было слишком велико. Будучи первоклассным инженером, СТРАУСТРУП начал искать решение проблемы. Для разминки он решил повторить таблицу умножения до 12 на 12. Он 2 часа стоял на одном месте и смотрел в никуда, потея как свинья. Пока он боролся с таблицей умножения, из за угла вышел измазанный в говне АНДРЕЙ АЛЕКСАНДРЕСКУ и осмотрелся. Рядом стояли несколько зданий, включая психбольницу для буйнопомешанных и тюрьму. АНДРЕЙ задумался и понял, что в округе нет ни одного настолько больного и гнилого человека, чтобы продать ему свою книгу. Небрежно посвистывая, АНДРЕЙ удалился. СТРАУСТРУП закончил разминку и начал думать, как прогнать ЛЯМБДУ. Вдруг его осенило. Его дом был скомпилирован последней версией GNU G++, которая поддерживает ЛЯМБДУ. Именно поэтому, ЛЯМБДА и смогла проникнуть к нему в дом. СТРАУСТРУП понял, что ему нужна более старая версия G++, которая не поддерживала ЛЯМБДУ и тогда, при попытке компиляции дома, ЛЯМБДУ выкинет вместе с СООБЩЕНИЯМИ ОБ ОШИБКАХ. Но старую версию было негде взять. СТРАУСТРУП нанял ФУНКЦИОНАЛЬЩИКА СО ШТАНГОЙ за 5 тысяч рублей. Так как компьютера у них не было, ФУНКЦИОНАЛЬЩИК вначале написал на бумажке компьютер в 1 строчку НА ХАСКЕЛЕ:

Computer = Computer

ФУНКЦИОНАЛЬЩИК сожрал бумажку и высрал работающий системный блок с ВОДЯНЫМ ОХЛАЖДЕНИЕМ и предустановленой WINDOWS 7. На компьютере уже был установлен АЛАН ВЭЙК и ХАСКЕЛЛ ПЛАТФОРМ. Корпус был красного цвета, с наклейкой ТУРБО на прозрачной боковой крышке. Затем ФУНКЦИОНАЛЬЩИК написал в 2 строчки старую версию G++:

Compiler :: [C++SourceCode] -> [ExecutableFile]

Compiler source =(Link . Compile) source

СТРАУСТРУП взял исходники своего дома и запустил компиляцию. Компилятор начал дристать СООБЩЕНИЯМИ ОБ ОШИБКАХ. СТРАУСТРУП попытался разобрать первую строчку, но увидев такое, дальше лезть не решился(таблица умножения и так вымотала его):

std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::map<std::basic_string<std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >

Высрав 10 000 СТРОК СООБЩЕНИЙ ОБ ОШИБКАХ, компилятор скончался от ЛЕНИВЫХ ВЫЧИСЛЕНИЙ ПРЯМОЙ КИШКИ и из монитора вылетела ЛЯМБДА. Придерживая круглые скобки квадратными скобками, ЛЯМБДА в ужасе съеблась под ближайший камень. Ей еще долго не захочется принимать и возвращать значения. Довольный СТРАУСТРУП плюнул в руку, чтобы наслюнявить хуй и уже решился залезать на мамочку, но передумал и решил вначале запостить эту историю на ДВАЧ.

1 янв, 22:32 268 1114787

Жил-был СТРАУСТРУП. Шел обычный, скучный день. СТРАУСТРУП занимался рутинными вещами, такими как ебля своей трехсоткиллограмовой матери в зад. Только успев кончить матери в пердак и вынуть измазанный в говне хуй, СТРАУСТРУП услышал стук в дверь. Не заметив, что его мать умерла от сердечного приступа еще 3 дня назад, он пошел открывать дверь и вышел на веранду. На веранде никого не было. СТРАУСТРУП, было, уже начал подозревать СТЕПАНОВА в очередной подъебке, но вдруг, из под крыльца что-то вылетело и понеслось на него. От перевозбуждения СТРАУСТРУП уронил скрепленнеые скотчем очки на пол и смиренно ждал, что будет дальше. ЛЯМБДА, с огромной скоростью пролетела мима СТРАУСТРУПА, квадратной скобкой отпихнула его и заползла в дом, крепко заперев дверь. ЛЯМБДА ясно дала понять, что она приняла дом в качестве аргумента, но отказывается возвращать функцию, которая принимает ПИЗДЮЛИ в качестве аргумента и возвращает дом. ЛЯМБДА заползла на стул перед компьютером и свернувшись в уютный клубок, зашла на ДВАЧ. СТРАУСТРУП знал ЛЯМБДУ. По крайней мере, это слово он точно слышал, но не знал, что оно значит. Он очень удивился, когда недавно узнал, что ЛЯМБДУ включили в НОВЫЙ СТАНДАРТ, принятый полгода назад. СТРАУСТРУП понял, что надо выгнять ЛЯМБДУ из дома, потому что желание в очередной раз залезть на мамочку было слишком велико. Будучи первоклассным инженером, СТРАУСТРУП начал искать решение проблемы. Для разминки он решил повторить таблицу умножения до 12 на 12. Он 2 часа стоял на одном месте и смотрел в никуда, потея как свинья. Пока он боролся с таблицей умножения, из за угла вышел измазанный в говне АНДРЕЙ АЛЕКСАНДРЕСКУ и осмотрелся. Рядом стояли несколько зданий, включая психбольницу для буйнопомешанных и тюрьму. АНДРЕЙ задумался и понял, что в округе нет ни одного настолько больного и гнилого человека, чтобы продать ему свою книгу. Небрежно посвистывая, АНДРЕЙ удалился. СТРАУСТРУП закончил разминку и начал думать, как прогнать ЛЯМБДУ. Вдруг его осенило. Его дом был скомпилирован последней версией GNU G++, которая поддерживает ЛЯМБДУ. Именно поэтому, ЛЯМБДА и смогла проникнуть к нему в дом. СТРАУСТРУП понял, что ему нужна более старая версия G++, которая не поддерживала ЛЯМБДУ и тогда, при попытке компиляции дома, ЛЯМБДУ выкинет вместе с СООБЩЕНИЯМИ ОБ ОШИБКАХ. Но старую версию было негде взять. СТРАУСТРУП нанял ФУНКЦИОНАЛЬЩИКА СО ШТАНГОЙ за 5 тысяч рублей. Так как компьютера у них не было, ФУНКЦИОНАЛЬЩИК вначале написал на бумажке компьютер в 1 строчку НА ХАСКЕЛЕ:

Computer = Computer

ФУНКЦИОНАЛЬЩИК сожрал бумажку и высрал работающий системный блок с ВОДЯНЫМ ОХЛАЖДЕНИЕМ и предустановленой WINDOWS 7. На компьютере уже был установлен АЛАН ВЭЙК и ХАСКЕЛЛ ПЛАТФОРМ. Корпус был красного цвета, с наклейкой ТУРБО на прозрачной боковой крышке. Затем ФУНКЦИОНАЛЬЩИК написал в 2 строчки старую версию G++:

Compiler :: [C++SourceCode] -> [ExecutableFile]

Compiler source =(Link . Compile) source

СТРАУСТРУП взял исходники своего дома и запустил компиляцию. Компилятор начал дристать СООБЩЕНИЯМИ ОБ ОШИБКАХ. СТРАУСТРУП попытался разобрать первую строчку, но увидев такое, дальше лезть не решился(таблица умножения и так вымотала его):

std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::map<std::basic_string<std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >

Высрав 10 000 СТРОК СООБЩЕНИЙ ОБ ОШИБКАХ, компилятор скончался от ЛЕНИВЫХ ВЫЧИСЛЕНИЙ ПРЯМОЙ КИШКИ и из монитора вылетела ЛЯМБДА. Придерживая круглые скобки квадратными скобками, ЛЯМБДА в ужасе съеблась под ближайший камень. Ей еще долго не захочется принимать и возвращать значения. Довольный СТРАУСТРУП плюнул в руку, чтобы наслюнявить хуй и уже решился залезать на мамочку, но передумал и решил вначале запостить эту историю на ДВАЧ.

Показать весь текст

1 янв, 22:33 269 1114788

>>1114758
https://wandbox.org/permlink/ihq55Ff2DVcG2sVp

Ответы14905

2 янв, 00:49 270 1114827

Анончики, выручайте! Нужно получить реальный путь к файлу по имени и директории диска(типа "C:\\"). Есть ли такое в windows.h? Или все же придется прибегать к либам типа буста?

Ответы14842

2 янв, 01:47 271 1114842

>>1114827
Я ничего не понел, что ты хочешь сделоть

Ответы14844

2 янв, 01:51 272 1114844

>>1114842
Вот у нас есть имя файла находящегося по пути например "C:\\papka\\eshepapka\\file.txt". Мы знаем только имя этого файла и букву диска, на котором он находится. Нужно вывести полный путь ("C:\\papka\\eshepapka\\file.txt") этого файла

Ответы14846

2 янв, 01:55 273 1114846

>>1114844
https://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85).aspx

Ответы14857

47 Кб, 728x292
2 янв, 02:36 274 1114857

>>1114846
Какое-то слово в спам листе. Как я понял это не то, что мне нужно

Ответы14863

2 янв, 02:42 275 1114860

Есть ли норм документация по winapi на ру ?

Ответы14896

2 янв, 02:47 276 1114861

>>1114785
Где-то читал на хабре, что чел проводил тесты и выяснил, что статические переменные быстрее переменных в куче. По идее что статические, что глобальные переменные хранятся в главном стеке программы, поэтому одинаковые будут по скорости. Но я не уверен

2 янв, 02:52 277 1114863

>>1114857
https://msdn.microsoft.com/en-us/library/windows/desktop/aa364963(v=vs.85).aspx

Ответы15009

2 янв, 09:30 278 1114896

>>1114860
внезапно на msdn

Ответы14978

2 янв, 10:20 279 1114905

>>1114788
Дык это особенность auto такая: он может добавить ссылочность к типу, но не может убавить её, не придумали ещё такого.

Ответы15012

2 янв, 16:33 280 1114978

>>1114896
Це не ру

Ответы15112

2 янв, 17:42 281 1115009

>>1114863
Большое тебе спасибо, анонче!

2 янв, 17:50 282 1115012

>>1114905
там decltype(auto), само auto как раз может сделать копию

Ответы15112

2 янв, 17:58 283 1115016

Помогите пожалуйста.
Есть вектора векторов:
std::vector < std::vector<unsigned int> > vertexIndices, uvIndices, normalIndices;
Надвектор - это часть тела, например рука. Его подвектора - это номера вершин.
Достаются так:
int matches = fscanf(file, "%d/%d/%d %d/%d/%d %d/%d/%d\n", &vertexIndex[0], &uvIndex[0], &normalIndex[0], &vertexIndex[1], &uvIndex[1], &normalIndex[1], &vertexIndex[2], &uvIndex[2], &normalIndex[2] );

Затем я обращаюсь к конкретной части тела и по порядку заполняю. Я отдельно храню координаты вершин, нормалей текстур.
Пытаюсь разложить и вылетает ошибка сегментации:
vertexIndices[indexer].push_back(vertexIndex[0]); vertexIndices[indexer].push_back(vertexIndex[1]);
vertexIndices[indexer].push_back(vertexIndex[2]);
uvIndices[indexer] .push_back(uvIndex[0]);
uvIndices[indexer] .push_back(uvIndex[1]);
uvIndices[indexer] .push_back(uvIndex[2]);
normalIndices[indexer].push_back(normalIndex[0]);
normalIndices[indexer].push_back(normalIndex[1]);
normalIndices[indexer].push_back(normalIndex[2]);
Что я делаю не так?

Ответы15022

2 янв, 18:16 284 1115022

>>1115016
>int matches = fscanf(file, "%d/%d/%d %d/%d/%d %d/%d/%d\n", &vertexIndex[0], &uvIndex[0], &normalIndex[0], &vertexIndex[1], &uvIndex[1], &normalIndex[1], &vertexIndex[2], &uvIndex[2], &normalIndex[2] );

Ты обращаешься к элементам вектора, размер которого 0.
Либо ресайзи сначала, если знаешь размер, либо сначала в переменную, потом пушбэк.
еще для отладки можно использовать vector.at(idx) - получишь исключение а не сегфолт

108 Кб, 1330x696
2 янв, 19:58 285 1115053

>>1110566 (OP)
помогите мне пожалуйста подключить Qt к базе данных MySQL.
в главном файле .pro я дописываю QT += core gui sql. А в файле исходников main.cpp я пишу
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setUserName("root");
db.setPassword("");
if(db.open())
{
qDebug() << "connected " << db.hostName();
}else{
qDebug() << "Connection FAILED.";
}
ещё я библиотеку libmysql.dll закидываю в plugins/sqldrivers. Но у меня всё равно нет соединения с базой данных, помогите пожалуйста, вот что выдаёт на картинке

Ответы1506815074

2 янв, 20:45 286 1115068

>>1115053
В чём ты пишешь, что это за IDE ?

Ответы15075

2 янв, 21:05 287 1115074

>>1115053
сообщение означает что с Qt плагином все в порядке, но libmysql.dll нет в PATH. Либо добавь ее в переменные среды, либо просто положи в каталог с ехешником твоей программы

2 янв, 21:05 288 1115075

>>1115068
QtCreator

Ответы15097

2 янв, 22:54 289 1115096

Роскомнадзор что-то заблочил, и под раздачу попала страница загрузки Qt и форум. Заебись, блять.

Ответы1509815112

2 янв, 22:57 290 1115097

>>1115075
>QtCreator
Шо VS не уважаем ?

Ответы1510015112

2 янв, 22:59 291 1115098

>>1115096
Формошлепы должны страдать.

Ответы15099

2 янв, 23:01 292 1115099

>>1115098
Байтоеб закукарекал

2 янв, 23:10 293 1115100

>>1115097
Она не кроссплатформенная

2 янв, 23:53 294 1115112

>>1115012
О, точно.
>>1114978
Там русский раздел с переведёнными и машинно переведёнными статьями.
>>1115097
Весь кутэкреатор в инсталляторе 200МБ, GCC последней версии - ещё 200. Студия - гигабайты, манагед-код.
>>1115096
GoodbyeDPI

Ответы1511415116

2 янв, 23:56 295 1115114

>>1115112
> GCC последней версии - ещё 200
Проверил - 50 МБ, разворачивается в 10 раз.

3 янв, 00:00 296 1115116

>>1115112
Я хз, что они в столько гигов пихают, юзаю не более половины

3 янв, 00:54 297 1115126

Поясните, почему VS столько весит?

Ответы151311514515165

3 янв, 01:03 298 1115131

>>1115126
Маки хуйни напихали

3 янв, 01:56 299 1115145

>>1115126
Какая разница? У тебя винт на 80 гигов?

Ответы15179

3 янв, 03:45 300 1115165

>>1115126
VB +C# + куча хлама инструментов

Ответы15166

3 янв, 04:02 301 1115166

>>1115165
Там даже минимум (IDE с компилятором для плюсов) - 5,42 ГБ после установки.

Ответы15168

3 янв, 04:11 302 1115168

>>1115166
>5,42 ГБ после установки
только долбоеб этим говном пользуется.

3 янв, 07:59 303 1115178

>>1114065
>>1114062
Потому что в случае вектора возвращает размер объекта, если ты применишь sizeof к массиву (а именно sizeof(array_name) ), то получишь размер указателя, потому что фактический пишешь sizeof(array_type * ), с вектором так же, ты получаешь от него размер объекта класса.

Ответы15253

3 янв, 08:02 304 1115179

>>1115145
+1
заебали уже ныть, про "затмевающий небеса" объем требуемой памяти на винте

Ответы15180

3 янв, 08:16 305 1115180

>>1115179
Чего ты тут плюсуешь, чепушила блять? Уебывай отсюда чтобы я духу твоего здесь не видел.

Ответы15492

3 янв, 12:42 306 1115226

Можно ли выучить кресты не читая книги, я просто слепой пызда, буквы с лупай читаю и глаза болят (нахуй ваши онлайн чтиво, люблю больше в руках держать, срать и читать и тд)

Ответы1525315443154631549315577

3 янв, 13:21 307 1115253

>>1115178
>то получишь размер указателя, потому что фактический пишешь sizeof(array_type * ),
Наглая ложь.
>>1115226
> я просто слепой пызда, буквы с лупай читаю и глаза болят
Купи очки для чтения/дальнозорких.

Ответы1536115406

3 янв, 16:49 308 1115361

>>1115253
мне с ними не удобно (они есть), линзы пиздец не люблю, всегда проёбываю их

Ответы15551

3 янв, 18:42 309 1115406

>>1115253
Усё, зоебца, чекнул http://www.cplusplus.com/doc/tutorial/program_structure/, вроде тут норм

3 янв, 20:37 310 1115443

>>1115226
ну, быть может, по видеоурокам, но анивей, сомневаюсь

Ответы15551

3 янв, 21:00 311 1115463

>>1115226
Мудила блять, 90% времени ты все равно будешь читать чужой код.

3 янв, 21:47 312 1115492

>>1115180
Рембо, очнись, ты комнатный

3 янв, 21:50 313 1115493

>>1115226
>я просто слепой пызда, буквы с лупай читаю и глаза болят
Какой минус?
Может тебе лучше чем-нибудь другим заниматься, а не программированием?

Ответы15504

3 янв, 22:15 314 1115504

>>1115493
Не, я тип ничем больше не интересуюсь, лучше куплю новые очки, с более удобной формой (были бичёвский, квадратные, неудобные)

4 янв, 00:51 315 1115551

>>1115361
Тогда читай электронную версию, блядь. Пытаюсь натаскаться на плюсы с помощью чтения доков, стаки и написания программ уже пару лет, до сих пор охуеваю от внезапностей.
>>1115443
Видеоуроки программирования - это блядский цирк.

Ответы15568

4 янв, 01:46 316 1115568

>>1115551
Дай полную документацию по плюсам, искал в гугле, а там ток разделы, нету общей или я тупой

Ответы1557015615

4 янв, 01:54 317 1115570

>>1115568
Послушай меня 10 лет крестоопыта - не хуй собачий - чтение документации тебе ровным счетом нихуя не даст. Аллах даровал тебе джитхаб - пиздуй туда, пиши код, делай пулреквесты, читай чужой код в конце концов, а неясные моменты гугли или ищи в той же документации/стандарте.

4 янв, 02:22 318 1115577

>>1115226
>я просто слепой пызда
А как ты программировать собрался?

4 янв, 02:24 319 1115578

Аноны, помогите новичку, прошу. Имеется часть кода:
getline(cin, a);
cin >> b;
Когда ввожу строку а и нажимаю на пробел, программе становится просто срать на остальные места, где есть ввод. То есть cin>>b; пропускается и программа выполняется дальше. Как пофиксить сию проблему?

Ответы156151566115681

4 янв, 09:38 320 1115615

>>1115568
В шапку глянь.
>>1115578
https://stackoverflow.com/help/mcve

4 янв, 13:55 321 1115661

>>1115578
getline берет всю строку из потока ввода до символа '\n', т.е. до нажатия клавиши Enter. Например: если ввод будет "hui pizda jigurda", а потом Enter, то в твоем случае a = "hui pizda jigurda", b = "", т.к. в потоке ввода после getline останется символ '\n'. Вроде так, но эти тонкости уже не помню, надо тестить.

Ответы15664

4 янв, 14:00 322 1115664

>>1115661
Я обосрался, сейчас потестил, все не так: getline описал правильно, а вот cin >> b будет ждать пока не будет введена строка до пробельного символа и хоть обнажимайся Enter, программе будет похуй.

Ответы15679

4 янв, 15:12 323 1115679

>>1115664
Вроде у cin можно вызвать игнор символов в буфере, может тебе это нужно?

Ответы15689

4 янв, 15:14 324 1115681

>>1115578
>2k18
>использовать cin когда есть божественный scanf

4 янв, 15:32 325 1115689

>>1115679
Поставил сейчас перед getline просто cin.ignore() и все заработало нормально, проблемы исчезли. Спасибо за идею

48 Кб, 750x575
4 янв, 17:34 326 1115746

! Чому по машинному обсучению большинство материалов на пистоне, а не на более быстром C++ ?

Ответы1575315807

1,9 Мб, webm,
1280x720, 0:28
4 янв, 17:43 327 1115753

>>1115746
Потому что проще написать import keras, чем ебаться с компеляций кучи библиотек и ловить сегфолты, отсреливая себе яйца. Энивей все алгоритмы и так реализованы на сишечке и крестах, а на путхоне лишь удобный интерфейс.

4 янв, 20:05 328 1115807

>>1115746
Либы на плюсах, а пистон API проброшено чтобы непрограммистам (которые и двигают эту науку) проще было.

4 янв, 22:09 329 1115851

Не нашел сишечного треда, отпишусь тут.
Хочу вывод stdout чужой программы перенаправлять хотпатчем в файл в реальном времени.
Думал что прокатит (на шинде) что-то такое:
auto hd = CreateFile(...)
SetStdHandle(STD_OUTPUT_HANDLE, hd)
и т.о. все что пишет в stdout, будет теперь писать по хэндлу в файл. А нихуя. чяднт?

Ответы15853

4 янв, 22:13 330 1115853

>>1115851
freopen?

Ответы15855

4 янв, 22:16 331 1115855

>>1115853
Большое спасибо.
Знать бы теперь, чем принципиально отличается freopen и приведенный мной код, и в чем ошибка.

Ответы15857

4 янв, 22:20 332 1115857

>>1115855
Там какая-то нетривиальная ебля нужна.
Посмотри тут, если не видел уже https://stackoverflow.com/questions/21374548/setstdhandle-has-no-effect-on-cout-printf

Ответы1585815859

4 янв, 22:26 333 1115858

>>1115857
Видел, но там и вправду ебля да еще и с CRT. Разбираюсь потихоньку, надеюсь что смогу в итоге родить платформонезависимый вариант без C- и прочих -RT.

4 янв, 22:28 334 1115859

>>1115857
Хотя ответ Duncan на его же вопрос содержит код который ничего экстраординарного не делает, там freopen и есть, только завернутый в пару функций, оперирующих стеком хэндлов, очень удобно. Буду теперь разбираться с восстановлением оригинального stdout, что-то я не понял откуда _fileno() его берет.

Ответы1586715868

4 янв, 22:59 335 1115867

>>1115859
Вроде можешь freopen'ом переоткрыть консоль и не париться. А можешь через api найти какую-нибудь штуку вроде getStdHandle чтобы получить хэндл консоли, а потом setStdHandle чтобы вернуть все как было

Ответы15886

4 янв, 23:00 336 1115868

>>1115859
Вроде можешь freopen'ом переоткрыть консоль и не париться. А можешь через api найти какую-нибудь штуку вроде getStdHandle чтобы получить хэндл консоли, а потом setStdHandle чтобы вернуть все как было

4 янв, 23:49 337 1115884

>>1113694
Тред с модными ЖС приблудами которые устаревают через две недели совсем рядом, мы все понимаем. Промахнулся наверное?

4 янв, 23:55 338 1115886

>>1115867
Вот именно эта штука у меня и не получилась. В итоге freopen сделал все как надо, но хотелось всё же разобраться, почему SetStdHandle не оказывает эффекта на stdout.

Ответы15989

5 янв, 02:16 339 1115915

Аноны, я тут в тупик абсолютный зашел. Есть значит у меня cmake и вижла. Мне нужно из сипипишника и хедера получить dll. В общем, как мне это сделать? Построил проект, но там нет dll, только exe, ilk и pdb. Помогите пожалуйста!

Ответы15916

5 янв, 02:17 340 1115916

>>1115915
Создай проект библиотеки а не проект приложения, очевидно же

Ответы15917

5 янв, 02:20 341 1115917

>>1115916
Т.е. симейком я ее не соберу?

Ответы1594016021

5 янв, 05:19 342 1115940

>>1115917
ты -- нет

Ответы16017

5 янв, 11:02 343 1115989

>>1115886
https://docs.microsoft.com/en-us/windows/console/console-handles

Может это тебе поможет

5 янв, 13:34 344 1116017

>>1115940
Обидно тащемта. А я смог найти гуид, можешь мной гордиться.

5 янв, 13:39 345 1116021

>>1115917
Достаточно add_executable заменить на add_library(lib SHARED ...)

Ответы16038

5 янв, 14:03 346 1116038

>>1116021
Да, спасибо. Я уже понял

5 янв, 14:37 347 1116045

Всем прив, попробовал сделать консольную змейку:
https://pastebin.com/vPCUg7wK

Собсно вопросы:
1. Нужно ли писать больше комментов, или по названиям функций и переменных и так все понятно?
2. Можно ли как-то ебануть отрисовку, не перерисовывая весь экран заново? Прост порой моргает.
3. В принципе песдато или хуева получилось и где мне ее допиливать. думаю потихоньку пилить, пока не изучу всю книгу Прата по плюсам, а там мб на Qt с OpenGL переделаю

Ответы16050

5 янв, 14:50 348 1116050

>>1116045
>2. Можно ли как-то ебануть отрисовку, не перерисовывая весь экран заново? Прост порой моргает.
используй буферы экрана, но для этого нужно полностью контролировать окно консоли → WinAPI

Ответы16051

5 янв, 14:53 349 1116051

>>1116050
подробнее плиз. мимо другой анон

Ответы16054

5 янв, 15:00 350 1116054

>>1116051
предисловие.
я около года назад делал змейку для универа на цпп. вообще, её нужно было делать через WinAPI, так что подходил любой язык, у которого есть доступ к winapi препод топил за делфи, а мне нужно было освоить в максимально сжатые сроки цпп для курсовой. вот одним из условий было реализовать буферизацию экранов для отсутствия джиттеринга экрана при перерисовке. именно поэтому я про это сказал. возможно есть другие пути, но навряд ли. суть в том, что ты через WinAPI заказываешь себе консоль, и через WinAPI же можно консоли скармливать буферы - как бы экраны, которые еще не отображены. по сути буфер - холст, на котором ты произвольным шрифтом в произвольном месте ставишь символ произвольного цвета.

Ответы16056

5 янв, 15:02 351 1116056

>>1116054
Ну плюс там еще нужно было в несколько winapi'шных тредов всё это сделать. один тред как раз отвечал за то, чтобы после каждого "шага" змейки подгатавливать один из двух буферов и закидывать их обратно в консоль, когда придет время. там еще фигурировали мьютексы у змеи, типа когда она сделает шаг, то сбрасывается мьютекст, тред возобновляется и меняет экран

Ответы1605816060

5 янв, 15:04 352 1116058

>>1116056
вообще, если интересно, то можешь покопаться здесь:https://bitbucket.org/Reddification/cpp_snak, но сразу предупреждаю, там грязно и не прибрано, ибо делалось преимущественно от пизды чисто чтобы изучить winapi, а не сделать K P A C U B O

5 янв, 15:06 353 1116060

>>1116056
>консольная змейка
>треды
И вот потом такие кадры идут писать промышленный код из-за чего простое приложение занимает 70% памяти и греет проц.

Ответы1606316064

5 янв, 15:07 354 1116063

>>1116060
да ты не понял, это в образовательных целях делалось, ну. чтобы пощупать всё это в условиях сложнее, чем в цикле посчитать до ста.

5 янв, 15:08 355 1116064

>>1116060
Ну бло, а как еще сделать не моргающий экран при консольной отрисовке?
вернувшийся-анон-со-змейкой

Ответы1606716085

5 янв, 15:16 356 1116067

>>1116064
Моргает у вас из-за system("cls"). Всего-то нужно закрасить удалившийся символ цветом экрана да нарисовать новый (SetConsoleCursorPosition или что-то подобное). Да, это сложнее простого cls.

Алсо посоны, на каком курсе вы учитесь?

Ответы1607016199

5 янв, 15:19 357 1116070

>>1116067
второй ИВТ, решил в самообразовач на каникулах.
анон-со-змейкой

Ответы16073

5 янв, 15:29 358 1116073

>>1116070
Я просто помню, что даже в моем мухосранском вузе такие лабы на консольную графику сдавали в конце первого или самом начале второго курса. И если бы препод там увидел моргание или не дай бог system(cls), сдавал бы ты ему эту лабу до посинения.

5 янв, 15:54 359 1116085

>>1116064
Чтобы не моргало : делаешь буфер 80х25 (размер консоли) в котором хранится целый экран консоли. И когда надо будет менять кадр - меняешь все в буфере и буфер перезаписываешь в окно консоли начиная с позиции (0,0). Алсо у консоли, есть, вроде, 4 или 8 экранов памяти, так что можешь кадр рендерить на следующем экране, а потом уже туда переключаться. Но я никогда с этим не работал

5 янв, 17:21 360 1116132

https://wandbox.org/permlink/eaM3n1Y9eHkv2qaK
Как инициализировать std::array в таком случае?

Ответы1615016152

5 янв, 17:58 361 1116150

>>1116132
{{ {'a', 0}, {'b', 0}, ... }}

Ответы161551629616302

5 янв, 17:59 362 1116152

>>1116132
https://wandbox.org/permlink/YI6MCKpIsYjC8yg1
Попал пальцем в небо. Проблема в том, что аггрегатная инициализация - только для структур только с публичными членами и фундаментальных типов, а аррай - это уже не оно, и там инициализация только через конструктор. В стандарте ещё нет конструкторов в соответствии с типом элементов таких, чтобы структуры элементов инициализировались через initialization_list (из-за того, что инициализация аррая неагрегатная, фигурные скобки должны быть преобразованы в инишиалайзер_лист).
А быть их там не может из-за того, чот в языке до сих пор нет рефлексии.
Инициализацию структур через инишиалайзер_лист тоже не завезли (хотя, что им мешало?).

Ответы1615616302

5 янв, 18:00 363 1116155

>>1116150
Бля, а из-за чего лижние скобки?

Ответы16156

5 янв, 18:04 364 1116156

>>1116152
std::array это как раз таки оно.

>>1116155
А хз. Какая-то ебала с аггрегатной иниициализацией.

Ответы16170

5 янв, 18:23 365 1116160

>>1110566 (OP)

Вначале было
bool isCool;
...
isCool = true;
...
isCool = false;
@
Сделал класс с синхронизацией, всеми делами, и конструктором
Signal(bool initialState = false);
@
Забыл определить, что значит присваивание
@
Одновременно с этим забыл заменить
isCool = true; на isCool.set()
и isCool = false; на isCool.reset()
@
Обнаружил дикие баги
@
Нашёл причину
@
Долго думаешь, почему и как это работает, неужто set() и get() заставляют компилятор генерировать специальный код
@
Доходит, почему
@

А теперь вопрос, как такого избежать?

5 янв, 18:23 365 1116160

>>1110566 (OP)

Вначале было
bool isCool;
...
isCool = true;
...
isCool = false;
@
Сделал класс с синхронизацией, всеми делами, и конструктором
Signal(bool initialState = false);
@
Забыл определить, что значит присваивание
@
Одновременно с этим забыл заменить
isCool = true; на isCool.set()
и isCool = false; на isCool.reset()
@
Обнаружил дикие баги
@
Нашёл причину
@
Долго думаешь, почему и как это работает, неужто set() и get() заставляют компилятор генерировать специальный код
@
Доходит, почему
@

А теперь вопрос, как такого избежать?

Показать весь текст
Ответы16172

5 янв, 18:53 366 1116170

>>1116156
>А хз. Какая-то ебала с аггрегатной иниициализацией.
Так падажжи я допедрил, там же С-массив - единственный публичный член структуры, отсюда и скобки, и иначе сделать аггрегатную инициализацию без исправлений не получилось бы.

5 янв, 18:56 367 1116172

>>1116160
Нихуя не понял. Тебе не нравится вызов конструктора во время присваивания?

Ответы16179

5 янв, 19:25 368 1116179

>>1116172
Да. С одной стороны, это удобно, с другой - опасно, и хотелось бы как-то отлавливать такое поведение, либо его запретить.

Ответы16223

5 янв, 20:09 369 1116199

>>1116067
Без system("cls") тоже моргает. Если сколько-то раз в секунду перевыводишь все на экран - моргает, даже если ты не очищаешь экран а посимвольно перезаписываешь.

Ответы16233

5 янв, 21:23 370 1116223

>>1116179
explicit

Ответы16261

5 янв, 22:40 371 1116233

>>1116199
Тогда попробуй буферы менять
https://docs.microsoft.com/en-us/windows/console/console-screen-buffers

5 янв, 23:33 372 1116261

>>1116223
Спасибо

6 янв, 02:37 373 1116296

>>1116150
Охуеть, заработало.

Ответы16302

6 янв, 02:56 374 1116302

>>1116296
>>1116150
>>1116152
Охуел дважды.
https://stackoverflow.com/questions/28541488/nested-aggregate-initialization-of-stdarray

15 Кб, 617x265
6 янв, 09:33 375 1116358

Почему у меня в итерации, в который число k равно едининце, у меня не выводится GOT IT?

Ответы1636716368

6 янв, 10:56 376 1116367

>>1116358
Потому что у тебя там скорее всего дробь выводится с округлением. 0.025 - это не степень двойки, ну а про приколы арифметики с плавающей точкой для чисел, которые не выражаются с помощью степени двойки умноженной на степень двойки, ты и сам знаешь.

Ответы16516

6 янв, 10:58 377 1116368

>>1116358
Потому что -> http://floating-point-gui.de

6 янв, 18:47 378 1116516

>>1116367
>с помощью степени двойки целого числа умноженного на степень двойки

8 янв, 08:31 379 1117170

Чем отличается push_back от emplace_back в STL ?

Ответы1719617208

8 янв, 10:26 380 1117196

>>1117170
emplace_back гарантированно исключает копирование и перемещение.

8 янв, 10:41 381 1117208

>>1117170
А ещё эмплейс можно использовать с типами без конструктора копирования, а пушбак нельзя:
http://coliru.stacked-crooked.com/a/216156db2bb90999

Нуфаг 8 янв, 13:17 382 1117277

Программы на разных осях по разному будут работать?

Ответы1728517373

8 янв, 13:35 383 1117285

>>1117277
В начинке - да, разные системные вызовы. Для пользователя - нет

8 янв, 16:51 384 1117373

>>1117277
Можно написать программу, которая будет вычислять правильно на любой ОС. Про вывод результата - как минимум ты сможешь вывести текст в файл в рабочей директории или в stdout, но строго говоря ты везде натыкаешься implementation-defined-поведение, пытаясь пообщаться с ОС.

Так что если тебе нужно что-то правильно вычислить, то ты можешь сделать это в рамках стандарта C++, а если тебе нужно принять или вывести данные, то ты либо полагаешься на негласные правила, либо ты используешь АПИ ОС прямо или через библиотеку.

8 янв, 17:59 385 1117403

Если такой прием называется range_base_for

std::list<string> l = {"One", "Two", "Three"};
for (string & s : l)
std::cout << s << std::endl;

,то как называется такая форма оператора for
for (string & s : l)
?

Ответы1753220633

44 Кб, 944x474
8 янв, 18:16 386 1117405

Что это за ебанутая ошибка и почему она возникла?
неужели нельзя так через итератор осуществлять поиск по списку
std::list<string> l = { "One", "Two", "Three" };
for (string & s : l)
std::cout << s << std::endl;

list<string>::iterator iter1 = l.begin();
for (; iter1 != l.end(); ++iter1) {
if (*it == "Two")
break;
}
l.erase(iter1);

Ответы1740617408

512x512
8 янв, 18:18 387 1117406

>>1117405
Потому что должен быть iter1

Ответы17415

8 янв, 18:21 388 1117408

>>1117405
ты думал гуглить? Тебе же на английском написано про итератор вектора, ёпта.

Ответы17415

8 янв, 18:29 389 1117415

>>1117406
да, что-то я не заметил
>>1117408
да, там был итератор вектора, а должен быть итератор списка,

Ответы17425

8 янв, 18:55 390 1117425

>>1117415
std пробовал поставить?
ты, как я вижу namespace не используешь.
Ну и цикл ты ебануто используешь. Тебе в таком случае надо не for, а while, do while использовать. Ты хоть понимаешь что ты, блядь, в условиях написал?

4 Кб, 1168x37
8 янв, 18:55 391 1117426

8 янв, 21:28 392 1117492

Когда пишутся шаблоны классов и функций,
как понять где писать сам код?
если есть, например, класс

template<class T>
class Vasya{
T* vas;
...
}

почему нужно писать реализацию его методов прямо в хедере, без вынесения в отдельный cpp файл??

Ответы1750617532

sage 8 янв, 21:51 393 1117506

>>1117492
https://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file

8 янв, 21:58 394 1117507

Кто-нибудь пытался в раст?

Ответы17526

8 янв, 22:25 395 1117526

>>1117507
Тобою выбрана неправильная дверь - клуб растоебов два треда вниз.

8 янв, 22:37 396 1117532

>>1117403
Это одно и то же, и я никогда не слышал слово "base" в этом контексте, называется это обычно "range for".
>>1117492
Потому что результатом компиляции единицы трансляции не может быть шаблон, это может быть только статически типизированный код. Ты всё перепутал.

Ответы20633

9 янв, 15:18 397 1117765

Анон, подскажи плиз по поводу многопоточности
Есть два потока. Один пишет данные в очередь. Другой читает и удаляет. Нужно ли блокировать очередь мьютексами, если происходит операция isEmpty(), т.е. если просто идет проверка очереди на пустоту?
Какая версия второго потока правильнее?

1 поток пишет
p_mtx->lock();
workque->enqueue(data);
p_mtx->unlock();

2 поток версия 1 читает
p_mtx->lock();
if (!workque->isEmpty()) {
inwork = workque->dequeue();
}
p_mtx->unlock();

2 поток версия 2 читает
if (!workque->isEmpty()) {
p_mtx->lock();
inwork = workque->dequeue();
p_mtx->unlock();
}

Ответы1778417873

9 янв, 16:07 398 1117784

>>1117765
>Нужно ли блокировать очередь мьютексами, если происходит операция isEmpty(), т.е. если просто идет проверка очереди на пустоту?
В общем случае нужно. Если контейнер ганатирует то, что результат empty меняется только после появления элементов (может и не гарантировать), то БЫТЬ МОЖЕТ ты можешь не лочить и оно будет некоторое время работать, но ты грозишься отстрелить себе ногу, так как этот вызов вполне может быть заинлайнен/закэширован, например.

Ответы17823

9 янв, 17:20 399 1117823

54 Кб, 1498x920101 Кб, 1846x816

>>1117784
Спасибо!
Но я что-то таки не понимаю. Уже немного по другой теме Почему я не могу выдернуть из очереди элемент и поместить его отдельную переменную и дальше работать с ним?
При том что просто обращение к элементу очереди проходит нормально. Ошибка со второго скрина образуется при закомменчивании
qDebug() << QString::fromStdString(workque->dequeue().first);
И разкомменчивании
inwork = workque->dequeue();

Как это сделать правильно?

Ответы1787617914

9 янв, 18:56 400 1117873

>>1117765
используй генераторы future, нахер тебе этот устаревший дизайн.
Also single-reader/single-writer очередь в синхронизации вообще не нуждается
при грамотной реализации.

Ответы17975

9 янв, 19:04 401 1117876

>>1117823
inwork у тебя std::shared_ptr<std::string> и не инициализирован, ты короч
1) копируешь в рандомные адреса памяти вот тута inwork = workqueue->dequeue()
2) тип *inwork нихуя не тот что лежит в очереди

Ответы17975

9 янв, 20:43 402 1117914

>>1117823
inwork - это указатель на объект shared_ptr<чототам>. Ты пытаешься присвоить значение несуществующем объекту в строчке 31, поздравляю, твоя ступня умрёт от СПИДа.

9 янв, 21:29 403 1117934

2ch, я всё понять не могу, почему автоматические переменные не обнуляются и содержат мусор, а переменные на куче обнуляются?

Ответы17979

9 янв, 23:17 404 1117975

>>1117876
Thnks! Поправил.
>>1117873
>Also single-reader/single-writer очередь в синхронизации вообще не нуждается
>при грамотной реализации.
Там на самом деле немного сложнее. Есть ещё пара вариантов как может что-то оказаться в этой очереди. Просто до их реализации я ещё не добрался

9 янв, 23:23 405 1117979

>>1117934
Никакие не обнуляются (кроме статических)

Ответы18053

10 янв, 07:06 406 1118053

>>1117979
malloc и new дают мне очищенную память.

Ответы18064

10 янв, 08:44 407 1118064

>>1118053
malloc не дает тебе очищенную память.

Ответы18303

10 янв, 15:53 408 1118215

Как узнать адрес самого указателя?
Только через указатель на указатель?

Ответы18217

10 янв, 15:55 409 1118217

>>1118215
Ой, извиняюсь. Затупил и ошибся. Вопрос отменяется.

Ответы18222

10 янв, 16:11 410 1118222

>>1118217
не извиняю
проси на коленях

Ответы18225

10 янв, 16:18 411 1118225

>>1118222
На твоих коленях?

10 янв, 17:04 412 1118242

Как считать только одну цифру с потока, например, у нас есть число 100010101010, и надо считать только первую цифру. Я гуглил, честно !

Ответы182681828418502

10 янв, 17:59 413 1118268

>>1118242
Пробуй сдвиги использовать

10 янв, 18:21 414 1118277

Какая из бесплатных IDE лучше?

Ответы182891829018502

10 янв, 18:37 415 1118284

>>1118242
Текст или бит?

10 янв, 18:49 416 1118289

>>1118277
вижуал студия комьюнити эдишн
не забудь обмазать плагинами

10 янв, 18:50 417 1118290

>>1118277
VS community

10 янв, 19:04 418 1118294

Какой компилятор самый просто и понятно реализованный? Пусть не самый оптимизированный, главное чтобы стандарту соответствовал, хочу покопаться в реализации, особенно stl.

Ответы1829518502

10 янв, 19:12 419 1118295

>>1118294
>Какой компилятор самый просто и понятно реализованный?
Наверное никакой, но у тебя есть выбор между gcc и clang-llvm. Можешь начать со второго.

Ответы18298

10 янв, 19:21 420 1118298

>>1118295
Как раз во втором ковыряюсь. Но там слишком много всего, я теряюсь даже в реализации вектора.

10 янв, 19:29 421 1118303

>>1118064
Даёт

Ответы18313

10 янв, 19:33 422 1118304

Сколько нынче можно просить в ДС имея 2 года опыта?
Я шаристый вроде.

Ответы183061831218343

10 янв, 19:35 423 1118306

>>1118304
70

Ответы18307

10 янв, 19:37 424 1118307

>>1118306
Хуй саси чмоня. Я без опыта на больше устроился эти самые 2 года назад.

Ответы18315

10 янв, 19:48 425 1118312

>>1118304
>2018
>кресты
>работа

10 янв, 19:51 426 1118313

>>1118303
Не даёт, очищенную даёт calloc.

Ответы18321

10 янв, 19:56 427 1118315

>>1118307
140? кресты? даже в дс? без опыта?
чё хоть за специализация, если не секрет.. финтех?

Ответы18351

10 янв, 20:02 428 1118321

>>1118313
Что скажешь на это http://cpp.sh/84qmn?

Ответы1834618502

10 янв, 21:03 429 1118343

>>1118304
Очень зависит от работодателя. В каком-нибудь НИИ тебе 60к дадут, в каком-нибудь яндексе - 110, мне с 2мя годами в свое время дали 150.

Ответы18351

10 янв, 21:06 430 1118346

>>1118321
https://stackoverflow.com/questions/8029584/why-does-malloc-initialize-the-values-to-0-in-gcc

10 янв, 21:09 431 1118351

>>1118315
Даун? больше 70 это именно 140?
>>1118343
110 я как раз сейчас получаю. Хотелось бы 150-160 и ИНТЕРЕСНЫЙ ПРОЕКТ, конечно. Пишу всякую серверную хуиту под линукс.

Ответы18363

10 янв, 21:18 432 1118363

>>1118351
https://hh.ru/vacancy/23943924

10 янв, 21:21 433 1118365

>>1110566 (OP)
Объясните, почему компилятор просирается огромным текстом, когда есть ошибка в шаблонах?
Когда это пофиксят, чтобы их можно было нормально читать, а то такое немного пугает:
std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::map<std::basic_string<std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const, std::basic_string<char, std::char_traits<char>,std::allocator<char> > > > >

Ответы183661850218639

10 янв, 21:22 434 1118366

>>1118365
потому-что он полный стэк трейс инстанцирования выдает, где можно посмотреть, с какомого момента все пошло по пизде. Вроде были какие-то тулзы для форматирования.

А ваще - с опытом научишься.

10 янв, 21:31 435 1118372

Без вышки к вам нет пути?

Ответы1837318375

10 янв, 21:33 436 1118373

11 Кб, 545x1918 Кб, 490x190

>>1118372
Я вообще не пойму, почему люди до сих пор идут в кресты - вон жс придумали уже, учится легко, разработка идет намного приятнее, зарплаты выше, работы больше.
Но нет, все равно кто-то хочет жрать плюсопарашу

Ответы183771837918385

10 янв, 21:34 437 1118375

>>1118372
ага
еще желательно бабку иметь с квартирой, ну или чтобы родоки те подарили ее хотя бы годам к тридцати
тк с деньгами будет туговато

10 янв, 21:35 438 1118377

>>1118373
получаю на плюсопараше 250к чистыми в месяц, мне норм

Ответы18381

10 янв, 21:36 439 1118379

>>1118373
Я в веб собираюсь идти, кресты для общего развития изучаю. Просто интересно стало.

10 янв, 21:37 440 1118381

>>1118377
Чем занимаешься?

Ответы18388

10 янв, 21:40 441 1118385

>>1118373
в среднем может быть и больше
но зарплатный потолок выше для крестов, плюс выходы на крутые области

с определенного уровня тебя начинают дико ценить и хантить

Ответы18389

10 янв, 21:41 442 1118388

>>1118381
ядро шиндошса ебу, чтобы оно делало то, что мне нужно.

Ответы1839018409

10 янв, 21:43 443 1118389

>>1118385
Вот только джуном на крестах попробуй еще устройся, быстрее начнешь на php и жсе писать.

Ответы1839018391

10 янв, 21:44 444 1118390

>>1118388
win/c++ кстати проседает по ощущениям, не замечал? работы немного, но спецы нужны. один западный партнер тут приглашал почти слёзно, но я не очень умею

>>1118389
это тоже правда

Ответы18392

10 янв, 21:44 445 1118391

>>1118389
хуйня. Собесил много джунов, общая проблема была в том, что хуесосы даже Майерса не читали. Тех, кто читали - мы брали. Крестоджуном имхо устроиться сильно проще, ведь тебе надо знать только язык, а не РЕАКТ РЕДУКС ХУЮКС ВЕБПАК НОДЕЖС МАКАК АНУС БУТСТРАП

Ответы18394

10 янв, 21:45 446 1118392

>>1118390
> win/c++ кстати проседает по ощущениям, не замечал? работы немного, но спецы нужны. один западный партнер тут приглашал почти слёзно, но я не очень умею

Это моя первая работа, где я пишу под винду, а не под ебучий GANOO+LOONIX. Но вообще да, винды очень мало, меня это прям печалит.

Ответы18399

10 янв, 21:47 447 1118394

>>1118391
А без вышки бы взяли?

Ответы18395

10 янв, 21:48 448 1118395

>>1118394
да, если пройдешь собес. Другое дело, что у человека с вышкой больше знаний обычно. Он, как минимум, может за алгоритмы и работу ОС заяснить, что мы иногда спрашивали.

Ответы18397

10 янв, 21:50 449 1118397

>>1118395
Ну, предположим, смогу заяснить. Не могут ли сразу на хуй послать автоматом? Типа даже на собеседование не пустим.

Ответы1840118402

10 янв, 21:51 450 1118399

>>1118392
>а не под ебучий GANOO+LOONIX
Неужели разработка под винду лучше чем под линукс? Обычно все говорят обратное

Ответы18401

10 янв, 21:55 451 1118401

>>1118397
Зависит от конторы. Кто-то смотрит (ебаные деды в НИИ), кто-то не смотрит. Но когда у тебя есть 2+ года опыта, уже никто вообще не смотрит

>>1118399
Божественная вижуал студия + божественный решарпер С++.

Ответы1840318414

10 янв, 21:55 452 1118402

>>1118397
Я не он, но скажу. В двух конторах, где я работал, вообще 0 внимания было насчет дипломов. В другой был мужик, кандидат наук, у него пункт был серьезный в голове насчет вышки, всех нахуй посылал. С тимлидом однажды одного пиздюка толкового (из каких-то диких ебеней зауральских) протолкнули в другой отдел в обход этого дядьки. Как повезет, думаю, хз. Если уверен в себе, пробуй же, хуже не будет.

Ответы18414

10 янв, 21:57 453 1118403

>>1118401
>Божественная вижуал студия + божественный решарпер С++.
Но ведь есть CLion

Ответы18408

10 янв, 22:01 454 1118407

главное способность перевернуть список на бумажке

10 янв, 22:02 455 1118408

>>1118403
сравнил жопу с пальцем

10 янв, 22:04 456 1118409

>>1118388
>ядро шиндошса
на крестах? ой, пиздешь

Ответы18413

10 янв, 22:04 457 1118410

Эм, привет, крестомастера! Вкатился ещё со школы в 98 стандарт по шилдту, сейчас на пороге 18. Подобрал штаны, и вот за начало 17 перебрался с 11 на 14 стандарт( благодарю Саттера и Майерса).
Так вот, я работал с тем что писал драйвера для всякой перефирии, алгоритмы нажирал тонными для математиков на производстве, и накатывал всякие приложухи с dl. В последнее время занимался написанием "безопасных приложений" в банке, перед этим сломав сишарпоёбам в фирме жизнь.

Так вот сейчас вот сижу и думаю. ООП круто, и писать какие-то крупные и масштабируемые приложения тоже круто, но хочется что-то чего не пробовал.

Глянул, что сейчас есть Sailfish OS с Qt C++ думаю притопать туда. Одновременно хочу вкатится в ОС и встраиваемые системы.
Можете подсказать куда смотреть, что читать?

Мимо-анон с 10-летним стажем работы на крестах в продакшене

10 янв, 22:05 458 1118413

>>1118409
с подключением, ньюфаня

Ответы18420

10 янв, 22:05 459 1118414

>>1118401
>>1118402
Благодарю за ответы. А на возраст внимание обращают?

Ответы18418

8 Кб, 509x233
10 янв, 22:07 460 1118416

Вам самим не обидно добровольно соглашаться жить у параши?
Вебмакакам платят за фронтенд в 3-4 раза больше чем вам, причем им только нужно 1 фреймворк в год выучить и все. А тут надо ебаться лет 10, чтобы выучить кресты на нормальном уровне, плюс нужны разные библиотеки вроде буста, и.т.д.

Ответы18422

10 янв, 22:08 461 1118418

>>1118414
конечно обращают
после тридцати нахуй никому не нужен будешь

10 янв, 22:13 462 1118420

>>1118413
окей
я не доебатся, а с интересом: кинь пару линков на крестовый код в ядре
те не umdf

Ответы18430

10 янв, 22:17 463 1118422

>>1118416
Все что не ДС/ДС2 это помойки со скотом вместо населения и шаурмянками вместо бизнеса.
Нахуй ты это принес сюда?

Ответы18426

10 янв, 22:24 464 1118426

>>1118422
вот щас обидно было

10 янв, 22:33 465 1118430

>>1118420
все кернельное АПИ, все, что приходит в коллбэках и тд и тп - это все чистый С, само собой. Но наш весь код, который это получает\принимает\дергает - С++14. Стандартной либы, ясен хуй, тоже нету, но тут очень решает RAII с деструкторами (свой юник поинтер, своя строка и тд), тимплиты используем, включая вариадики, лямбды.

Отследить изменения в файле 10 янв, 22:47 466 1118440

Как реализовать в консольке? Вот например указываю я каталог на винде, прога его мониторит. Я меняю имя файла, или размер, ну короче меняю параметры, а прога моментально выдает отчет об изменении. Если винапи использовать, то какие функции? Я ньюфаг в этом просто.

Ответы184451854218543

10 янв, 22:52 467 1118445

>>1118440
с этого начать можт
https://msdn.microsoft.com/en-us/library/aa364417(VS.85).aspx

Ответы18448

10 янв, 22:54 468 1118448

>>1118445
А это? https://msdn.microsoft.com/en-us/library/windows/desktop/aa365465(v=vs.85).aspx

11 янв, 00:50 469 1118502

>>1118321
Я скажу, что ты пиздобол, и что в стандарте нигде не написано, что маллок обнуляет память, блядь.
>>1118242
Считывай в char. Если тебе нужен бит, считай в число и вынь бит.
>>1118277
Кутэкреактор.
>>1118294
Можешь посмотреть на код верифицированных компиляторов, гугли сам.
>>1118365
>Объясните, почему компилятор просирается огромным текстом, когда есть ошибка в шаблонах?
Потому что шаблоны - это структура с кучей уровней вложенности, и компилятор тебе в каждом типе все эти вложения показывает.
Когда у тебя куча специализаций, тебе компилятор покажет, почему каждая их них не подходит.
Без этих выводов найти ошибку в использовании шаблона ещё более невозможно. Когда завезут концепты, компилятор тебе сразу сможет показать, что тип у тебя не ДифолтКонстрактибл, например. Когда завезут рефлекшн, можно будет более понятно STL написать, и ошибки тоже будут понятнее.

Ответы18702

14 Кб, 275x300
11 янв, 03:35 470 1118540

http://www.boost.org/doc/libs/1_66_0/libs/beast/doc/html/index.html
Смотрите, там в буст завезли клиент HTTP. Стоит уже сейчас выбрасывать curl, или есть подводные камни?
Я знаю, есть ещё куча альтернатив, но тут просто всё в одном получается. Удобно.

11 янв, 03:51 471 1118542

кароч, я прогу написал, но это FILE_NOTIFY_CHANGE_FILE_NAME в FindFirstChangeNotification отслеживает и создание файла, и удаление, и изменение имени сразу. А мне надо всё это отдельно.
>>1118440-кун

Ответы18546

11 янв, 03:53 472 1118543

прога вот https://pastebin.com/PwZZgJcx

>>1118440-кун

11 янв, 04:35 473 1118546

>>1118542
> To retrieve information about the specific change as part of the notification, use the ReadDirectoryChangesW function.

Ответы18596

11 янв, 09:44 474 1118596

>>1118546
блин, ну ок

11 янв, 09:57 475 1118597

Двач, напомните мне термин, как называется конструктор не по умолчанию?

Ответы18599

11 янв, 10:08 476 1118599

>>1118597
С параметрами

11 янв, 10:28 477 1118605

Direct initialization std::string s("hello");
Copy initialization std::string s = "hello";
Двач, почему второй пример называется инициализация копией, хотя оба варианта вызывают параметризованный конструктор?

Ответы18643

11 янв, 12:38 478 1118639

>>1118365
У тебя что-то устаревшее, может быть? Давно уже пофиксили, кроме того никто не пишет > > >

Ответы18704

11 янв, 12:47 479 1118643

>>1118605
Потому что во втором случае вызывается два конструктора - конструктор стринга из конст чар звёздочка и конструктор копирования (98) или перемещения (11+).

163 Кб, 300x300
11 янв, 14:25 480 1118683

Пишу на Си++ несколько часов. Рейтаните мою альфа-версию простого калькулятора: https://pastebin.com/iws4rzmp там есть некоторые тудушки впрочем.

Ответы186891870618715

11 янв, 14:41 481 1118689

>>1118683
Лабы идут на хуй

11 янв, 15:13 482 1118702

>>1118502
>Когда завезут концепты, компилятор тебе сразу сможет показать, что тип у тебя не ДифолтКонстрактибл, например. Когда завезут рефлекшн, можно будет более понятно STL написать, и ошибки тоже будут понятнее
В следующем десятилетии планируется все это завезти в кресты?

11 янв, 15:14 483 1118704

>>1118639
Да нет, вроде все 3 популярных компилятора - msvc, gcc и clang выдают ошибки именно в таком формате.

11 янв, 15:15 484 1118706

>>1118683
>> switch (operation){
>> case '+':
Нахуй послан

11 янв, 15:45 485 1118715

>>1118683
Калькулятор без приоритета операций - говно.

Ответы18856

11 янв, 17:00 486 1118740

У меня, наверное, платиновый вопрос, но поиск в разделе последний такой вопрос не нашёл.
Существует ли приличная GUI библиотека для сей/плюсов вообще? А то во что ни ткнусь - либо устаревшее неподдерживаемое говно(страшно выглядящее к тому же), либо перегружено нахуй и с кучей полудохлых депендентов, либо логику писали инопланетяне и пользоваться невозможно. Казалось бы многого не прошу - дай мне инструмент для создания окна и простейших элементов, но бляяяя...
Постепенно я прихожу к выводу, что проще самому банально на винапи написать что нужно, благо много не нужно(даже кроссплатформенность не нужно, для себя пишу под винду). Или взять какую-нибудь графическую библиотеку вроде SDL и на ней накатать.
Но вдруг я не нашёл какую-то малоизвестную годную библиотеку, так что если знаете, поделитесь, пожалуйста?

Ответы187421874318756

11 янв, 17:04 487 1118742

>>1118740
https://github.com/cnjinhao/nana
Это, например.
А вообще поддвачну. Qt, wxWidgets, как можно пользоваться этими монстрами?

Ответы1874518750

11 янв, 17:12 488 1118743

>>1118740
qt - для крестов
gtk - для си
electrone - лучший гуи фреймворк для жс

Ответы18750

11 янв, 17:14 489 1118745

>>1118742
берешь и пользуешься. мое говно на qt:
https://camo.githubusercontent.com/8ea200ca6efbde72bbd6122bdc95bac198eb0b05/68747470733a2f2f6d656469612e67697068792e636f6d2f6d656469612f796347434274784e6934745a432f67697068792e676966

Ответы187481875018756

11 янв, 17:16 490 1118748

>>1118745
Как рисовать такой красивый интерфейс?
Все, что видел на qt - некрасивое говно с интерфейсом уровня десктопных программ 2000 года, написанных на делфи

Ответы187511876118800

11 янв, 17:19 491 1118750

>>1118742
хм, глянул поверхностно код, вроде всё просто и годно, попробую, спасибо.
>>1118743
>>1118745
Qt точно отказ, мне на него смотреть даже страшно.
gtk я пробовал, но на винде это какая-то боль и пердолинг, и выглядит страшно.

Ответы18756

11 янв, 17:21 492 1118751

>>1118748
>Non-Image content-type returned
Скажи лучше, как открывать такие ссылки.

Ответы18753

461 Кб, 480x364
11 янв, 17:22 493 1118753

>>1118751
Хуй знает, у меня хром, я просто тыкнул мышкой и гифка открылась

пикрил - она

11 янв, 17:31 494 1118756

>>1118745
Выглядит красиво, конечно. Но я как представлю, что скрывается за этим, так чуть ли не паническую атаку ловлю.

>>1118750
Я нашел ее, думая о примерно тех же вещах, что и ты. Прямо один в один >>1118740 были рассуждения.

11 янв, 17:38 495 1118761

>>1118748
>Все, что видел на qt - некрасивое говно с интерфейсом уровня десктопных программ 2000 года, написанных на делфи
насколько я понял, qt больше всего подходит для программ, которым нужен нативный интерфейс на разных ос. то есть пишешь свою програмку на линухе, он выглядит нативно для твоего DE (гном, кеды и т.д). потом компилишь эту же самую програмку на винде, интерфейс меняется, чтобы быть похожим на нативный интерфйес винды. делать кастомные интерфейсы на qt сложновато, но это возможно. там есть возможность рисовать кастомные виджеты (функцональные элементы интерфейса), которые, имхо, плохо задокументированы. я смог написать свой прогресс бар, но на это ушло приличное кол-во времени, хотя код очень тривиальный. + можно вставить opengl код (не ебу как этим там пользоваться, но 3дэ эффект вставить, наверное, можно). с анимацией я так и не разобрался, потому что документация ну очень хуйовая. есть еще qt quick, в котором по дефолту стиль material, но опять же, документация очень плохая.

в итоге: qt, в теории, очень мощная вещь, но там столько всего нужно знать, а с документацией все хорошо только до тех пор, пока тебе не нужно знать ничего продвинутого.

Ответы1876418800

11 янв, 17:41 496 1118764

>>1118761
еще с scalability проблемы.

11 янв, 19:13 497 1118800

>>1118748
еще один пример красивого приложения на qt: battle net
>>1118761
еще один аргумент за хуевость документации в qt: популярность сайта kdab

11 янв, 20:25 498 1118812

Сайты норм писать?

Ответы18815

11 янв, 20:26 499 1118815

>>1118812
CMS на плюсах сам найди, я видел такую.

11 янв, 20:47 500 1118824

Бамп

11 янв, 21:49 501 1118848

Зачем и когда именно нужно использовать "friend"?

Вот пишу я перезагрузку оператора присваивания. Заглянул на StackOverflow для поиска канонов, а там такое:

dumb_array& operator = (dumb_array other)
{
swap(this, other);
return this;
}

friend void swap(dumb_array& first, dumb_array& second);

Вот почему он friend? Почему не функция-член класса?

Ответы1896018978

11 янв, 22:34 502 1118856

>>1118715
Двачую адеквата

12 янв, 01:26 503 1118906

>>1113167
что за книга, что за самоучитель такой?

12 янв, 01:34 504 1118909

>>1110566 (OP)
ребят с чего лучше новичку изучать си-образные языки? с чистого Си или С++??? подскажите плс, интересно ваше мнение.

Ответы18942189481896018978

12 янв, 08:52 505 1118942

>>1118909
Чистый C без глобальных переменных.

Ответы19012

12 янв, 09:30 506 1118948

>>1118909
C современного С++, очевидно же!

12 янв, 10:36 507 1118960

>>1118848
>Вот почему он friend? Почему не функция-член класса?
Потому что автор решил сделать функцию свап (которая более логично выглядит в виде функции с двумя аргументами, а не в виде метода с одним аргументом, так как это отражает равнозначность аргументов) и через неё выразить оператор присваивания, так как код реюз и простота исполнения.
>>1118909
С Си.

Ответы1898319012

12 янв, 12:13 508 1118978

>>1118848
Плюсы двигаются в сторону шаблонного программирования. Это накладывает определенные ограничения - одинаковые вещи должны делаться одинаковыми способами. Например, если ты пишешь какой-то контейнер, количество элементов в нем должно возвращаться методом size(), не length(), не count() а именно size(), потому что так принято (конечно, ты можешь добавить в класс и length(), но size() должен быть обязателен). Тоже самое происходит со свапом. Исторически сложилось что две пременных свапаются вызовом функции с двумя аргументами. Шаблонные алгоритмы, которым нужно свапнуть два элемента будут свапать именно таким способом. Если ты хочешь чтобы твой класс работал с такими алгоритмами тебе нужно реализовать функцию свапа с двумя аргументами. При этом ты спокойно можешь сделать и функцию-член класса для свапа, если тебе это почему-то кажется удобным.
http://en.cppreference.com/w/cpp/concept/Swappable
>>1118909
С плюсами ситауция простая. Если ты 100% уверен что нужны именно плюсы - учишь плюсы. Если не уверен - не подходишь и на километр. Учить плюсы для того чтобы просто вкатиться в "си-образные языки" бессмысленно.

Ответы1898319012

12 янв, 12:23 509 1118982

Короче есть POD структура, где много простых типов int float и т.д. У нее есть дефолтный конструктор где все выставляется в 0. Как мне создать вектор из, допустим миллиона таких структур просто зааллочив кусок памяти не вызывая конструктор для каждой структуры.

Ответы1901919304

12 янв, 12:30 510 1118983

>>1118960
>>1118978
Спасибо, теперь понятно, почему именно friend.
Не считается плохим стилем, если в классе много friend-функций? Например, еще сложение, вычитание, умножение, деление и т.п.

Ответы1899419248

12 янв, 12:54 511 1118994

>>1118983
Если нужно так делай. Вообще их не сильно любят, так как считают нарушением инкапсуляции (что довольно спорно).

12 янв, 13:47 512 1119010

Двач, поясните что тут вообще происходит, почему можно для переменной "a" использовать member access operator? Почему в переменной "a" лежит этот typedef? Почему для этого tepedef'a можно вызывать деструктор? Что это даёт?

typedef int t;
t a = 42;
a.t::~t();
std::cout << a; //42

Ответы1904619053

78 Кб, 244x244
12 янв, 13:59 513 1119012

>>1118978
>>1118960
>>1118942
спасибо что ответили! Начну изучать Си с нуля и параллельно читать Таненбаума по архитектуре компа! Спасибо вам ребят, и двачу спасибо!

12 янв, 14:24 514 1119019

>>1118982
Бамп вопросу.
Как сделать чтобы вектор просто выделил память под структуры, без вызова конструкторов? Неужели никто не сталкивался, это же пиздец какой оверхед.

Ответы190371924819278

12 янв, 14:53 515 1119037

>>1119019
Если ты с вектором и безопасно работать хочешь то кастомные аллокарторы используются. Но в твоем случае еще и конструктор по умолчанию пустым нужно сделать. Если ты типа ебал безопасность в рот и не хочешь ебаться с всей хуйней, то просто выделяешь нужный объем памяти и кастишь к указателю на свою структуру. Используешь как обычный массив. Естественно, даже с таким подходом голые куски памяти лучше не использовать, а обмотать в какой-то простенький класс, там хранить размер выделеного блока чтобы проверять время от времени.

Ответы19321

12 янв, 15:14 516 1119046

>>1119010
хм, я тоже не догадываюсь что это такое, хотя вроде опыт и есть
int b = 12;
b.int::~int();
так чтож присоединяюсь к вопросу, буду рад если кто-то знает и ответит

Ответы19053

12 янв, 15:22 517 1119053

>>1119046
>>1119010
вопрос отменяется, разобрался сам

Ответы19248

13 янв, 00:28 518 1119248

>>1118983
>Не считается плохим стилем, если в классе много friend-функций
Это реалии плюсов, к сожалению.
>>1119019
Сделай свой вектор тогда, лол. Либо сделай конструктор в виде init-метода, что логичнее.
> это же пиздец какой оверхед.
Там скорее всего всё инлайнится и анроллится в методе resize(), но это неточно.
>>1119053
Ага, теперь мне объясни, я так и не понял.

Ответы1925719321

13 янв, 00:46 519 1119257

>>1119248
>Ага, теперь мне объясни, я так и не понял.
https://stackoverflow.com/questions/24000710/pseudo-destructor-call-does-not-destroy-an-object
Просто охренеть.

13 янв, 01:02 520 1119262

Анон, подскажи годный туториал по работе с библиотеками.
Гугел, в основном, рассказывает, как прихуярить библиотеку с помощью Visual Studio. Посмотрел пару учебников, но там эта тема как-то обходится стороной.

Суть такова:

Пусть наш проект лежит в домашней папке ~/my_project
И содержит один файл main.cpp, который выглядит так https://dev.mysql.com/doc/connector-cpp/en/connector-cpp-examples-complete-example-1.html

Пусть у нас нет IDE, а есть Linux, gcc и Sublime Text/Atom, чтобы понять сам механизм подключения библиотек.
Берем, например, библиотеку для работы с MySQL, она выглядит так:

mysql-connector-c++-1.1.9-linux-ubuntu16.04-x86-64bit/
COPYING
include
cppconn
build_config.h
config.h
connection.h
datatype.h
driver.h
exception.h
metadata.h
parameter_metadata.h
prepared_statement.h
resultset.h
resultset_metadata.h
sqlstring.h
statement.h
variant.h
version_info.h
warning.h
mysql_connection.h
mysql_driver.h
mysql_error.h
lib
libmysqlcppconn.so -> libmysqlcppconn.so.7
libmysqlcppconn.so.7 -> libmysqlcppconn.so.7.1.1.9
libmysqlcppconn.so.7.1.1.9
libmysqlcppconn-static.a
Licenses_for_Third-Party_Components.txt
README

Анон, куда положить содержимое папки mysql-connector-c++-1.1.9-linux-ubuntu16.04-x86-64bit, чтобы инклуды из файла main.cpp заработали?

Надо ли эти библиотеки потом как-то дополнительно передавать в качестве аргументов при компиляции?

13 янв, 01:02 520 1119262

Анон, подскажи годный туториал по работе с библиотеками.
Гугел, в основном, рассказывает, как прихуярить библиотеку с помощью Visual Studio. Посмотрел пару учебников, но там эта тема как-то обходится стороной.

Суть такова:

Пусть наш проект лежит в домашней папке ~/my_project
И содержит один файл main.cpp, который выглядит так https://dev.mysql.com/doc/connector-cpp/en/connector-cpp-examples-complete-example-1.html

Пусть у нас нет IDE, а есть Linux, gcc и Sublime Text/Atom, чтобы понять сам механизм подключения библиотек.
Берем, например, библиотеку для работы с MySQL, она выглядит так:

mysql-connector-c++-1.1.9-linux-ubuntu16.04-x86-64bit/
COPYING
include
cppconn
build_config.h
config.h
connection.h
datatype.h
driver.h
exception.h
metadata.h
parameter_metadata.h
prepared_statement.h
resultset.h
resultset_metadata.h
sqlstring.h
statement.h
variant.h
version_info.h
warning.h
mysql_connection.h
mysql_driver.h
mysql_error.h
lib
libmysqlcppconn.so -> libmysqlcppconn.so.7
libmysqlcppconn.so.7 -> libmysqlcppconn.so.7.1.1.9
libmysqlcppconn.so.7.1.1.9
libmysqlcppconn-static.a
Licenses_for_Third-Party_Components.txt
README

Анон, куда положить содержимое папки mysql-connector-c++-1.1.9-linux-ubuntu16.04-x86-64bit, чтобы инклуды из файла main.cpp заработали?

Надо ли эти библиотеки потом как-то дополнительно передавать в качестве аргументов при компиляции?

Показать весь текст
Ответы19270

13 янв, 01:56 521 1119270

>>1119262
Ложить можно куда хочешь. Есть стандартные папки куда можно закинуть и забыть. Есть подход ложить библиотеки по папочкам отдельно, чтобы проще было подключать разные версии. В таком случае при компиляции нужно задать папку с инклудами - флаг -I у тебя должно быть что-то типа -Imysql-connector/include - где "mysql-connector/include" адрес папки с инклюдами. При линковке нужно указать объектный файл, для статического просто прописываешь сам файл так же как любой другой объектник ("mysql-connector/lib/libmysqlcppconn-static.a"). С динамической линковкой я точно не уверен, но там вроде тоже просто файл указать. Но если хочешь линковать динамически то лучше файлы в стандартные папки закинуть. Хедеры в /usr/include/, объектники и ссылки (все гавно из lib) в /usr/lib64 или /usr/lib. Тогда флаги с адресами файлов убираешь, а вставляешь имя библиотеки, скорее всего будет "-lmysqlcppconn" (добавляешь в конце команды линковки).

Ответы19334

13 янв, 02:31 522 1119278

>>1119019
Где же твой дух хакерства?
Смотришь реализацию вектора, создаешь идентичную вектору public структуру, кастуешь вектор к ней и проворачиваешь свои дела. Ну или сразу по смещениям ебашь.
Не забудь только пользоваться векторским аллокатором для аллока/деаллока памяти.

Ответы19321

13 янв, 07:46 523 1119304

>>1118982
>POD структура, где много простых типов int float и т.д. У нее есть дефолтный конструктор где все выставляется в 0
Ты либо пиздишь, либо пиздишь.

Неявный дефолтный конструктор ничего не выставляет в ноль, а если в ноль выставляет определённый пользователем конструктор, то это уже не POD-тип.

13 янв, 10:43 524 1119321

>>1119248
>>1119278
>>1119037
https://ideone.com/9Jeu4g
В 17 стандарте в аллокаторах оставили только выделение памяти, а все остальное вынесли в allocator_traits, что бы бедные программеры не бойлерплейтили при написании своих велосипедов. Только получается чтобы убрать construct это придется специализировать allocator_traits под свой аллокатор, а это еще больше кода.

13 янв, 11:41 525 1119334

>>1119270

mysql-connector так и не завелся, поэтому попробовал с libcurl что-то сделать, по ней инфы больше.
Собрал, установил ее.

Взял пример с официального сайта https://curl.haxx.se/libcurl/c/10-at-a-time.html

И тут возник еще один вопрос. Пример написан на С, но сначала я пытался собрать его с помощью g++ и получал кучу ошибок типа undefined reference to `curl_easy_setopt', когда я начал собирать с помощью gcc, то никаких проблем не возникло и я получил рабочий бинарник.

Так вот, Анон, почему g++ не может собрать бинарник? При этом он доебался только до того, что не может найти определения функций из заголовочных файлов сторонней библиотеки, но не до того, что я ему предлагаю исходник на немного другом языке.

Прости мое ньюфажество, но почему компилятор для С++ не может собрать код на С? Покажи, в чем загвоздка на примере вышеприведенного кода с сайта curl.

Ответы19345

13 янв, 12:09 526 1119345

>>1119334
Точно не уверен что за хуйня, но пропробуй все С хедеры обернуть в extern "C" {}. При компиляции имена функций заменятся на специальные (name mangling) по которым они ищутся в объектных файлах. В С и С++ правила отличаются (так как в плюсах есть перегрузка функций - в имя фкнции добавляется тип оператора). Когда компилишь плюсовым компиляторам всем библиотечным функциям выдаются плюсовые имена. Тогда как в объектниках находятся сишные имена - и линкер не находит. Если к объявлению функции добавить extern "C", или написать его в таком блоке то плюсовой компилятор выдаст функции сишное имя и все будет ок.

13 янв, 13:06 527 1119363

ребят, на каком уровне нужно знать С\С++ что бы попасть junior'ом на работу в ДС сейчас?

Ответы1936419416

13 янв, 13:09 528 1119364

>>1119363
junior' это полный рандом. Могут требовать вплоть до мидл уровня (только зарплату джуниорскую предлагать).

Ответы19372

13 янв, 13:35 529 1119372

>>1119364
блин, а как с ума то не сойти тогда, как можно найти работу хотя бы на 40 к в ДС, с горящими глазами и пуканом, но что бы познавать и помогать высшим программистам?

Ответы1938119770

13 янв, 14:05 530 1119381

>>1119372
Цинкуешь пердак и ходишь по собеседованиям пока не прокнет, подтягивая слабые места. Джуна только чисто количеством взять можно.

13 янв, 15:36 531 1119416

>>1119363
прочитай майерса и страуструпа - будет достаточно

13 янв, 16:17 532 1119432

Здарова, анчоусы. Подскажите, пожалуйста, есть ли какой-нибудь фреймоворк или как это по-хорошему назвать, позволяющий без ебли работать с плагинами (со сторонними длл-ками) Понятное дело, можно написать это ручками, т.е. открытие, закрытие библиотек само по себе не сложно, однако проброс исключений через границу DLL-приложение уже нетривиально, как и ебля с POD'ами и интерфейсами.

Ответы19586

13 янв, 21:50 533 1119586

>>1119432
такого не существует, т.к. разница в ABI и прочей хуете от тебя не зависит. А так - boost::dll

14 янв, 10:55 534 1119751

ПЕРЕКАТ
https://2ch.hk/pr/res/1119750.html (М)
https://2ch.hk/pr/res/1119750.html (М)
https://2ch.hk/pr/res/1119750.html (М)
https://2ch.hk/pr/res/1119750.html (М)
https://2ch.hk/pr/res/1119750.html (М)
https://2ch.hk/pr/res/1119750.html (М)

14 янв, 11:29 535 1119770

>>1119372

Пилю свою тру-стори. Не уверен, что она тебе подойдет.

Работал в банке типичным планктончиком. Дальше формул в Экселе нихуя не знал. Решил подучить Питона - во благо книг дохуя и есть примитивные IDE для Андроида (QPython, например), то есть можно заниматься везде. Полгода занимался, кое-чему научился, но с такими знаниями, да без опыта на работу не устроишься. И вот тут я решил написать какую-то простенькую, но полезную хуйнюшку, с навороченным интерфейсом, чтобы вызвать щенячий восторг у начальства и услышать заветное "Хотим!". Написал кошерного менеджера задач сотрудников, который пришелся очень кстати, так как кризис, оптимизация - вся хуйня. Услышал я заветное слово и понеслась... Надо заметить, что заниматься разработкой в банке просто так нельзя: нужен особый допуск и статус разработчика, который можно получить, пройдя тест и подписав кучу бумажек и в результате тебе дают вожделенный статус и разрешение на установку инструментов разработки, но не всех. Мне, естественно, дали право на установку интерпретатора Питона. Но не буду же я писать все свое добро в блокноте. Поэтому я создал хитрожопый запрос на установку дополнительного ПО - Visual Studio 2015 + Python Tools for Visual Studio. В общем не доебешься. Парни, которые, устанавливают ПО по удаленке, не сильно понимают тонкостей, поэтому при установке, я его попросил протыкать вообще все галочки, включая C++ (какая-то часть вроде по умолчанию ставится), разумеется.
Так я получал хорошую ЗП и имел возможность учиться кодить. Сейчас, через полтора года, я работаю в том же банке, моя должность по-прежнему официально не связана с разработкой, но у меня в распоряжении небольшой серверок с полным доступом, я пишу много вэб-приложений общебанковского уровня. И я неплохо прокачал Python, JavaScript, C# и свою ЗП
Вот только С++ в работе я не использую, но это не мешает им заниматься. Может быть позже придет идея.

Я не знаком с твоей ситуацией, но может быть пока отложить С++, выучить язык попроще (РНР какой-нибудь или Node или Python), устроиться на хорошую работу, получать деньги и потом продолжить изучение?

14 янв, 11:29 535 1119770

>>1119372

Пилю свою тру-стори. Не уверен, что она тебе подойдет.

Работал в банке типичным планктончиком. Дальше формул в Экселе нихуя не знал. Решил подучить Питона - во благо книг дохуя и есть примитивные IDE для Андроида (QPython, например), то есть можно заниматься везде. Полгода занимался, кое-чему научился, но с такими знаниями, да без опыта на работу не устроишься. И вот тут я решил написать какую-то простенькую, но полезную хуйнюшку, с навороченным интерфейсом, чтобы вызвать щенячий восторг у начальства и услышать заветное "Хотим!". Написал кошерного менеджера задач сотрудников, который пришелся очень кстати, так как кризис, оптимизация - вся хуйня. Услышал я заветное слово и понеслась... Надо заметить, что заниматься разработкой в банке просто так нельзя: нужен особый допуск и статус разработчика, который можно получить, пройдя тест и подписав кучу бумажек и в результате тебе дают вожделенный статус и разрешение на установку инструментов разработки, но не всех. Мне, естественно, дали право на установку интерпретатора Питона. Но не буду же я писать все свое добро в блокноте. Поэтому я создал хитрожопый запрос на установку дополнительного ПО - Visual Studio 2015 + Python Tools for Visual Studio. В общем не доебешься. Парни, которые, устанавливают ПО по удаленке, не сильно понимают тонкостей, поэтому при установке, я его попросил протыкать вообще все галочки, включая C++ (какая-то часть вроде по умолчанию ставится), разумеется.
Так я получал хорошую ЗП и имел возможность учиться кодить. Сейчас, через полтора года, я работаю в том же банке, моя должность по-прежнему официально не связана с разработкой, но у меня в распоряжении небольшой серверок с полным доступом, я пишу много вэб-приложений общебанковского уровня. И я неплохо прокачал Python, JavaScript, C# и свою ЗП
Вот только С++ в работе я не использую, но это не мешает им заниматься. Может быть позже придет идея.

Я не знаком с твоей ситуацией, но может быть пока отложить С++, выучить язык попроще (РНР какой-нибудь или Node или Python), устроиться на хорошую работу, получать деньги и потом продолжить изучение?

Показать весь текст
Ответы20374

15 янв, 17:40 536 1120374

>>1119770
спасибо тебе анон! Добра тебе! Расписал всё аки бог! Я очень рад за тебя, дай бог что бы у тебя в жизни всё складывалось ещё лучше или так же хорошо и зарплата росла!!!!
>>По теме:
Сишечку, а потом возможно и С++ хочу изучать из за того что порог вхождения в Си очень большой и если знать Си - "Нормально" то ты и будешь знать и организацию памяти в компе и устройство\архитектуру железа отчасти и ОС и прочие вещи. После изучения и знания этих вещей будет проще вкатиться практически в любой из языков программирования. Поэтому

16 янв, 03:35 537 1120633

>>1117403
>>1117532
Range-based for же всегда это называлось.

16 янв, 22:06 538 1120956

Какой IDE кроме vs посоветуйте

Ответы20962

16 янв, 22:13 539 1120962

>>1120956
нет IDE кроме VS и Стефан Ти Лававей пророк ее

26 Кб, 1440x405
17 янв, 12:15 540 1121165

Если вызвать AutoIndent (Ctrl+I по дефолту, если правильно помню) на всех строках, то подобный код превращается вот в это. Как исправить?

Ответы2116824327

17 янв, 12:21 541 1121168

>>1121165
В QtCreator последней версии на винде

18 янв, 19:05 542 1121934

ребят тут есть кто живой?

19 янв, 00:08 543 1122136

Хочу писать игры на vulkan или directx. Что выбрать? Какие учебники прочитать? C++ практически не знаю.

Ответы2232524087

19 янв, 11:48 544 1122325

>>1122136
Начни с линейной алгебры и анал геометрии

22 янв, 05:56 545 1124087

>>1122136
opengl

22 янв, 15:03 546 1124327

>>1121165
Решилось установкой и настройкой AStyle.

27 янв, 14:42 547 1127318

Где брать убойные задачки для практики?

103 Кб, 1884x992
29 янв, 13:24 548 1128609

Анон, как отловить косяк в коде?
Есть одна программа. В ней есть несколько тредов. Один тред должен заниматься сохранением и переносом данных. Я дошёл до момента когда необходимо перенести сохранённые файлы. Всё работает нормально, но при удалении скопированного файла всё намертво стопорится - окно программы не реагирует на клики, все потоки виснут, кнопки отладки в MVS становятся неактивными. При этом, это происходит только на удалении 6-10 файла. Если не удалять файлы, то всё работает нормально.
Сначала я думал что это qfile.remove отрабатывает криво и попробовал и стандартный .remove и winapi DeleteFile, всё приводило к тому же результату.
Как мне поймать ошибку?

Тред утонул или удален.
Это копия, сохраненная 14 февраля 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion