Этого треда уже нет.
Это копия, сохраненная 19 мая 2020 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
2 1617968
Сап, анон. Делаю бенчмарки своего сатана, бенчмарк сделан так: загрузка файла в вектор значений, запуск таймера, цикл по выходным значениям, мой матан (используется Eigen), результат в другой предсозданный до таймера вектор, таймер стоп.
В релизе процессор мммаксиум в 30%, как увести его в сотку?
3 1617971
>>17968
в одном треде все?
4 1617975
>>1617746 →
Нет, в смысле он имеет ввиду например сменить всякие __gxx_personality_v0, __cxa_throw и тд? Ну там сигнатуру поменять, функции убрать/добавить, крч интерфейс сменить или он про другое?
5 1617983
Здравствуй, крестотред. Моя проблема скорее эстетическая, чем техническая, но я надеюсь, что ты мне поможешь. Итак, пишу тут рогалик и сейчас занимаюсь реализацией клеток карты.

На каждой клетке может находиться существо, ловушка, предметы, брызги крови и, наконец, поверхность (пол, стена...). Для эффективного использования памяти решил реализовать клетку в виде связного списка, с поверхность в качестве конца (типа паттерн "Декоратор"). Условился, что список должен быть упорядоченным. У каждого класса свой приоритет, которым и определяется положение экземпляров класса относительно других элементов списка - чем выше приоритет, тем ближе к голове списка. Приоритеты от высшего к низшему:
Существо -> Ловушка -> Предмет(ы) -> кровь -> террейн.

Упорядоченным список должен быть для того, чтобы не пришлось ебаться с сортировкой при взаимодействии мира с клеткой

Для примеры: если на клетке есть только существо, кровь и поверхность, то список таков:
[Существо, Кровь, Террейн]

Собственно, записал абстрактные классы CreatureComponent, TrapComponent,ItemComponent,TerrainComponent кровь реализована как декоратор террейна

TrapComponent наследует CreatureComponent, ItemComponent наследует TrapComponent и так далее. Благодаря этому за существом может быть не только ловушка, но и предмет, кровь террейн... Полиморфизм, короче.

Есть две проблемы, которые и понесли меня сюда.

1. При добавлении нового элемента в список приходится определять его тип с помощью dynamic_cast. Dynamic_cast ведь антипаттерн?

2. Всё, что может находиться на клетке, является наследником CreatureComponent. Хер бы с ним, но если подумать... это ведь упорото звучит - террейн является компонентом существа!
6 1617988
>>17983

>При добавлении нового элемента в список приходится определять его тип с помощью dynamic_cast. Dynamic_cast ведь антипаттерн?


Для чего? Чтобы потом отсортировать или что? Можно же просто в базовом классе определить виртуальную функцию типо GetPriority() и по ней сортировать.
7 1617991
>>17983
Ну, сделали и мы в Блицкриге эту самую ракету. Как и немцы, сделали ее уже ближе к концу проекта и соорудили на базе объекта "самолет". Но программисты несколько схалтурили и не пооткручивали у бывшего самолета подозрительную для баллистической ракеты функциональность. Оказалость, что если во время полета к цели начинал идти дождь или снег, то во-первых ракета говорила человеческим голосом "Fliege zuruck"(нем. лечу назад), а во-вторых разворачивалась и летела обратно на базу. Фигли там, погода то нелетная.

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

Но, беда в том, что в Блицкриге кроме собственно пехоты еще были всякие антуражные юниты, типа коров, свиней и собак. Выяснилось, что спецназ вовсе не чурается переодевания в бобиков и хавроний. Если учесть, что механизм этого самого переодевания несколько глючил и часть отряда можно было нарядить в одну форму, часть в другую, то можно было создавать совершенно безумные подразделения. Например, отряд из собак, свиней и панцергренадеров. Учитывая, что отряду можно отдавать всякие приказы типа "маршировать", "ползти" и т.д., то игроку предоставлялась уникальная возможность полюбоваться марширующими свиньями. Получалось это у них, впрочем, паршиво, потому что скелет свиньи не соответствует скелету пехотинца и выглядит это как отряд ездящих не попе хрюшек. А еще этот цирк-шапито можо было запихать в окоп. Сидят, значит, свиньи с собаками в окопе и периодически из него выглядывают.

Со свиньями был связан, кстати, еще один баг, из-за которого игра падала. В какой-то момент программисты что-то такое там подкрутили и свиньи перестали быть нейтральными, а обрели возможность принадлежать какому-то игроку. Управлять ими было нельзя, но формально они могли быть "наши" или "ненаши". Так вот свиньи роняли игру. Потому что видя неприятеля, патриотичная хавронья хотела дать врагу отпор и лезла за оружием, которого у нее естественно не было. Если мне не изменяет память, программисты исправили баг, просто выдав свинье пистолет Люгер без патронов. Визуально это никак не видно, но формально, теперь, видя врага, она лезет за оружием, видит что патронов нет и на этом успокаивается.
7 1617991
>>17983
Ну, сделали и мы в Блицкриге эту самую ракету. Как и немцы, сделали ее уже ближе к концу проекта и соорудили на базе объекта "самолет". Но программисты несколько схалтурили и не пооткручивали у бывшего самолета подозрительную для баллистической ракеты функциональность. Оказалость, что если во время полета к цели начинал идти дождь или снег, то во-первых ракета говорила человеческим голосом "Fliege zuruck"(нем. лечу назад), а во-вторых разворачивалась и летела обратно на базу. Фигли там, погода то нелетная.

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

Но, беда в том, что в Блицкриге кроме собственно пехоты еще были всякие антуражные юниты, типа коров, свиней и собак. Выяснилось, что спецназ вовсе не чурается переодевания в бобиков и хавроний. Если учесть, что механизм этого самого переодевания несколько глючил и часть отряда можно было нарядить в одну форму, часть в другую, то можно было создавать совершенно безумные подразделения. Например, отряд из собак, свиней и панцергренадеров. Учитывая, что отряду можно отдавать всякие приказы типа "маршировать", "ползти" и т.д., то игроку предоставлялась уникальная возможность полюбоваться марширующими свиньями. Получалось это у них, впрочем, паршиво, потому что скелет свиньи не соответствует скелету пехотинца и выглядит это как отряд ездящих не попе хрюшек. А еще этот цирк-шапито можо было запихать в окоп. Сидят, значит, свиньи с собаками в окопе и периодически из него выглядывают.

Со свиньями был связан, кстати, еще один баг, из-за которого игра падала. В какой-то момент программисты что-то такое там подкрутили и свиньи перестали быть нейтральными, а обрели возможность принадлежать какому-то игроку. Управлять ими было нельзя, но формально они могли быть "наши" или "ненаши". Так вот свиньи роняли игру. Потому что видя неприятеля, патриотичная хавронья хотела дать врагу отпор и лезла за оружием, которого у нее естественно не было. Если мне не изменяет память, программисты исправили баг, просто выдав свинье пистолет Люгер без патронов. Визуально это никак не видно, но формально, теперь, видя врага, она лезет за оружием, видит что патронов нет и на этом успокаивается.
8 1617992
>>17983

>1. При добавлении нового элемента в список приходится определять его тип с помощью dynamic_cast. Dynamic_cast ведь антипаттерн


Скорее всего ты можешь обойтись без него. Например использовать виртуальные методы:

struct Base
{virtual doSmth();};

struct Derived: public Base
{virtual doSmth();};

Derived make_derived();

int main()
{
Base
derived = make_derived();
dervied->doSmth(); //вызовется Derived::doSmth
}

>2. Всё, что может находиться на клетке, является наследником CreatureComponent. Хер бы с ним, но если подумать... это ведь упорото звучит - террейн является компонентом существа!


Да, это какая-то хуита.
9 1617994
>>17983
Я немного по другой теме канешн.

>Всё, что может находиться на клетке, является наследником CreatureComponent


Может тогда лучше назвать как-то SurfaceComponent - типа компонент поверхности? Или даже CellComponent - в смысле компонент клетки карты?
10 1617998
>>17991
Что за дичь, не верю, что так бывает в реальных проектах.
11 1617999
>>17975
ABI - это бинарный интерфейс, то есть соглашения на уровне машинного кода/ассемблера. Ну например - где будут располагаться параметры при вызове функции, каким способом функция вернет результат. Конкретно о чем он рассказывал - сделать destructive move, т.к. сейчас при передаче unique_ptr внутрь функции, по значению, приходится сохранить его адрес в переменную, потому что, по соглашению, деструктор вызывает вызывающий код, после того, как функция отработает. А если бы можно было отдать его внутрь функции и забыть, то не пришлось бы эти 4 инструкции вставлять (2 на сохранение в переменную, и 2 после вызова на восстановление, только лишь чтобы тут же уничтожить).
При смене ABI, даже если сигнатуры самих функций не поменять, потребуется пересборка и перелинковка всего, поэтому какие-то легаси компании и боятся, что у них что то глюканет, в банкинге, к примеру. Про то что ты написал не знаю.
12 1618001
>>17999
читать как

>вызывающий, а не вызываемый код, вызывает деструктор

13 1618002
>>17998
Вот как раз в реальных проектах мне кажется дичь и творится повсеместно, это не вылизанные простые лабы.
14 1618004
>>17998
Ну конечно бывает. Из известных примеров - поезд в Fallout 3 это на самом деле голова человечка, потому что так проще было сделать перемещение. А в скайриме трупы не удаляются, а складываются в специальный подвал.
15 1618007
>>17999

>где будут располагаться параметры при вызове функции


Я думал это x86 calling convention или типа того, ну ок, не, я про другое, попробуй например слинковать бросающую исключение с++ную прогу сшным линкером и тебе сразу выдаст всякое uindefined reference to __cxa_throw, __cxa_allocate_exception, __gxx_personality_v0 и тд, всё это в отдельной, хелперской к стандартной, либе есть cxxabi, вот я подумал, что ты про изменение самих этих функций крч.
16 1618009
>>17983
Ты ж мешаешь гуи с логикой.
Отображение должно быть отделено от сущности, и меняться отдельно. Сущность должна содержать просто отсылку на один единственный класс своих спрайтов или что там у тебя и логику их отображения.
17 1618010
>>18007
>>17999

>Я думал это x86 calling convention или типа того,


>The calling convention of the System V AMD64 ABI is followed on Solaris, Linux, FreeBSD, macOS,[21] and is the de facto standard among Unix and Unix-like operating systems. The first six integer or pointer arguments are passed in registers RDI, RSI, RDX, RCX, R8, R9 (R10 is used as a static chain pointer in case of nested functions[22]:21), while XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6 and XMM7 are used for the first floating point arguments.[22]:22 As in the Microsoft x64 calling convention, additional arguments are passed on the stack.[22]:22 Integer return values up to 64 bits in size are stored in RAX while values up to 128 bit are stored in RAX and RDX. Floating-point return values are similarly stored in XMM0 and XMM1[22]:25. The wider YMM and ZMM registers are used for passing and returning wider values in place of XMM when they exist.[22]:26,55


А, оке.
18 1618011
>>18004
Сука лоол.
19 1618012
>>17983
Посмотри, как сделано в любой GUI-библиотеке. Там же тоже можно добавлять любые Control-ы, верно? Но при этом кнопка не является наследником чекбокса.
Т.е. тебе надо всего лишь иметь BaseComponent. А уже CreatureComponent - MonsterComponent должно быть одной из веток. А ItemComponent - другой. Т.е. критерием должно быть, если есть общие свойства с другим классом, то он или их предок должен быть наследником, а не просто от балды.
Что же касается dynamic_cast - вроде бы этого не нужно. Если у тебя вектор указателей на базовый класс, то в него можно добавлять любые указатели на наследников.
Алсо, главное чтобы тебе было удобно, но в последние 10 лет в геймдеве рекомендуют ECS вместо ООП, как раз чтобы уменьшить всю эту связность. Т.е. все это делается композицией, и не важно, кто от кого наследовался, само наличие компонента уже означает наличие соотв-вующего свойства у объекта.
20 1618013
>>18002
Хз, не встречал подобного, у меня сложилось ощущение, что полубог- архитекторы всё охуенно планируют, потом их приспешники жестко ревьюят, не позволяя малейшему багу проскочить и всё в таком духе.
21 1618014
>>17992

>Скорее всего ты можешь обойтись без него. Например использовать виртуальные методы:



Нельзя, требуется двойная диспетчеризация.
У компонентов должен быть метод виртуальный метод push(CreatureComponent*). Поведение метода зависит от типа аргумента. Скажем, у нас есть список
[Существо, Ловушка, Предмет, Поверхность]
Если мы попытаемся впихнуть новый Предмет в список, то будет вызван метод push у головы списка - Существа. Там с помощью dynamic_cast определяем, что аргумент ниже в иерархии, чем Существо, поэтому вызываем push у следующего за существом элемента - Ловушки. Ловушка с помощью того же dynamic_cast опеределяет, что аргумент ниже в иерархии, поэтому передает следующему элементу - Предмету. Теперь положение в иерархии равное и алгоритм обрывается. Новый вид списка:
[Существо, Ловушка, Предмет, Предмет, Поверхность]
22 1618016
>>18012
Обдумаю это.
23 1618017
>>18013
А потом меняется ТЗ.
24 1618018
>>18014

> Там с помощью dynamic_cast определяем, что аргумент ниже в иерархии, чем Существо, поэтому вызываем push у следующего за существом элемента - Ловушки


Так а почему нельзя сделать виртуальный getOrder(и тут просто возвращать номер в иерархии для каждого предмета), ну и потом
if(head->getOrder < input->getOrder){блабла}
25 1618022
>>18017
Такого тоже не встречал, сначала ТЗ утверждается всеми, кто ответственный, тщательно проверяется, согласовывается и только потом уже кодеры начинают работать и если что уже ответственные по шапке получат, а не кодеры. Бля, че так не везде? Мне типа с конторой повезло просто?
26 1618023
>>18004

>в скайриме трупы не удаляются, а складываются в специальный подвал.


Кстати, полагаю, это из-за чего-то типа - объекты лута имеют собственниками объекты существ, и при удалении существа игра бы упала, при использовании такого лута.
27 1618025
>>18022
Так новая версия вышла, усовершенствованная, нужно больше фич.
Да, повезло, видимо, если вы не продолжаете возится со старыми проектами.
28 1618027
>>18025
Ну да, проекты от 17 года все.
29 1618028
>>18014
ИМХО этим не должны заниматься сами компоненты. А менеджер компонент. Хотя моя байтоебская сущность вообще просто ввела бы int layer_depth и вообще не проверяла классы :3
30 1618029
>>18009
Как кстати вообще реализуют отображение отдельно с логикой? Допустим рисуешь ты человека и у него там в это время нога двигается. Юзают блокировки? Но рендерить весь мир же долго и основной поток в это время будет просто простаивать.
31 1618033
Сап, сикрестовики. Давайте так, небольшой опрос. В формате одного предложения опишите суть вашего мейн проекта над которым вы сейчас работаете(коммерческого, разумеец).

Хочу узнать сколько из нас хуярит легаси на winapi

Начну с себя: shoticoin. Ноунейм крипта для группы компаний, которые торгуют с Ираном.
32 1618034
>>18033

>shoticoin


shitcoin
33 1618035
>>18033

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


Очково.
34 1618036
>>18033
Я не работаю коммерчески. Проект - игра мечты.
35 1618038
>>18022
Ну может где-то такое и есть, но не в геймдеве.
36 1618041
>>18036
Я работал около года в компании, где поддерживал движок. Потом слился, ибо хуйня ебаная на C++03

Я вообще не знаю почему это легально писать что-то на C++03. Блять, кресты это язык настолько конченный, что туда string нормальный в 2017 году завезли, а вы на 2003 сидите, ну хуё моё....
37 1618044
>>18022
Это очень редко где, не в геймдеве точно (там завтра придумали новую гейммеханику, захотели новый спецэффект, и добавили нового монстра). Но тут подумалось, что на c++ в среднем может быть выше процент, потому что плюсы тяготеют ко всяким наукоемким проектам, типа матана, оборонки, видеокодеков, т.е. сначала надо много и упорно думать и проектировать.
38 1618045
>>18014
Чё-то ты перемудрил, это же просто упорядоченный список, а ты ради этого нагородил наследование элементов друг от друга и динамик касты.

Вообще, связанный список — это сомнительная вещь в плане эффективности. Ну вот надо тебе получить Существо в ячейке, к примеру, и тебе приходится перебирать все компоненты, начиная с террейна — загружать каждый в кеш, хотя нужен-то только указатель.
Лучше действительно какое-нибудь специальное хранилище компонентов сделать, которое может по типу быстро вытащить нужный.
39 1618046
>>18041
Отчасти согласен, но в геймдеве string все равно не пойдет, ибо без юникода. Вангую C++03 из-за какой то древней консоли, под которую инчае не собрать.
40 1618052
>>18044
Ну у нас проекты должны быть с высокой надёжностью тип, наверное поэтому так.
41 1618059
>>18046

В 2020 добавят наконец-то std::u8string_view эту хуйню.

>>18046
Еееесть такое. Плюс там есть либы которые у них только в виде DLL без хидеров без нихуя, поприетарные.
42 1618062
#include <iostream>
#include <string_view>

int main()
{
std::string_view view("Hey, nigga!");
std::cout << view.starts_with("He") << std::endl;

return 0;
}

Двачеры, а я вам напомню. ЭТО СКОМПИЛИТСЯ ТОЛЬКО НА 2020 КРЕСТАХ.

В кресты наконец-то появился класс "строка". Поздравляю всех
43 1618066
>>18062
rfind же
44 1618067
>>18062
Я где-то читал что string_view с подводными камнями, типа его нельзя возвращать, потому что настоящая строка на которую ссылаются могла быть временной. Могу ошибаться.
>>18059
Проблема вроде как не в utf8, хранить то можно и сейчас, а функции типа поиска по строке не знают, что такое символы, а только байты.
.png14 Кб, 523x582
45 1618071
https://wandbox.org/permlink/ExExK9si4pUkijh6

Поясните, что за нахер?
46 1618075
>>18071
Методы не хранятся в объекте, они отдельно хранятся, если только не виртуальные, тогда будет ошибка, так как нужен ещё указатель на таблицу виртуальных функций и он уже в объекте хранится.
47 1618076
>>18071
undefined behavior внезапно сделал то, что от него просили. На то он и undefined
48 1618078
>>18071
Другой функции f() ты компилятору не предоставлял
49 1618080
>>18071
На, почитай, увлекательно.
https://habr.com/ru/company/infopulse/blog/338812/
50 1618087
>>18066
Ты ещё скажи str.substr(0, start.length()) == start;

Да понятно что можно, просто string_view же вещь...

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



Это понятно. Так в utf8 string ж вроде пофиксят.

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



Ну а ты не и возвращай стрингвью которые указывают на стринг. Возвращай стрингвью которые на константы указывают...
51 1618089
>>18075
Виртуальные методы же тоже отдельно хранятся, не?

А в объедке, если он имеет что-то виртуальное, хранится ссыль на таблицу с виртуалами. Ссыль размером с машинное слово.
52 1618093
>>18075
А, сорян, жорой читаю...
15556159308800.png103 Кб, 736x736
53 1618111
>>18035
Ochkovo Solutions LTD.
54 1618113
>>18076
Это не ub.
55 1618119
>>18033
Фильтр файловой системы для XDR. Знаю всю подсистему наизусть. Благо есть кресты.
56 1618120
>>18113
Там разыменование нуллптра, юби.
57 1618184
>>18062
string_view из C++17 если че и уже как 3 года существует.
58 1618185
>>18113
There shall be no references to references, no arrays of references, and no pointers to references. The declaration of a reference shall contain an initializer (8.5.3) except when the declaration contains an explicit extern specifier (7.1.1), is a class member (9.2) declaration within a class definition, or is the declaration of a parameter or a return type (8.3.5); see 3.1. A reference shall be initialized to refer to a valid object or function. [ Note: in particular, a null reference cannot exist in a well-defined program, because the only way to create such a reference would be to bind it to the “object” obtained by indirection through a null pointer, which causes undefined behavior. As described in 9.6, a reference cannot be bound directly to a bit-field. — end note ]
59 1618195
>>18185
Там нет референсов.
60 1618312
Посоны, какие аргументы в 2к20 году, чтобы вместо Java изучать C++?
61 1618315
>>18312
Работать не в унылом мертвом энтерпрайзе с кучей индусов
62 1618321
>>18089

>так как нужен ещё указатель на таблицу виртуальных функций и он уже в объекте хранится.


Ну я про то и написал, ну да, косноязычно вышло с если только не виртуальные.
63 1618322
>>18312
Язык, на котором можно делать ВСЕ, от сборки древнего легаси, до современных браузеров, от микроконтроллеров, до игровых движков, веба через emscripten, куча либ на любой случай в исходниках, довольно высокоуровневые абстракции, и при этом доступ к байтоебству, чуть ли не на ассемблере. Что еще надо?
64 1618325
>>18322

> чуть ли не на ассемблере


Да буквально на ассемблере можно.
65 1618364
>>18325
Ну там есть нюансы, вроде того что надо писать отдельный ассемблер для сборки в gcc и в студии.
66 1618370
>>18322
Поддержку в браузерах бы нормальную ещё. А не на уровне wasm.
67 1618374
>>18370
Была раньше, NaCl в хромом. Не знаю, дырявая наверное оказалась.
68 1618401
>>18120
Где ты видишь разыменование?

>>18185
Не вижу конфликта.
69 1618403
>>18401

>Где ты видишь разыменование?


оператор ->
70 1618407
>>18401

>ptr->

71 1618415
>>18403
>>18407
Доступ к данным видите? Вот и я не вижу.
72 1618418
>>18415
Вординги стандарта не помню, но там же this скрытым аргументом?
73 1618469
>>18401

>Где ты видишь разыменование?


ptr->f(), то же самое, что и (*ptr).f().
74 1618492
>>18418
Да, так методы и реализуются.
75 1618499
>>18364

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

Лоооу лэвэл вирчуал машиииин вирчуал машииин, вирчуал машииин

Пиши на интермидиет коде и будет тебе счастье.
76 1618501
>>18499
О, LLVM, это деду нравится.
78 1618504
>>18501
Рил, купил бы макбук только за то, что сделали эти гомсексуалисты хороший компилятор...
79 1618507
>>18503
>>18415
>>18407

Бля, серьёзно, пчелики?

Напоминад для даунов.

int me - это указатель
me = &yourmama - это мы указателю даём хранить адрес твоей мамки
me - это разлиновывание указателя
me. и me-> это эквиваленты, считай синтаксический сахар.

Mamka
mom = new Mamka();
mom->age = 42;
(mom).weight = 90.6f;
printf("Age: %d, weight: %f", (
mom).age, mom->weight);

Это рабочий код.

Чел который говорит что разыменовывание нулптра это ub прав.
80 1618510
81 1618514
>>18401
12.2.2.1 A non-static member function may be called for an object of its class type, or for an object of a class derived (Clause 13) from its class type, using the class member access syntax (8.5.1.5, 16.3.1.1)
8.5.1.5.2 The expression E1->E2 is converted to the equivalent form ((E1)).E2. <...> Note that((E1)) is an lvalue
Так что технически есть разыменование.
82 1618517
Лично общался с Маршаллом Клоу, когда он приезжал в Яндекс рассказывать про UB несколько лет назад, многое подчерпнул и из доклада, и из пиздежа.

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

Т.е. и ТО ПОВЕДЕНИЕ, КОТОРОЕ ТЫ ОЖИДАЕШЬ - да, это тоже может случиться. И это, блять, самое страшное, потому-что потом оно может взорваться после обновления компилятора (а может и не взорваться).

На правах вброса, знали ли вы, например, что union type punning это UB в С++, и дефайнед поведение в С?

При этом - 100% компиляторов сгенерируют именно тот код, который ты ожидаешь, и все будет работать. Но это все равно UB, и оно может взорваться через 10 лет.
83 1618520
>>18517

> union type punning это UB в С++


Это когда в биты float лазяют через union int? Да.
84 1618523
>>18517

> На правах вброса, знали ли вы, например, что union type punning это UB в С++, и дефайнед поведение в С?


std::launder
85 1618534
Сап, есть задача на рекурсию: для данной суммы и списка целых чисел найти все варианты получения суммы из данного списка чисел.

Например, если дана сумма 4, и список целых чисел 4 3 2 2 1 1, то можно получить сумму 4 следующими вариантами: 4 3+1 2+2 2+1+1

Вообще не понимаю, как это сделать, где вызывать рекурсивную функцию и что в нее передавать. Вот, что я пытался сделать: https://pastebin.com/Pabkh7uc

Подскажите плз хоть что-нибудь. Спасибо.
86 1618552
>>18534
Ты можешь создавать новые списки, которые содержат не все значения.
С одной стороны, можно передавать списки, в которых по очереди выбрасываются значения
[3 2 2 1 1], [4 2 2 1 1], [4 3 2 1 1] ...
С другой, можно каждый из этих списков передавать рекурсивно, то есть из первого получится
[2 2 1 1], [3 2 1 1], [3 2 1 1], [3 2 2 1]...
Из второго
[2 2 1 1], [4 2 1 1]... и т .д.
87 1618554
>>18534
Наверное что-то вроде того

f(4,3,2,2,1,1){

if(sum(4,3,2,2,1,1) == 4){
print(4,3,2,2,1,1)}
else{
f(3,2,2,1,1)
f(4,2,2,1,1)
f(4,3,2,1,1)
f(4,3,2,2,1)
}
}
88 1618563
>>18554
Их можно генерить программно.
89 1618565
>>18517

>union type punning … дефайнед поведение в С?


Тащи определение поведения в C
90 1618578
>>18534
Если не заморачиваться дубликатами, то можно как-то так сделать
https://wandbox.org/permlink/ZdX0kHWHXHU1Oon0

Результат будет такой:
4
3+1
3+1
2+2
2+1+1
2+1+1
91 1618582
>>18563
Не совсем понял, что ты имеешь ввиду, можно, конечно, это набросок идеи, не более. Учти, что если в лоб сделать будет стопицот раз одни и те же случаи обрабатываться, нужно придумать, как сделать так, чтобы один случай только по одному разу вычислялся.
92 1618583
>>18578

>Если не заморачиваться дубликатами


Надо заморачиваться имхо, там экспонента по времени будет, если не заморачиваться.
93 1618584
>>18583
А с рекурсией она в любом случае будет, мне кажется. Но в учебных примерах на рекурсию (факториал или числа Фибоначчи какие-нибудь) обычно об эффективности не парятся — я думаю, это из той же серии задачка.
94 1618585
>>18584

>А с рекурсией она в любом случае будет, мне кажется.


Да ну не, если убрать лишние вычисления гораздо быстрее должно быть.
95 1618611
>>17971
Да, и там вычисление не векторизуется, идёт последовательно с каждой итерацией. Я как-то надеялся, что Eigen будет использовать openmp, матричные операции же хорошо можно разбить на простые действия.
Правда, матрицы константные и относительно мелкие, сторона до 16
96 1618635
>>18578
Вдогоночку, если нужны отрицательные числа во входных данных, то нужно убрать оптимизацию "if (sum < targetSum)"
(то есть, просто "else" останется).
97 1618642
>>18469
>>18503
>>18514
Еще раз повторяю, конкретно в примере выше нет UB, если бы был доступ к данным объекта в теле функции, либо прямой доступ к данным, тогда программа отработала бы некорректно, скорее всего. Вообщем UB здесь видят только люди, которые не знают ассемблер.
98 1618645
>>18642
Есть разыменование nullptr, что ещё тебе нужно для UB?
99 1618667
>>18028

>Хотя моя байтоебская сущность вообще просто ввела бы int layer_depth и вообще не проверяла классы :3


>>18018

>Так а почему нельзя сделать виртуальный getOrder(и тут просто возвращать номер в иерархии для каждого предмета), ну и потом


Честно говоря, похоже на C-Style + поясняю ниже.
>>18045

>Чё-то ты перемудрил, это же просто упорядоченный список, а ты ради этого нагородил наследование элементов друг от друга и динамик касты.


Мне надо, чтобы Существо содержало в себе указатель на Предмет (или то, что ниже ItemComponent в иерархии). Это во-первых, повышает типобезопасность, а во-вторых, позволяет Существу вызывать методы, характерные для ItemComponent и потомков, но нехарактерные для CreatureComponent.

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


У меня головой списка является Существо. Когда ему нужно узнать, какие предметы есть на клетке, оно обходит все следующие элементы Но тут опять геморрой в виде определения типа.

>Лучше действительно какое-нибудь специальное хранилище компонентов сделать, которое может по типу быстро вытащить нужный.


Не до конца понимаю это предложение. Что ли сделать глобальные векторы для Существ, Предметов, Дверей и при обращении к клетке обойти эти векторы, отобрав те элементы, у которых координаты соответствуют координатам клетки?

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

Вообще говоря, я сейчас думаю о компромиссном варианте: Есть классы TerrainComponent, TerrainDecorator и Terrain. Все Существа, Предметы, Двери и т.п. хранятся в отдельном неупорядоченном EntityList Или EntityVector, который является наследником TerrainDecorator. Если я хочу обжечь клетку, то с помощью Visitor получаю этот самый EntityList и обжигаю каждый его элемент (при этом Существо получает урон, бумажные предметы уничтожаются, деревянная дверь загорается...). Если нужно получить существ, то тем же способом получаю список и опять с помощью Visitor фильтрую всех, кроме Существ. (с таким подходом еще и уменьшается ответственность Существ и Предметов, потому что больше не нужно хранить указатель на следующий элемент в списке, а лишь собственные координаты).

По-моему это позволит избавиться как от dyamic_cast, так и от метода вроде getOrder (благодаря шаблонам и виртуальным методам). Но я предвкушаю случай, когда будет непонятно, чем является та или иная НЁХ, которую хочу ввести в игру - отдельным декоратором или энтити?

Я с Entity-Component-System не знаком, поэтому прошу бывалых пояснить, позволит ли эта архитектура избавиться от подобных проблем.
99 1618667
>>18028

>Хотя моя байтоебская сущность вообще просто ввела бы int layer_depth и вообще не проверяла классы :3


>>18018

>Так а почему нельзя сделать виртуальный getOrder(и тут просто возвращать номер в иерархии для каждого предмета), ну и потом


Честно говоря, похоже на C-Style + поясняю ниже.
>>18045

>Чё-то ты перемудрил, это же просто упорядоченный список, а ты ради этого нагородил наследование элементов друг от друга и динамик касты.


Мне надо, чтобы Существо содержало в себе указатель на Предмет (или то, что ниже ItemComponent в иерархии). Это во-первых, повышает типобезопасность, а во-вторых, позволяет Существу вызывать методы, характерные для ItemComponent и потомков, но нехарактерные для CreatureComponent.

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


У меня головой списка является Существо. Когда ему нужно узнать, какие предметы есть на клетке, оно обходит все следующие элементы Но тут опять геморрой в виде определения типа.

>Лучше действительно какое-нибудь специальное хранилище компонентов сделать, которое может по типу быстро вытащить нужный.


Не до конца понимаю это предложение. Что ли сделать глобальные векторы для Существ, Предметов, Дверей и при обращении к клетке обойти эти векторы, отобрав те элементы, у которых координаты соответствуют координатам клетки?

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

Вообще говоря, я сейчас думаю о компромиссном варианте: Есть классы TerrainComponent, TerrainDecorator и Terrain. Все Существа, Предметы, Двери и т.п. хранятся в отдельном неупорядоченном EntityList Или EntityVector, который является наследником TerrainDecorator. Если я хочу обжечь клетку, то с помощью Visitor получаю этот самый EntityList и обжигаю каждый его элемент (при этом Существо получает урон, бумажные предметы уничтожаются, деревянная дверь загорается...). Если нужно получить существ, то тем же способом получаю список и опять с помощью Visitor фильтрую всех, кроме Существ. (с таким подходом еще и уменьшается ответственность Существ и Предметов, потому что больше не нужно хранить указатель на следующий элемент в списке, а лишь собственные координаты).

По-моему это позволит избавиться как от dyamic_cast, так и от метода вроде getOrder (благодаря шаблонам и виртуальным методам). Но я предвкушаю случай, когда будет непонятно, чем является та или иная НЁХ, которую хочу ввести в игру - отдельным декоратором или энтити?

Я с Entity-Component-System не знаком, поэтому прошу бывалых пояснить, позволит ли эта архитектура избавиться от подобных проблем.
100 1618669
>>18667
Да, для внятности добавлю, что мои термины Component и Entity не имеют ничего общего с ECS. Компонент - это из паттерна "Декоратор", а Энтити просто само в башку пришло.
101 1618682
>>18667

>Не до конца понимаю это предложение. Что ли сделать глобальные векторы для Существ, Предметов, Дверей и при обращении к клетке обойти эти векторы, отобрав те элементы, у которых координаты соответствуют координатам клетки?


Не, я имел ввиду хранилище компонент внутри ячейки. Чтобы писать "cell->get<CreatureComponent>()", или типа того. Ну короче, ECS обычный, да.
Хотя глобальный список тоже может понадобиться, если часто нужно искать какие-то сущности, чтобы не перебирать все ячейки.

> Мне надо, чтобы Существо содержало в себе указатель на Предмет


Хм, ну оно может держать указатель на клетку, в которой оно находится, а из клетки уже вытаскивать что угодно.
Хотя если этот предмет принадлежит существу, а не лежит на полу (т.е. когда существо ходит с одной клетки на другую, предмет двигается вслед за ним), то лучше, чтобы существо само хранило у себя свой инвентарь, не втягивая в это клетку.
102 1618692
Зачем нужны лямбды? Какую проблему они решают? Как по мне это синтаксический сахар, причем весьма странно то, что чтение кода они нисколько не упрощают, ведь чтобы действительно понять, что происходит, нужно знать специфику лямбд. Короче поясните мне за эту юзлесс конструкцию, желательно с пруфами в виде реальных кейсов в реальных проектах.
103 1618698
>>18682

>Не, я имел ввиду хранилище компонент внутри ячейки. Чтобы писать "cell->get<CreatureComponent>()", или типа того. Ну короче, ECS обычный, да.


Либо я опять не понял, либо потребуется несоразмерно много памяти. Ведь карта состоит из 1600-3200 клеток, из них не больше 100-200 заняты чем-то, помимо террейна.

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


Указатель на предмет нужен существу для того, чтобы оно могло быстро проверить находящие на клетке предметы. Например, когда желает что-то подобрать с пола.
104 1618702
>>18692

>Зачем нужны лямбды?


Можно сказать, что лямбда - это вложенная в функцию функция. С помощью захвата она имеет доступ к переменным окружающей функции. Что можно делать? Например, обработчики событий, написанные по месту. Но надо не забывать что у лямбд оверхед.
105 1618707
>>18702
А что тогда вместо нее, если это оверхэд?
106 1618717
И вообще, прошу скинуть исходники какого-нибудь мелкого проекта с использованием ECS. Типичный рогалик является либо говном мамонта на C, либо написан явно в стиле ООП.
107 1618733
>>18692
Попробуй потоньше
108 1618738
>>18707
Обычные функции, оверхеда будет аж на 0.00000001% меньше.
109 1618741
>>18702
Я ровно также могу любые переменные передать в качестве аргументов в нужную мне функцию. Не убедил.
110 1618743
>>18582
Да это так, но я за него лабу писать и не собирался :3
111 1618746
>>18741
Зачем нужны циклы, когда есть if+goto???
112 1618747
>>18741
Так я и не спорю что лямбда это просто синтаксический сахар. Просто тебе надо будет скорее всего написать: класс обертку, функцию колбэк в нем, передать этот объект по указателю, а при вызове передать все переменные по ссылкам или указателям, прописав это все по два раза. И еще следить за временами жизни. А с лямбдой ты просто пишешь выполняющий работу код.
113 1618749
>>18738
Тащемта лямбды без захватов и транслируются в обычные функции.
114 1618751
>>18746
я думаю для удобства восприятия, кроме того полагаю дело в компактности кода, goto тоже практически не используется (хотя иногда бывает удобно). Когда видишь цикл сразу понимаешь, ща будут что-то перебирать. Когда видишь if читаешь дальше.
115 1618755
>>18692
по мне так норм тема, когда ф-ия нужна один раз и именно здесь во-первых сразу понятно
1. Она нужна только здесь и никто ее вызвать больше не сможет
2. Не надо придумывать всякие мудацкие имена для мудацких функций.
3. Можно въебать что-то простенькое, например найти числа больше трех, удобно для контейнеров.
116 1618757
>>18747
Я просто указатель на функцию передам. И сделаю вызов с нужными аргументами.

> по мне так норм тема, когда ф-ия нужна один раз и именно здесь во-первых сразу понятно


В таком случае да, полезно, но это штатный случай. Как по мне, это какой то оверинженеринг пилить лямбды только ради этого.
1509307588907.png58 Кб, 937x905
117 1618826
>>18757
Ну вот я пример с лямбдой накидал. Обработчик сообщени задан прямо в классе.
118 1618838
>>18826
Какая же у тебя упоротая подсветка.
119 1618839
>>18743
Тю, а я думал ты и есть автор вопроса.
120 1618852
>>18667

>Честно говоря, похоже на C-Style


>виртуальный getOrder(и тут просто возвращать номер в иерархии для каждого предмета)


???
121 1618862
>>18838
Это не у меня, первый попавшийся сайт.
122 1618864
>>18839
Не, я автор >>18552 ответа
123 1618866
>>18864
А, ну понятно.
1534559460335.png73 Кб, 765x677
124 1618876
>>18838
Правда, тебе наверное и моя не понравится.
125 1618877
>>18876
Не, твоя охуенна.
126 1618917
>>18876
У тебя ide превращает != в ≠ или этот символ можно пихать в код явно?
1547873105788.png310 Кб, 1836x1796
127 1618920
>>18917
IDE превращает, это шрифт с лигатурами.
128 1618941
Почему у вас у всех на темном фоне текст в IDE?
129 1618943
>>18941
Так модно.
130 1618954
>>18941
От светлой глаза быстрее устают.
132 1618960
>>18941
Вкусовщина? Мне больше нравится темная, коллега рядом сидит со светлой. Какая разница лол
133 1618962
>>18954
У меня наоборот. От темного фона через 20-30 минут глаза вытекают, на белом хоть весь день сидеть могу.
134 1618972
>>18956
Кому верить, маня-исследованиям или своим глазам, проводящим 10 часов за монитором в день?
Я пытался пользоваться светлой темой и быстро заебался. Включил тёмную, стало норм.
135 1618975
>>18972
От темной темы глаз фокус теряет, короче зрение проебешь и астигматизм заработаешь.
136 1618981
>>18972
Ты в подвале сидишь что ли? Попробуй просто яркость уменьшать тогда даже на светлой.
137 1618982
>>18975

>tfw уже астигматизм

image.png459 Кб, 1920x1080
138 1618990
>>18941
Позёры.
139 1618991
>>18975
Астигматизм у меня с рождения, так что хуй. Ещё и экранной лупой пользуюсь.

>>18981
Наоборот, сижу у окна. Глаза от света быстро заёбываются. Яркость менять бесполезно.
140 1619001
В темноте рили вредно сидеть? Не люблю с верхним светом сидеть за компом.
141 1619018
>>19001
По современным исследованиям темнота вносит самый большой вклад, это даже хуже чем пялиться в мелкие экраны телефонов.
142 1619039
>>19001
Рили. Алсо, ебал в рот это зрение, все детство ебошил в игори по 12 часов в день всегда была единичка, как только стукнуло 20 лет, за год ослеп, хотя втыкал за компуктером уже гораздо меньше, часа 2-3.
143 1619043
>>19039
С чем это связываешь?
>>19018
Ты с верхним светом сидишь ночью или лампы достаточно?
144 1619046
Ананасы, вопрос такой
Есть некий класс (не шаблонный), внутри него есть несколько векторов которые содержат pair<string, некий тип>
У этого класса есть функции для поиска элемента внутри этих векторов (т.е. для каждого вектора своя функция) по pair.first грубо говоря по имени, если не найдено ничего, то вернётся дефолтное значение (элемент по нулевому индексу).
Можно ли как-то сделать одну шаблонную функцию для этого?
145 1619061
>>19043
Со старением. Видимо накопилось за все эти годы, надо было спортом заниматься, а не за пекой сидеть, хз что в 30 будет.
146 1619067
Сорян за оффтоп, но это самый живой тред
Пытаюсь установить Visual Studio 2019 на свою винду 7 SP1, но не выходит. окно со скрина 2 просто исчезает без следа и отклика, как будто я ничего и не запускал. Почему может быть так?
148 1619084
>>19067
Хз, у меня тоже Win7 SP1, IE8, могу только перечислить список последних накаченых патчей
KB2504637, KB3033929, KB3191566, KB2872035, KB2809215, KB3004394, KB2999226, KB2882822, KB4056897
149 1619087
>>19067
Удаляй нахуй свою семёр_очку и ставь божественную шиндовс десять, ретроград ты мамкин
150 1619091
>>19087
Нинужна.
151 1619096
152 1619102
>>19087

> шиндовс десять


Может, ещё и антивирус предложишь выключить, а в сеть ходить исключительно на http-сайты, нечегоскрыватель?
153 1619116
>>19102
А в семёрку-то они добавить не догадались.
154 1619121
>>19102

> Может, ещё и антивирус предложишь выключить, а в сеть ходить исключительно на http-сайты, нечегоскрыватель?


В 2к20 антивирус нужен только корпорациям для защиты своих серверов от бабы Клавы.
Если у тебя возникло желание поставить антивирус на домашний компутатор, значит ты долбоёб, не умеющий пользоваться интернетом.
155 1619128
>>18956
Ну там написано что светлый фон лучше показывает себя при кратковременном использовании, а при долговременном он может быть вреднее тёмного.
156 1619131
>>19116
Не догадались. Иначе не было бы смысла так навязывать десятку, когда она вышла.

>>19121
На приличных сайтах тупо нет кряков. Если ты на глаз можешь определить чистый экзешник от экзешника с сюрпризом, то таких, как ты, единицы, и они на двачах не сидят.
157 1619133
>>18757
весь си++ оверинжиниринг так-то, один возврат константного значения чего стоит
158 1619137
159 1619141
>>19137

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



А завтра все данные с (((этого))) компьютера улетят в "облака" для вашего "удобства".
160 1619143
>>19087
привет изе
161 1619150
>>19141
Всё давно к этому идёт к "светлому" облачному будущему. Я уверен, что лет через 20 это будет не шуткой, а реальностью.
162 1619157
>>19150
Что значит идёт? Оно уже здесь.
163 1619161
>>19157
Приходи лет через 5, когда все будут писать код в браузерных ИДЕ с рекламными блоками рядом с тулзами.
164 1619163
>>19161

> будут писать код в браузерных ИДЕ


Я тут
165 1619166
>>19131

>Не догадались.


Успокаивай себя.

>>19137
Что я должен на это сказать?
image.png64 Кб, 811x762
166 1619174
Сделал маллок, оцените, вроде работает даже.
167 1619180
>>19174
В чем суть? Это просто сраный враппер вокруг HeapAlloc. Иди пиши нормальный менеджер памяти, выделяй большой кусок через VirtualAlloc и нарезай его по месту.
168 1619193
>>19180
Ну так и должно быть. HeapAlloc и так все нарезает и выделяет заранее. Для этого как бы куча и сделана, чтобы не пердолить самому.
169 1619198
>>19131
Одно слово
virustotal
170 1619204
>>19198
Антивирус перешёл с ЭВМ в облако, но не исчез.
171 1619213
>>19198
Ты наверное не слышал, но там то ли урезанные версии, то ли лимит времени проверки, но есть случаи когда результат проверки одним антивирусом там и локально различается.
1470984186583.png10 Кб, 800x600
172 1619250
Че за игра?
173 1619254
>>19102
Тада линупс.
174 1619258
>>19102

>мям я ананимас


>сидит на мейлаче

175 1619264
>>19254
Тада юзерфрендли

>>19258
Хрен бы с этой анонимностью. Речь о том, что десятой пользоваться тупо опасно.
176 1619265
>>19264

>Тада юзерфрендли


По мне так линупс более юзерфрендли нежели винда.

>Речь о том, что десятой пользоваться тупо опасно.


В каком смысле? Она взорвёт комп твой или что?
177 1619269
>>18642
Я тебе строчки из стандарта привёл, в которых говорится, что при вызове функции класса по указателю на объект неявно производится разыменование указателя. То, что его по факту нет в генерированном коде не значит, что это формально не UB.
178 1619270
>>19250
Не знаю, но напомнило виновый Hexcells
179 1619271
>>19265

> По мне так линупс более юзерфрендли нежели винда.


Ну, хз. Когда под твоё оборудование тупо нет драйверов, а от банального обновления отваливается переключалка раскладки или звук, юзерфрендли это не назвать. Я про убунту сейчас. С гентой у меня всё было намного хуже.

> В каком смысле? Она взорвёт комп твой или что?


Я там выше кидал ссылку, где на десятке исчезают пользовательские данные. Не удивлюсь, если и взорвётся.

Вообще, кругом говнище одно. Ну и ладно, здесь не /s/.
180 1619273
>>18642

>если бы был доступ к данным объекта в теле функции, либо прямой доступ к данным


Тебе же написали выше, там передается this.
181 1619274
>>18642
С каких пор UB измеряется ассемблером?
182 1619276
>>19271

> тупо нет драйверов


Хз, сам с таким не сталкивался, а не, было, что не видел wifi usbшный, но тоже всё быстро фиксится, клонишь гит ихний, устанавливаешь по РЕАДМЕ и всё работает.

>Я там выше кидал ссылку, где на десятке исчезают пользовательские данные.


Не знаю, на работе у всех компы с десяткой, сами проекты на серваках на убунте, дома бубунту юзаю и всё ок.
183 1619331
>>19193
Чтоб не пердолить самому есть уже new.
184 1619335
>>19193
Какбы malloc реализует кучу сам, так что "сделал маллок" подразумевает реализацию кучи.
185 1619353
товарищи, есть код https://wandbox.org/permlink/jNtO5JpA2ziKdN8Q

Вываливается компиляция в gcc и clang'е.
Но компилится и работает в студии.
Что-то не так с шаблонами я намудрил.
Посмотрите плиз!
186 1619355
>>19353

вот такая ошибка:

prog.cc: In function 'std::ostream& syn::operator<<(std::ostream&, const syn::Simple_timer_t<Clock_t>&)':
prog.cc:62:42: error: expected primary-expression before '>' token
62 | t.remaining<std::chrono::milliseconds>().count();
| ^
prog.cc:62:44: error: expected primary-expression before ')' token
62 | t.remaining<std::chrono::milliseconds>().count();
187 1619358
>>19335
Маллок подразумевает маллок. За меня кучу реализует ОС, хз че там у линуксодебилов. Чем тебе системный хипаллок не маллок?
188 1619364
>>19355
Погуглил за тебя, объяснить синтаксис не могу, потому что не понял, но надо изменить на
t.template remaining<std::chrono::milliseconds>().count();
189 1619367
190 1619370
>>19364

Сасибо! Кажется, работает! А как ты гуглил? По ошибке gcc или clang? Покажи запрос! (стыдно)

И какой review дашь этому быдло классу?

p.s
Я на самом деле С++ не умею и обычно пишу как Си с классами.

Езё раз спасибо
191 1619371
>>19364
Что за дичь.
192 1619379
>>19371
Я и сам не понял. Впервые вижу такой синтаксис. Видимо это помощь парсеру, который не ожидает там <.
>>19370
По тексту ошибки и гуглил. Твой код вообще не смотрел, лол. Точечно исправил и дальше пошел, у меня свои методы.
193 1619383
>>19379
Вот как выучить с++? Как думаешь, что знаешь его и такая дичь вылазит или узнаёшь про перегрузку оператора запятая.
1527795095732.png112 Кб, 951x803
194 1619386
195 1619388
>>19379
По тексту ошибки и гуглил. Твой код вообще не смотрел, лол. Точечно исправил и дальше пошел, у меня свои методы.

По выводу clang'а ?
2020-02-29-2311501280x1024scrot.png253 Кб, 1280x1024
196 1619394
1451328382674.png84 Кб, 1377x616
197 1619398
>>19394
Весело, конечно, так и исугаться недолго.
Наверное, это потому что у меня по привычке англ. стоит в гугл аккаунте
198 1619665
Либа для длинной арифметики?
Желательно, без перегрузок и move-семантики, а вроде div(a,b,&c,&d), чтобы было видно все переменные и не было неявных перемещений и копирований.
199 1619716
200 1619747
>>19394
Ммм, вондбокс. Мне нравится
201 1619754
>>19747

Разверни мысль
202 1619795
Int in;
char ch;
while(1){
If(cin >> in)
cout << "int "<< in << endl;
else{
cin >> ch;
cout << "char " << ch << endl;
}
}

Господа, можно как-то заставить это работать? Почему в случае, если не получилось считать int, поток не перенаправляется на char и цикл просто зацикливается?
203 1619796
>>19795
Чистить поток нельзя, тк мне нужны данные, которые не записались в in.
204 1619810
>>19795
Получай строку, потом её парси
205 1619814
>>19810
>>19795
Уже не важно, добавил cin.clear(), заработало.
206 1619840
>>18941
Просто приятнее читать написанный тобой говнокод, вот и всё.
Вкусовщина, имхота, етс
207 1619848
>>19814

> Уже не важно, добавил cin.clear(), заработало.


Ясно. Мб лучше в жс-макаки перекатишься, пока не поздно?
208 1619857
>>19848
Нахуй тратить ресурсы программы на парсинг строки, если можно все красиво и сразу кластеризовать? Мм?
209 1619890
>>19857

>ресурсы программы


Двач - на лезвии науки.
210 1619894
>>19890
Ты токсик, неужели на работке так анально пенетрируют?
211 1619913
>>19894
Лол. Тебе бы правда в JS, там и компилятора нет, никто на ошибки тебе указывать не будет, инфантильный ты наш.
212 1619916
>>19857

> Нахуй тратить ресурсы программы на парсинг строки, если можно все красиво и сразу кластеризовать? Мм?


Сука пчел XD
Ты хоть сам понял, что написал?
213 1619932
>>19913
>>19916
Семени Семён, семени...
1485843434821.png7 Кб, 415x134
214 1619935
>>19932
Ты действительно такой тупой...
215 1619943
>>19935
Специально на всякий случай из под прокси написал?
216 1619944
>>19943
Чувак, те на ебло уже третий человек(я) ссыт.
217 1619945
>>19943
Да. Я же программист, в отличии от.
image.png7 Кб, 359x99
218 1620112
Сап програмач, пишу код по книге, но алгоритм count и cin не определяются, что может быть не так?
image.png5 Кб, 312x68
219 1620125
>>20112
как выяснил нужно было поставить std::
но теперь еще вопрос задам, почему как мне кажется сбилась кодировка
220 1620130
>>20125

> нужно было поставить std::


Наверняка в примере либо инклудили <iostream.h> (не делай так), либо проебали using namespace std; (и так тоже не делай).

> сбилась кодировка


Почитай про setlocale, либо пиши все сообщения на английском.
221 1620132
>>20130
был, но он не работал и я поставил #include <iostream> и всё пошло

>using amespace std;


вроде при первом открытии для создания программ для консоли это было записано.
image.png41 Кб, 1463x183
222 1620406
Что не так? Эти vShaderSource и прочие инициализированы в utils.h, который инклюдится в utils.cpp и main.cpp
223 1620423
>>20406
Попробуй загуглить inline variables
224 1620430
>>20406
Нормальную ос и иде установи, а так все норм.
225 1620446
>>20423
inline помог, ещё помог static, но при нём этом есть предупреждения, что эти переменные defined but not used. Не понимаю, в чём трабл
226 1620467
>>20406

>Эти vShaderSource и прочие инициализированы в utils.h, который инклюдится в utils.cpp и main.cpp


Ну так компилятор его два раза и включил. Ты эту инициализацию либо #pragma once делай. Либо
#ifndef UTIL_H_
#define UTIL_H_
/ codecodecode /
#endif
Либо статиками делай, если нужны разные в каждом файле.

И вообще переменные инициализироваться в .h файлах не должны (если это не константы), мне кажется, ты их как-то не так используешь.
227 1620471
>>20467
мимо из с
228 1620473
>>20467
Таки константы, ifndef есть
229 1620478
>>20473
Показывай код тогда, где-то ошибка.
image.png63 Кб, 533x606
230 1620484
231 1620485
>>20484
Только на лицо за второй инклюд не ссыте
232 1620493
>>20484
Ну, тут я ничего не вижу. Может имя где-то такое же? ютил_х свой переименовывать пробовал? А так может где-то в мейке ошибся, но я в г++ не очень понимаю.
233 1620495
>>20446
Так а где ты их используешь?
234 1620501
>>20495
Раскомментил функцию в main.cpp, где они используются, и варнинги пропали, не думал, что эти варнинги относятся к конкретному файлу
235 1620527
>>20423
>>20446
>>20467
>>20501
Метод тыка это не лутший вариант решения проблем
236 1620528
237 1620529
>>20527
А какой лучший?
238 1620533
>>20529
Попробуй из /dev/urandom генерировать текст, пока программа с нужным поведением не родится
239 1620537
240 1620539
>>20537
Это мамкин шутник
241 1620641
>>20529
Читать учебники и понимать что именно меняешь и зачем.
Читать сообщения ворнингов которые буквально говорили тебе что не так.
Сначала тебе писалось, что символ переопределен. А потом - что символ определен, но нигде не используется.
242 1620754
>>20641
Как символ в инклуд гардах может быть переопределён?
243 1620811
>>20754
Всё, прочитал, это отличие с++ от с.
244 1620849
>>18119

>XDR



Ну и нахуя продал попец глиномесам?
245 1620909
>>20130

>Почитай про setlocale, либо пиши все сообщения на английском.


W S T R I N G
S
T
R
I
N
G
246 1620945
>>20909
Зачем это в консоли??
image.png17 Кб, 385x88
247 1620950
>>20945
Чтобы небыло вот так. Просто юзаешь wcin, wcout с wstring и все.
248 1621134
>>20950
сет локал поставил и всё гуд, или тогда будут баги с английским?
249 1621150
>>20909

> wstring


Сама MS призывает тебя выкинуть это говно
https://docs.microsoft.com/en-us/windows/uwp/design/globalizing/use-utf8-code-page
250 1621152
251 1621164
>>21152
Простите, я не очень умный.
252 1621167
>>21150
Для utf8 есть только ЛИТЕРАЛ u8"", а класс utf8_string никто не завозил, так что нахуй этот utf8.
>>21134
Англ в диапазон 0-128 входит, так что не должно.
image.png3 Кб, 339x79
253 1621171
>>21167
збс тогда
254 1621214
>>21150
Но ведь весь винапи использует юникод.
image.png401 Кб, 433x649
255 1621215
>>17857 (OP)
книга по изучению c++ от создателя оного является хорошим материалом для начинающего?
и что по изданиям можете рассказать?
256 1621221
Что нужно изучать помимо крестов, чтобы работу нормальную найти? Большинство вакансий требует что-нибудь в довесок к языку. Где-то хотят ядро линукс, где-то базы данных и SQL, где-то численные методы. На чистых крестах пусть даже с шаблонами уже не получится выехать, зарплаты мизерные. Знать все одновременно нереально, но нужно знать хотя бы что-нибудь из этого на хорошем уровне, чтобы пройти собес в приличную контору. Что более перспективно сейчас, по вашему мнению?
257 1621238

>> лучше для начала наверни сабж из си треда, хотяб 100 страниц, будет намного интересней

258 1621241
>>21238
Тогда по чистому си кого посоветуете?
259 1621246
>>21221
за бугром нормальные зарплаты
260 1621313
>>20130
Как ты будешь пользоваться cout и cin без инклюда библиотеки iostream?
261 1621318
>>21313
Так поставил, но пример очень странный был, изначально стояло iostream.h
262 1621325
Я не понял, теперь без qt аккаунта не скачать установщик? В чем суть изменений условий распространения у них с февраля?
263 1621363
>>21221

> Где-то хотят ядро линукс, где-то базы данных и SQL, где-то численные методы.


Ну да. Плюсы нужны только там, где нужна скорость. А это либо математика, либо кишочки системы.
264 1621371
>>21313
В старых компиляторах была разница между подключением иостреам и иостреам.х (и прочим), последний был пережитком времён, когда не было неймспейсов.
265 1621389
>>21371
А, понял, спасибо.
266 1621437
>>20527
Зато самый действенный.
267 1621445
268 1621529
на сколько важно знание C в изучении C++
269 1621534
>>21529
ты должен знать С на каком-никаком уровне, но сложные чисто сишные идиомы и прочее нахуй не нужны.
270 1621537
>>21534

>сложные чисто сишные идиомы


Это что?
271 1621539
>>21537
как я понимаю, что прям задротом быть не нужно, а нужно понимать основы
272 1621541
>>21539
Ну как ты определишь, когда переставать быть задротом? Хоть примеры бы какие назвал.
273 1621543
>>21537
GOTO для эмуляции RAII например, ебанутые макросы вместо тимплитов и прочая хуйня с ручным мемори менеджментом вместо сиплюсплюса.

Ну это то, что в голову пришло сразу
274 1621545
>>21541
для меня, когда ты уже можешь работать на уровне синьёра
275 1621546
>>21545
Ага, то есть, чтобы начать учить с++ надо знать С почти на уровне сеньёра, я тебя правильно понял?
276 1621548
>>21546
Ты можешь начинать учить прям сразу с С++ (например по яндексовским курсам с курсеры), а потом плавно спускаться на уровень чистого си, чтобы работать с операционной системой, которая отдает сишные интерфейсы
277 1621551
>>21543
Спасибо.
278 1621552
>>21546
нет, я имею в виду, что знать так не нужно
279 1621557
>>21167

>а класс utf8_string никто не завозил


И никогда не завезут, клован блядь, разобрался бы как utf8 работает. Половина методов будет аналогична std::string, а для другой нужно будет писать аналог icu чтобы они работали правильно.

>>21214

>Но ведь весь винапи использует юникод.


Собственно о том и речь, что WinAPI A-функции теперь жрут utf8 строки. Разумеется проверять это я не буду

>>21546

>на сколько важно знание C в изучении C++


Лишним не будет. Считай линкер работает примерно также, препроцессор такой же, низкоуровневая работа с указателями такая же. Притом, на работу новичков берут охотней, поскольку язык проще.
280 1621585
>>21215
не очень, толку маловато, как на си++ писать она не учит
281 1621587
>>21445
тухло, ку-тэ нужно в основном в НИИ парашах разных, в коммерции на хуй никому не упало. Сейчас вполне хватит с++ и stl.
282 1621588
>>21557
си важен только с академической точки зрения. Раскрывает многие понятия и можно сразу что-то полезное делать, не стреляя себе в ногу. В коммерции на хуй не упал сейчас, вакансий ультрамало.
283 1621598
>>21587
Блядь, лол, ну тебе с дивана виднее.
284 1621648
>>21588
На заводах в микрухах си.
285 1621791
>>21598
слышь, петух, ебало закрой, я на ку тэ уже 5 лет пишу и работу хуй найдешь, что бы с этого ку тэ на норм зарплаты перелезть, либо stl и прикладнуху задротить надо вроде матан, сети вообще на яву переползать, у меня все крестовики знакомые давно уже с крестов съеблись, т.к. на си++ на 120к надо деревья вращать на собеседовании и 5+ опыта, а на яве просто на шару для людей с опытом из 10 собесов на 5 120 предлагают, за яву в ДС вообще херки рвут все, ява нужна, программистов нет, всех сбербанк скупил, а крестобляди поползли с регионов с закрывающихся к хуям заводов и прочих роскосмосов с обороночками, говорят там вообще лютый пиздец
286 1621795
Пацаны, как из крестопетухов и обороночки перекатиться в крестобоги? Какие курсы порекомендуете?
287 1621798
>>21795
Просто™ и без задней мысли™ меняешь место работы, остальное само придёт, если ты не овощ
288 1621801
Двачеры, что сейчас хоть на собеседованиях спрашивают по си++? Как на счет того что бы организовать какой-нибудь чатик? Ранее я пытался с одним аноном кентануться и выслал ему подробные разборы вопросов с собеседований которые сам проходил (я был на двух и вопросы были интересные), но он потом куда-то пропал, так что для всех заинтересованных пишите мне на
agnomad1QRc488ANUSgm98"ailPUNCTUMco2!9m, ну и могу ньюфаням что-то подсказать.
289 1621820
Аноны, почему статический член класса нельзя определить в функции main, а надо обязательно либо в хедере либо в спп файле? Не понимаю, объясните пожалуйста.
290 1621844
>>21820
Потому что переменные в функциях создаются на стеке?
291 1621872
>>21820
Потому что член класса - внутри класса, а свободная функция - стоит вне всех классов.
292 1621876
>>21820
А мне интересно, зачем и как именно нужно дробить эти cpp файлы, почему нельзя в хедере все прописать и что за hpp файлы?
293 1621880
>>21557

>а для другой нужно будет писать аналог icu чтобы они работали правильно


Так пусть пишут, я знаю, что с utf8 не все так просто и символы там могут быть разного размера, но почему-то в других языках где utf8 есть изкаробки все прекрасно работают включая доступ к произвольному элементу и тд.
294 1621890
>>21880
Потому что туда впендюрили аналог icu. В жс например charCodeAt и codePointAt разные функции.
295 1621900
>>21876
Это описывается в начале учебников по языку.
296 1621924
>>21150

> ActiveCodePage property in the appxmanifest for packaged apps, or the fusion manifest for unpackaged apps, to force a process to use UTF-8 as the process code page.


> You can declare this property and target/run on earlier Windows builds, but you must handle legacy code page detection and conversion as usual.



Чет херота какая-то, надо мудрить с какими-то манифестами, которые ещё и могут не сработать.
297 1621947
>>21801
Отписался, скинь свои вопросы, а я тебе. Скажи ты был на собеседовании в компании что на Бауманской? Мне там тоже такое досталось?
298 1621976
>>18033
Сетапы антивируса
299 1621979
class Buttons : puЫic QGroupBox {
Q_OBJECT
puЬlic:
Buttons(QWidget* pwgt = 0); }
Почему 0 а не NULL?
300 1621980
>>21979
потому-что говноедское implicit конвертирование.

А вообще - nullptr
301 1621984
>>21557

>>Но ведь весь винапи использует юникод.


>Собственно о том и речь, что WinAPI A-функции теперь жрут utf8 строки.



Но это включается только глобально и может привести к куче проблем (и приводит, например в некоторых драйверах)
Вот если бы это можно было бы на уровне бинарника манифестом включать (как dpi, long path и прочее)....
302 1621994
>>21979
Ну а что ты хочешь от людей с raw pointers в 2020
303 1621995
>>21900
Блин, несколько книжек читал, там нифига, в начале всегда про пресловутый хелоуворлд. В Керниган-Ричи нашел действительно, правда в середине.
304 1621996
>>21980
>>21994
Я думал, что Qt это передовая часть экосистемы C++?
305 1621997
>>21996
QT - это свой ебанутый диалект говноедский, который за счет легасевой нагрузки не имеет никакого отношения к модерновому С++.
306 1622004
>>21996
Некоторые вообще не считают кьюти плюсами. Например такой вещи как Q_OBJECT в языке не существует, это для их собственной утилиты.
307 1622031
>>21980
>>21979

Знаете какое значение макроса NULL? Правильно, implementation defined. По крайней мере был. Да наверно и щас.

>>21996
Нее, чел, кутэ это полная срака. Я на работе переписываю гуиху на электрон, потому что кутэ это срака...
Core на крестах.

>>22004

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



О боже, эти божественные слотосигналы из кутэ...
308 1622047
>>21876
А мне интересно, зачем и как именно нужно дробить эти cpp файлы, почему нельзя в хедере все прописать

Потому что C++ это язык для даунов, вот почему.

А вообще, можно. Но не в хидере. Наоборот, хидеры нахуй.
https://en.cppreference.com/w/cpp/language/modules

> что за hpp файлы?



Это заголовочные файлы.
.c и .h в С, .cpp и .hpp в C++. Но в C++ так же поддерживается и h.

Почему же большая часть разработчиков использует .h? Потому что пидорасы.
309 1622049
>>22031

>Я на работе переписываю гуиху на электрон


Удобнее чем qml?
310 1622050
>>22049
Он просто js лучше знает.
311 1622054
>>22050
Так в qml тоже есть жс, лол.
312 1622060
>>17857 (OP)

Сап, антуаны.
Хочу вкатиться в С++ из своей уютной промышленной автоматизации, поскольку все больше производителей контроллеров включают его в список поддерживаемых языков, помимо языков из стандарта IEC61131-3.

Подскажите пожалуйста с чего начать? Поскольку я привык работать с железом когда оно включается, едет, греет, крутит-вертит и так далее. А тут сплошная абстракция на абстракции с кучей непонятных терминов типа header файлы и прочее и прочее.
313 1622063
>>22049
Qml тоже та ещё пепла и нужен в трёх шарагах
314 1622071
>>22060
Страуструпа читай
315 1622086
>>22060

> А тут сплошная абстракция на абстракции с кучей непонятных терминов типа header файлы и прочее и прочее.



Ты чё, на ассемблере писал чтоле?))))
316 1622101
>>22063
Я не про это спросил.
317 1622127
Зачем так много этих кастов наплодили? Почему компилятор сам не может проанализировать данные и выбрать правильный каст? Алсо, реквестирую читщит по кастам, сколько не читал все равно путаюсь.
318 1622140
>>22127
Может, си каст (type)
319 1622149
>>22086

В том числе)) серьезно, один из языков стандарта IEC это что-то похожее на ассемблер

Нет, я скорее про отсутствие связи с воплощением результата в реальности. Ну тип все курсы начинают с дрочки в консоль и это уныло. В АСУТП ты можешь чуть ли не сразу щёлкать реле и делать всякие прикольные штуки например опрокинуть тонну пакетов молока нахуй
320 1622158
>>22127
Тебе нужен только статик каст и бит каст (пока нету С++20 - то реинтерпрет каст)
321 1622176
>>22140
Его говорят не использовать. Алсо (type)var и type(var) - одно и то же?

>>22158
А подробнее? Что в с++ 20 изменится?
322 1622183
>>22149
Дак бери МК и долбись в порты. Диодами помигай, i2c попользуй
323 1622247
>>22140
сегодня нормальные компиляторы уже ворнинги выдают на c-style касты
>>22127

>Почему компилятор сам не может проанализировать данные и выбрать правильный каст?


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

>реквестирую читщит по кастам


https://habr.com/ru/post/106294/
324 1622255
>>22176

> Алсо (type)var и type(var) - одно и то же?


Нет, первое - это си-стайл, второе - functional style.
325 1622293
>>21791

>топ 10 ИТ компания, куча проектов на Qt


>челик с двачей сказал, что неактуально


Ну лан.
326 1622303
>>22255
Разница в чем?

>>22247
А я как узнаю?
327 1622305
Сап двач. Возможно ли компилировать только изменённые .cpp файлы а потом линковать их с уже скомпилированными файлами .o? Я видел такое, но как именно это делается, каким софтом?
328 1622321
>>22305
Система сборки
Для студии это делает MSBuild
329 1622344
>>22305
компилируешь в КОНСОЛЬКЕ?
Любая билдсистема умеет это делать за тебя.
330 1622346
>>22305
Да, и давно уже есть предкоипилированные хедеры, полезно для объемных хедер онли библиотек и прочего.
331 1622348
>>22305
Асло для сокращения времени компиляции придумали pimpl.
332 1622359
>>22348
Чето юзлесс херня какая-то, уменьшает время компиляции, но имеет оверхед во время выполнения.
333 1622362
>>22359
Лол!
334 1622364
>>22348
Пимпл тащемто не для этого придумывали
335 1622428
>>21984

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


>Вот если бы это можно было бы на уровне бинарника манифестом включать (как dpi, long path и прочее)....


Оно и включается манифестом.
Глобально было во время бета-тестирования.
336 1622442
Опытный анон, работающий под GNU/Linux, расскажи, пожалуйста, про свой набор инструментов.
1. DE (WM?), файловый менеджер (консоль?), среда разработки (редактор кода?).
2. Используешь ли какой-то фронтенд для Git'а? А если через консоль все хуяришь - следишь ли за чистотой коммитов или тебе поебать?
3. Ну по мелочи еще расскажи что-нибудь. Например, на чем виртуалки крутишь, или как дела вообще.
337 1622506
>>22442
ubuntu норм (debian или arch тоже, но у большинства тех, вместе с кем работаешь, будет ubuntu)

с файловым менеджером, ide, gui, фронтендом для git-a — идёшь нахуй
используй vim+tmux, исполняй в консоли

для чистоты коммитов — git diff, git add --patch и прочее
git log --graph тебе фронтенд, лол

если есть малейшая возможность не использовать виртуалку — не используй
иначе — virtualbox норм (ну, насколько вообще такое может быть норм)
338 1622512
>>22506

>если есть малейшая возможность не использовать виртуалку — не используй


>иначе — virtualbox норм (ну, насколько вообще такое может быть норм)


Что плохого в виртуалках? Тем более в линуксах такое раздолье с qemu+kvm. Это не говоря о контейнерах, которые вообще манна небесная. Свернул, развернул, упаковал, заморозил, разморозил, назад к ошибке отшагал. Красота! Или одной командой создал, воспользовался, а потом удалил вообще без хвостов.
339 1622522
>>22512
зачем держать у себя windows и запускать виртуалку с linux, если можно поставить linux?
не будет тормозить, как минимум, и всякой пежни (типа vbox-guest-additions) тоже не будет
то, что контейнеры хороши, тут вообще ни при чём
340 1622525
>>22522
Я думаю, вопрос не про это был. Виртуалки он собрался использовать на линуксе. Виртуалки с другими линуксами, или вообще для написания ос под какую-нибудь атмегу. Не говоря уже о упаковке своих проектов в докер, что вообще стандартная практика на сегодняшний день.
341 1622528
>>22525
а, ок
342 1622530
>>22506
Спасибо.
А по плагинам для vim'а что? Ну, бывает же такое, что ты включаешь в файл какой-нибудь, блядь, #include <linux/sched.h>, и такой, ээ как там че называется. А пока в системе его откопаешь - поседеешь.
То есть, переход к хэдеру, наверное, минимум необходимый. Юзаешь что-то? Вся подобная хуйня, что встречал, завязана на clang.
Вообще, если не западло, скинь свой .vimrc.
Я сам сейчас думаю - юзать vim или же qtcreator + fakevim.
webcam-toy-photo1 — копия.jpg81 Кб, 800x600
343 1622539
Народ, надо помочь другу с универской задачей, давно не писал на плюсах и глубоко в библиотеки никогда не лез, ибо решал вычислительные задачи.

Задача: дан бинарный файл f1 формата BMP. Требуется реализовать считывание и запись в файл f2 всей служебной информации, которая содержится в f1.

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

Я изучил файловый ввод/вывод, знаком с std::ios_base::binary, но толка хуй есть. Подскажите, братцы, пожалуйста.
344 1622543
>>22530

>А по плагинам для vim'а что?


https://www.youtube.com/watch?v=XA2WjJbmmoM
https://www.youtube.com/watch?v=wlR5gYd6um0
+ книгу читай

>пока в системе его откопаешь - поседеешь.


nerdtree + :! grep

>если не западло, скинь свой .vimrc


формируй сам (с нуля), дело здесь не в "западло/не западло"
для начала попробуй christoomey/vim-tmux-navigator и easymotion/vim-easymotion
ну и nerdtree

>Я сам сейчас думаю - юзать vim или же qtcreator + fakevim.


только первый вариант
345 1622556
>>22539

>Не могу нагуглить, что за служебная информация в файле, что она собой представляет.


https://upload.wikimedia.org/wikipedia/commons/c/c4/BMPfileFormat.png
346 1622560
>>22428
О, надо почитать, а то во время беты посмотрел, увидел глюки и забил
Безымянный.png53 Кб, 842x549
347 1622566
У меня в системе 125% стоит масштабирование, это из-за этого предупреждение? Я главное загуглил про это, и там предлагают писать сразу в main переменную окружения
qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1");
но мне не помогает никак, неправильно задаю ее что ли?
348 1622567
>>22566
Во, задал qputenv("QT_SCALE_FACTOR", "1.25"), предупреждение пропало.
349 1622628
>>21557

> Собственно о том и речь, что WinAPI A-функции теперь жрут utf8 строки


И кому оно надо? Вот включишь, и будут у тебя проблемы с русским языком (раунд два). Потому что десяточкой мир не ограничивается, да и старых десяточек тоже навалом.
350 1622664
>>22556
Спасибо, братиш!
351 1622733
>>22628

>да и старых десяточек тоже навалом


Сами себе враги.
352 1622746
>>22303
если ты знаешь что ты хочешь от кода, то ты знаешь
353 1622784
>>22746
Ну охуеть теперь. Допустим я выделил память через std::malloc и хочу привести ее к структуре, инициализировать структуру и передать куда-то. Какие тут вариации поведения могут быть? static или reinterpret в этом случае использовать?
354 1622815
>>17857 (OP)

Объясните пожалуйста нубу, нахуя нужен #define?

Я всмысле, только для создания препроцессорных функций и констант? В чем преимущество, когда есть обычное объявление и определние переменных с функциями в основном коде?
355 1622817
>>22784
static конечно, динамичности в описываемой ситуации нет, + в отличии от reinterpret, переводит потенциальную ошибку на время компиляции
356 1622871
>>22815

>Объясните пожалуйста нубу, нахуя нужен #define?



Он нужен, когда пишешь на няшной плейн сишечке, а не на изувеченной диавольскими кознями пародии.
357 1622875
>>17857 (OP)
С фига ли функция не может вернуть массив НО может вернуть массив в составе другого объекта?..
358 1622883
>>22875
Потому что не умеет предавать размер массива, а размер объекта умеет.
359 1622886
>>22522
хм, ну да
360 1622887
>>22875

>С фига ли функция не может вернуть массив НО может вернуть массив в составе другого объекта?..



вектор возвращай, маня, и будет тебе щастье
361 1622892
>>22887
Но ПОЧЕМУ не могу вернуть массив? Вы в cpp треде так-то, а не в js -параше

>>22883
Почему с размером не может разобраться вызывающая программа?
362 1622893
>>22892

>Почему с размером не может разобраться вызывающая программа?


Потому что она тоже не знает размер.
363 1622894
>>22892
std::array возвращай, мы тут на С++ пишем
364 1622925
>>22875
Ну формально просто потому, что такой синтаксис. Массивы конвертятся в указатели на своё начало, когда упоминаются в выражениях, и поэтому массив нельзя передать в функцию, присвоить другому массиву, и соответственно, вернуть из функции. А когда он в составе другого объекта, то его имя при копировании явно в коде не упоминается, и конвертацию можно обойти.
365 1622937
>>22442
Подрубаюсь по ssh и кожу с винды с вскода, в консольке билжу/дебажу/с гитом работаю/тесты пускаю и тп.
366 1622940
>>22442
А дома убунта gnome qtcreator, но дома я редко чета делаю кроме двачевания с маняме.
367 1622955
>>22815
для отладки бывает полезно
пишешь #define DEBUG
и дальше часть кода в макросах
#ifdef DEBUG
std::cout<<"SHIT!"<<std::endl;

можно переменные генерировать
#definam make_int(a) int var_##;
368 1622963
>>22815
https://habr.com/ru/post/475162/ я с этой статьи проигрывал, касательно дефайнов
369 1622965
Народ, привет. Как можно достучаться к конкретному биту в int'е, например? Я хочу посмотреть его значение, ноль это или один, хочу изменить это значение, вывести на экран. Как это можно сделать?
370 1622967
>>22965
сдвигаешь на нужное количество вправо и делаешь & 1 ?
image.png16 Кб, 631x135
371 1622984
Объясните тупому школьнику, как решить эту задачу?...Если нельзя передавать параметр, то значит я должен в самой функции вводить с клавиатуры, но при каждой итерации рекурсии он заново будет вводить...
372 1623047
>>22875
Так исторически сложилось. /question
image.png12 Кб, 422x137
373 1623048
374 1623050
>>22965
гугли побитовые операторы
375 1623063
>>22984
http://cpp.sh/4amnh
Что-то такое?
376 1623064
>>22984
Напиши вариант с передаванием параметра.
Потом м
377 1623067
>>22984
Потом посмотри как от него избавиться (хинт - тебе надо будет возвращать результат обратно по стеку вызово)
378 1623089
>>22784

>reinterpret


Вообще никогда не трогать, кроме тех мест, где без него не компилится.
379 1623133
>>23063
Да, такое. Так я и говорю, что он выполняет твой cin при каждой рекурсии. Или то что ты кинул у тебя робит и это у меня траблы с компилятором?
380 1623181
Подскажите как грамотно сделать парсер арифметики? Подается строка типа такой: 5+6*myfunc(5,6) + myfunc(10,45)/25 и нужно вычислить значение. Моя идея просто заменять вхождения myfunc на значения и евалить, но может можно как-то более грамотно?
1433785349640.png34 Кб, 515x603
381 1623189
>>23133
Ты так и не разобрался что ли? Я же выше написал как. Там всего пара строчек.
382 1623207
>>23181
Если есть чем посчитать выражение в строке без функции, то в чем проблема допилить туда расчёт твоей функции?
383 1623212
>>23181
Парсером ты строишь дерево, а потом евалом считаешь, так? Просто функция - это такой же токен, как и операция, например +. Подумай что будет при вызове myfunc(myfunc(1,2), myfunc(3,4))
384 1623213
>>23207
>>23212
эх, придется значит свой парсер городить (или украсть и испортить чей-то), а я хотел готовым воспользоваться.
385 1623222
>>23213
Ну так загугли что-нибудь вроде "simple math parser c++" и замени их синусы на свои mOyA_FuNcTiA
386 1623442
>>17857 (OP)
Ни у кого нету слитого курса от отуса, который НЕ подготовительный? https://otus.ru/lessons/razrabotchik-cpp/process/module3/
387 1623443
>>23442
А как с отуса слить видео? Каким аддоном для фуррифокса? Те, которые я нашел, не умеют качать оттуда.
388 1623445
>>23443
Ну скачиваешь видео, задачники и прочие материалы, упаковываешь и заливаешь на торрент или какие-то рекурсы. Не думаю что для этого специальные плагины есть, хотя я за слова не отвечаю
389 1623446
>>23445

>Ну скачиваешь видео


Как скачать-то? Там в исходнике страницы есть прямые ссылки на видео?
390 1623449
>>23446
Попробуй райтклик -> Inspect/Посмотреть код -> Откроется консолька, там будет типо <video clas... и где-то среди кучи хтмл тегом будет ссылочка, на нее райтклик и открыть в новой вкладке, а там уже она либо через multipart скачается сама, либо плеер откроется как на дваче и можно будет скачать
391 1623451
>>23449
Ты так пробовал делать на любом другом курсе, где тебе доступно видео?
392 1623454
>>23451
На Отусе нет, на степике работает
393 1623798
Синьоры на месте? Когда на собесе спрашивают, типо вот у нас в программе утечки памяти, как средствами, встроенными в язык, то есть без профайлеров там и все такое, бороться с ними? Отвечаешь типо использовать умные указатели, на что говорят, что обернув все в умные указатели все равно видим что память куда-то расходуется, что делать? Сказать типо про RAII, но это же по сути то, что и делают умные указатели, короче че тут надо сказать?
395 1623849
>>23798
Правильный ответ - валгринд, или тот же студийный профайлер, который это все тоже показывает.

Хуевый ответ, который удовлетворил бы местных обалдуев - перегрузить new\delete, написать свой аллокатор, и прочая тупая хуйн
396 1623903
>>23798
Ничего не говорить, харкнуть им в ебало и уйти (убежать от охраны). Если в смарт птры обернуто действительно все, то никаким образом утечки происходить не могут
397 1623915
>>23849
Круговые ссылки
398 1623917
399 1623926
>>23915
Сам такой термин придумал или сосед по палате помог?
400 1623934
>>23849

> средствами, встроенными в язык


> без профайлеров


> валгринд, или тот же студийный профайлер,


> Правильный ответ


Вам перезвонят.
401 1623944
>>23934
А ты не силен в чтении, я смотрю
402 1623954
>>23926

>// пикрил 1


template<T, Count>
class CircleReference {

>// Тут Count вложений генерим рекурсивно через шаблоны, хз как это сделать, но уверенн, что так можно


unique_ptr<unique_ptr<...<unique_ptr<pair<T, void *>> start;

>// В конструкторе редуцируем по одной обертке и заполняем последнюю ссылку самим значением


CircleReference(T value) {...}

}

>// пикрил 2,по сути тоже самое но каждая ссылка ссылается на pair, используются shared_ptr



>// последняя ссылка, содержит ссылку на start не типизированно, так как иначе тип пришлось бы выводить бесконечной рекурсией



Если что, я сам изобрел эту семантику ссылки, так что все лавры мне
403 1623956
>>23954
Применения пока не нашёл, но думаю найдется
404 1623965
>>23954
И что это за гавнопентаграммы? Распиши последовательность шагов, которая приводит к утечке в такой структуре

>хз как это сделать, но уверенн, что так можно


Кароч ты мамкин фантазер

>семантику ссылки


Без комментариев
405 1623968
>>23089
>>22817
Спасибо, аноны.
406 1623977
>>23915
>>23965
>>23954

Ньюфагов полон тред. Другое дело, что за такой код (да и вообще шаред поинтеры без надобности) вам не перезванивают.
https://gcc.godbolt.org/z/ZsUfwz

мимо-нвидияблядь
407 1624006
>>23977
А хули там так много? Всего то надо static счетчик добавить
408 1624016
>>24006
Очевидно, что в коммитете сидят старые пердеды, вся интеллектуальная деятельность которых ограничивается написанием велосипедов, которые они придумывали на листочках в студенчестве
409 1624029
>>24016
Да у них еще и баб нету скорее всего. Так и вижу этих переполненных завистью и злобой дедов, хуярящих говнокод со скоростью света, лишь бы поднасрать таким успешным плейбоям-гениям как нвидиакун
410 1624047
>>23977
Знаешь баззворд и решение частной задачи, красавчик

А пафоса то, аж подписался что из нвидиа. Обосрался от смеха тебе в подгузники, лалка
411 1624057
>>24047

>пук

412 1624161
>>23944
А ты в формальной логике.
413 1624163
>>23915

хм, а чем круговые ссылки мешают?
понятно, что из-за них нельзя использовать референс каунтинг для сборки мусора. Но если ты птыаешься найти утечку - просто в конце выполнения программы выведи все аллоцированные куски, которые не освободила программа, будет тебе щастье.
414 1624171
>>23977
Наконец-то нвидия-кун усмирил обезумевших студентиков.
415 1624208
>>24163
Они и не в конце программы память жрут.
Предположим ты открываешь новое окно, а там parent.child = shared_ptr(this) и this.parent = shared_ptr(parent). Закрываешь окно, ничего не удаляется, утечка.
416 1624388
>>17857 (OP)
1,5 года опыта работы на Питоне и JS влетел в тред
В обоих этих ЯПах четко присутствует понятие namespace-a: если я пишу import this_module, я потом вызываю код из этого модуля как my_module.func(), можно также подгрузить определенные объекты в общую область видимости конструкцией типа from module import apple, peach и сразу все ясно: откуда эта переменная пришла и соответственно можно оперативно посмотреть ее сигнатуру и документацию
Когда читаю проги на С++ (и в особенности на С), вижу include, но по коду абсолютно не ясно, откуда эта функция/класс взялись. Как эту проблему решать?..
417 1624487
>>24388
Если ты в блокноте програешь, то да, это проблема
418 1624492
>>24388
Также как ты пишешь import module, в начале программы идет #include "file"
from module import apple будет соответственно #include "file" \ using apple = somefucking::apple
419 1624525
>>24388
Модули добавили в 20 стандарте.
Асло в крестах есть четкое понятие неймспейса, но оно ортогонально заголовочным инклуженым файлам, которые могут включать несколько неймспейсов, или один неймспейс может быть размазан по многим файлам.
С иде никаких проблем, связанных с этим, нет, вон решарпер даже за тебя инклуды ставит на неизвестные функции.
420 1624534
>>17857 (OP)
Сколько старого кода перестанет компилиться из-за появления ключевых слов module и import?
421 1624535
>>24492

>using


В Си такого нет

>в начале программы идет #include "file"


Это конечно круто, но как я узнаю что класс, используемый в этом файле относится именно к "file"? Особенно если этих инклюдов штук 5?

>>24525

>в крестах есть четкое понятие неймспейса


А в Си?.. Разбирался на досуге с парой прог, которые прошивают микроконтроллеры - лютая хуйня

>>24487
Закономерный вопрос: а как на этой хуйне можно было писать в начале нулевых?.. Там же наверно пиздануться можно было
422 1624543
>>24535

>В Си такого нет


Ну так это Си++ тред, Си тред ниже.
423 1624581
>>24535

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


Вижуал Студии больше 20 лет, Эклипсу - почти 20. До этого тоже были всякие IDE и редакторы, которые сейчас уже забыты (тот же Борланд). Тот же емакс наверняка ещё в 90-е умел в автокомплит всего.
424 1624617
>>23798
Хз, мб выделять фиксированный кусок памяти при старте программы и освобождать его в конце работы, а всю аллокацию из этого куска делать.
425 1624621
>>24208
Вик птр заюзать, не?
426 1624626
>>24388

>import this_module


это аналогично using namespace module, а не include.
427 1624631
>>24535

>Это конечно круто, но как я узнаю что класс, используемый в этом файле относится именно к "file"? Особенно если этих инклюдов штук 5?


А как ты запомнил что apple и peach именно в этом модуле, а не в другом?
428 1624652
>>23954
Это что-то уровня Страуструпа или даже выше
429 1624682
>>24534
Нисколько
430 1624696
>>23977
Как это поможет в поиске утечек?
431 1624701
>>24534
0.01%
432 1624702
>>24682
>>24701
Почему? Где-то читал, что раньше не спешили добавлять новые кейворды именно из-за боязни сломать обратную совместимость.
433 1624704
>>24702
Ну так keyword keyword'у рознь. Import будет контексто-зависимым словом, как и override например
434 1624707
>>24704
Понятно, спасибо.
435 1624732
>>24208

но у тебя в конце выполнения всё равно останутся эти ресурсы не высвобожденными, вот и запалишь это в atexit'е
436 1624899
Сап двач, анон, кто может помочь мне с лабой? Дело такое что я файлв и структуры вообще не понимаю. А у меня в этом семе все лабы будут на этом построенны. Может у кого есть материал по этим темам?
Вот завтра нужно сдать лабу, а я нихуя не понимаю.
Залание такое - Написать программу обработки файла данных, состоящих из структур, в
которой реализованы следующие функции: стандартная обработка файла (со-
здание, просмотр, добавление); линейный поиск в файле; сортировка массива
(файла) методами прямого выбора и QuickSort; двоичный поиск в отсортиро-
ванном массиве
Условие такое - Информация о сотрудниках предприятия содержит: ФИО, номер от-
дела, наименование должности, дату начала работы. Вывести списки сотрудни-
ков по отделам в порядке убывания стажа. Ключ: дата начала работы.

Может даже кто-то репетиторством занимается? Я типо готов платить, потому что хочу разобраться в этой теме.
Помогите, иначе информатик пизды даст 437 1624906
На шахматной доске 8х8 расположены три фигуры: ферзь, ладья и конь. Требуется определить количество пустых полей доски, которые находятся под боем. Для простоты будем полагать, что фигуры могут «бить» через другие фигуры. Например, в рассмотренной справа ситуации будем считать, что ферзь бьет D5 через ладью. Нарисовать в виде блок схемы
438 1624923
nahui.png1 Кб, 158x39
439 1624988
>>24923
Ты забыл самое главное
440 1624998
>>24899
За день? Лол. Ну только если у тебя есть весь сегодняшний день целиком на это.
441 1625000
>>24906
А причем тут c++?
442 1625057
Анончики, кто может помочь, объяснить задачи
443 1625059
:
444 1625070
>>24906

>Для простоты будем полагать, что фигуры могут «бить» через другие фигуры.


Зачем?
445 1625071
>>25057
Объясняю.
Найти количество четных элементов, следующих за последним по порядку нулевым элементом
Находишь последний нулевой элемент.
Потом считаешь четные элементы после него.
Всё.
446 1625107
>>24998
Ну мне чисто хотя бы лабу понять
1461809550312.png37 Кб, 950x236
447 1625132
>>24906
Объяснений не будет
448 1625139
>>24899
Имхо если не втыкаешь, надо брать академ и разбираться, иначе как снежный ком будет все идти, тут за день и даже за неделю не разберешься.
449 1625267
Хей, какая из двух функций меньше памяти будет жрать?
https://ideone.com/QoA13D
450 1625276
>>25267
Вторая, вроде.
451 1625299
>>25267
Во второй по идее больше ( указатель на указатель), но скорее соптимизируется и будет одинаково.
452 1625335
>>24626
Тогда хрен ли это не так часто пишут, как include?

>>24525

>добавили в 20 стандарте


Хуле так долго-то?
453 1625439
>>25335
Неймспейс и инклюд это разные вещи.
https://www.youtube.com/watch?v=pAxEfF2yVlM
Вот тут разжевано все подробно, например.
Стикер319 Кб, 512x512
454 1625455
>>25439

>разжевано


Если не можешь объяснить разницу одним предложением, то это одно и то же.
455 1625491
Так как все таки правильно инициализировать переменные в 2к2к? Везде хуячить auto и { } ?
456 1625496
Где прочитать про умные указатели в C++? Где используют и как реализовывать.
457 1625515
А есть ли разница между new и malloc?
458 1625567
>>25515
malloc не вызывает конструктор, как минимум.
459 1625597
>>25491
Если не шаблоны, то по человечески m_a = 0.0;
Если шаблоны, то смотреть внимательно, либо то же самое, либо {}
460 1625857
>>25567

вопрос пиздец
в стиле
есть ли разница между тыквой и кузнечиком?
461 1625892
>>25515
Ну, маллок есть в си, new нет. Странный вопрос на самом деле, и, очевидно, ответ зависит от того, зачем тебе вообще это нужно
462 1625893
>>18746
За goto на любом собесе тебе насрут на ебальник. Goto, как правило, – признак очень плохого кода
463 1625936
>>25893
Пчел...
464 1625941
>>25893

>>признак очень плохого кода


Промытка, ты хоть раз работал с goto?
465 1625943
>>25567
Да, а в cin не надо указывать тип, но функциональность ведь та же что и у scanf.

>>25892
А это может быть использованно для чего-то помимо выделения памяти под структуры?
466 1625960
>>25943
X p = (X)malloc(sizeof(struct X));
p->a = 1;
Грубо говоря это UB потому что объект не был создан.
467 1625961
>>25960
X ⋆p = (X⋆)malloc(sizeof(struct X));
468 1625963
Салам аллуейкум, братья, жи есть.

У меня вылезает C6385 ворнинг. Не понимаю что не так, код такой:

CComplexVector(const CComplexVector& x) : size(x.size) {
arr = new Complex[size];
for (size_t i = 0; i < size; ++i)
arr = x.arr;
}

Вылезает на строчке с присваиванием значению элемента массива, arr - указатель внутри класса.

Что пишет вижуальная студия: ПредупреждениеC6385Чтение недопустимых данных из "arr": доступный для чтения объем равен "(unsigned int)*16+4" байт, однако считать можно только "32" байт.

Не понимаю этой хуйни, подскажите, плз.
469 1625964
>>25963

> arr = x.arr;


arr = x.arr
470 1625967
>>25963
Очевидный x.size()
471 1625986
472 1625988
>>25967
У него сайз просто переменная внутри
>>25964
Индекс съело?
473 1625999
>>25963
5 секунд в Гугле: это баг студии, исправлен в 16.4
474 1626000
>>25988
>>25999
Ну хз больше похоже на то что ты вместо размера используешь размер указателя. Но тебе конечно видней.
475 1626013
>>25960
Что такое UB?

То же самое ведь получается: X p = new(X) ?
476 1626018
>>25893
Исключения хуже goto. Там хоть метка есть, понятно куда управление передается.
477 1626203
анонесы что делать если код из книги не работает? нашел ее в шапке треда. написанно вроде, что последнею c++17 не поддерживает, но они разве так сильно отличаются? есть ли смысл продолжать ее читать?
image.png1,2 Мб, 614x889
478 1626206
>>26203
забыл прикрепить
479 1626220
>>26203
Так ты ошибку прочитай
и тогда поймёшь, что обосрался с инклюдом
480 1626223
>>26220
да бля я зыбыл приписать что сработал только исправленный мной код на 2 пике, а на 1 не сработал.
481 1626238
>>26203
Ну смотри, не знаю кто такой этот твой Бьярне Страуструп, но видимо он вынес
#include <iostream>
using namespace std;
В отдельный файлик std_lib_facilities.h
И включает его. Наверное об этом написано где-то в первой главе. Или диск прилагался.
482 1626243
>>25943

>А это может быть использованно для чего-то помимо выделения памяти под структуры?


Да. Есть placement new, который вызывает конструктор для указанного куска памяти и есть operator new, который как и malloc выделяет память без вызова конструктора, и вместо которого можно использовать malloc, если тебе так хочется.
Это может пригодится, если пишешь свой "высокопроизводительный" контейнер, реже использующий операции выделения/очистки памяти, аллокатор для стандартный контейнеров или свой промежуточный менеджер памяти, то есть считай не нужно, потому что уже есть куча аллокаторов и менеджеров на все цвета радуги.
Можно например вектор переписать с использованием realloc при изменении размера, и он будет работать быстрее стандартного, если realloc может изменять размер куска выделенной памяти прямо на месте, без создания нового блока, копирования в него и очищения исходного.
483 1626248
>>26013
Нет не то же, конструктор не вызывается.
UB - Undefined Behavior, это значит что ты написал чушь с точки зрения компилятора, поэтому он имеет право делать что угодно, может будет работать, а может он вообще выбросит твой объект потому что его там не может быть.
484 1626270
>>26238
спасибо, заработало хорошо. наверное все же с диском шло. в книге ничего
485 1626273
НА ДВОРЕ 2020 ГОД
@
У КРЕСТОЕБОВ ДО СИХ ПОР НЕТ ПАКЕТНОГО МЕНЕДЖЕРА
486 1626274
>>26273
саня хуй соси
487 1626278
Как быть? Не устанавливается. В окошке на первом пике как я понимаю нужно выбрать путь установки, но окно пустое. После нажатие далее пикрил 2
488 1626279
>>26273
Ты долбоеб что ли?
conan install package_name
489 1626281
Почему в питоне так много всяких очень полезных библотек, которых нет в c++?
490 1626284
>>26281
Это каких?
491 1626286
>>26278
посмотри в левый нижний угол друг мой ДРУЖИЩЕЕЕ
492 1626288
>>26281
Leftpad?
493 1626307
>>26286
Настройки?
494 1626311
>>26279
Мань, там полторы либы
495 1626314
496 1626315
>>26284
>>26288
Библиотек для работы с документами, морфолгией. В питоне очень много библиотек, с которыми легче работать чем с плюсовыми
497 1626316
>>26315
но плюсы то лучше
499 1626320
>>26318
не знаю но ты мусорку хоть почисти а то забилась вся
500 1626322
>>26311
Больше похоже на полторы тысячи.
501 1626328
>>26315
Ну насчёт доков хз, по-моему на плюсах тоже куча либ. Насчёт ЕЯ согласен, но хз почему так
502 1626330
503 1626355
>>26273
nuget
504 1626360
>>26281
Потому что ты путаешь язык и его стандартную библиотеку.
505 1626412
>>26273
А зачем крестоёбам хипстерская поделка уровня js-говнокодерков?
506 1626436
>>26278
Попробуй от имени адиминистратора.
507 1626447
>>26412

>НИНУЖНА


Ясно.
508 1626470
>>26273
nuget/vcpkg.
509 1626493
Анончики, скачал и поставил VisualLeakDetector

Либы и заголовочные файлы подключил тоже

Но он ругается и ищет utility.cpp

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

Необработанное исключение в "0x03238106 (vld_x86.dll)" в "TetrisGame.exe": 0xC0000005: Нарушение прав доступа при чтении "0x4e52454b".

Понятно что это за ошибка. У меня вопрос. Какого хрена? Как так и что я делаю не так?

Или это нормально и я настолько охуенен, что уже при старте рабочая программа не рабочая?
изображение.png539 Кб, 1024x1024
510 1626558
>>26493
Вобщем ошибка всё равно вываливается при старте, оказалось, что это проблема вин 10.

Ну ничего, всё равно память утекает не постоянно и сам процесс занимает 56 МБ оперативки, а чтобы перевалить за 100 нужно очень долго клацать. Всего 32ГБ, так что хватит за глаза, можно протекать сколько душе угодно, а я так хотел узнать где же проблема.
512 1626597
>>25335

>Тогда хрен ли это не так часто пишут, как include?


Не знаааю, так же часто, как и импорт в питоне, может смотришь не там просто?
513 1626604
>>24899

>файл


>структура


Там понимать нечего, что конкретно тебе непонятно?
514 1626717
>>24899
я готов тебе помочь, беру 1к в час.
515 1626757
>>26717
Хорошо
516 1626801
>>24899
В шапку бы посмотрел, там есть материалы. Твоя задача, думаю, легко реализуется с помощью STL, в <algorithm> есть и find, и sort, и всё что душе угодно
517 1626828
>>26801
Это ж лаба. Ему надо написать квиксорт самому.
518 1626865
>>25961
>>25960
malloc говно.
"Программирование. Принципы и практика использования C++" стр 1054 не используйте malloc()/free() в программах написанных на С++ - Страуструп.
Я ему верю деда вроде шарит.
520 1628927
>>25893
goto лучший триггер тупых промыток, они даже объяснить не могут чем гоу-ту плохо, нормальные пацаны используют гоу ту где нужно, а такие ситуации бывают.
521 1630060
>>23903
двачую, у меня кент работает в топ-конторе (по з.п. где-то 170) он такой хуйни не знает и никто у них не знает.
522 1644047
>>26248

>Нет не то же, конструктор не вызывается.


И чо? При aggregate initialization конструктор тоже не вызывается.
523 1688557
Пачиму треды не трут?
Тред утонул или удален.
Это копия, сохраненная 19 мая 2020 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски