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

Двач.hk прислал битые данные.
Вы видите копию треда, сохраненную 27 мая 2018 года.
Можете попробовать обновить страницу, чтобы увидеть актуальную версию.

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

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

C++ №68 17 мар, 11:13 1157163 В конец треда | Веб

3 Кб, 400x30055 Кб, 500x288

Вместо шапки — https://github.com/sosachbot/cppthreadhat/wiki
Ответы на все вопросы:
- http://en.cppreference.com/w/
- http://www.cplusplus.com/reference/
Прошлый: >>1147021 (OP)

Ответы575965837561168615916441865283667846794768252

sage 17 мар, 12:39 2 1157192

Номер неправильный, сейчас 66 тред.

Ответы5719657212

17 мар, 12:48 3 1157196

>>1157192
Но ведь прошлый был 67.

77 Кб, 694x801
17 мар, 13:29 4 1157212

>>1157192
В жопу иди, петухевен. Правильно оп создал.

Освящаю.

330 Кб, 2558x3062
17 мар, 13:54 5 1157233

полюбуйтес

Ответы5725959368

17 мар, 14:19 6 1157259

>>1157233
Пиздос требования для "обсуджение до 60к", конечно. Но при чем тут c++?

Ответы5728564970

17 мар, 14:49 7 1157285

>>1157259
ну вы же байтоебы

Ответы57569

17 мар, 15:35 8 1157317

Антоны, помогите улучшить одну фичу
Пытаюсь на плюсах сделать аналог оператора nameof как в c# https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/nameof
Вот кодина https://ideone.com/91DITc, если кому удобнее могу скинуть гитхаб

17 мар, 20:21 9 1157569

>>1157285
Не смешно. Я щас тебе зарплату сторожа зоопарка скину и скажу "вы ж макаки".

17 мар, 21:10 10 1157587

Может у кого то есть работающая программа для длинной арифметики?
Вычитание или умножение.

Ответы58901

17 мар, 21:32 11 1157596

не нашел треда по си, но думаю отличий не будет особых
подскажите плз тело компаратора типа дабл>>1157163 (OP)

Ответы5776162035

17 мар, 21:57 12 1157613

Сап, погромач, немного не по теме и за такое можно вообще бить санными тряпками и банить по айпи, но есть где-нибудь поочерёдный список литературы, с помощью которой можно выучить плюсы? Прочитал "Сpp без страха", написал свой рогалик, потом зашёл на quizful, выбрал самый лёгкий уровень теста по плюсами, и в итоге обосрался12 / 30 баллов. Вроде бы всё понял в книге, но когда вижу какую-нибудь хуйню приходит осознание собственной низости и недостойности, потому что некоторые люди обладают запасом знаний на порядок больший, чем мой, в возрасте лет так ~15. Что читатьили какой практикой заниматься дальше, чтобы не отсосать потом на вопросе а-ля может ли функция возвращать указатель на void.

Ответы61272

17 мар, 22:14 13 1157632

Посоветуйте элегантное решение.
Как хранить некопируемые объекты в std контейнерах?
Сейчас фигачу в контейнер смартпойнтеры через new make_...smart не работает.

Есть варианты изящнее?

Ответы57652576595767657942590516203865578

17 мар, 22:35 14 1157652

>>1157632
>Посоветуйте элегантное решение.
>Как хранить некопируемые объекты в std контейнерах?
Элегантное решение: храни как есть и не используй функций контейнеров, которые требуют копирования элементов.

Ответы5765857659

17 мар, 22:55 15 1157658

>>1157652
Что значит храни как есть? Эти объекты динамические, мне нужен удобный механизм, чтобы создавать, уничтожать и искать.
Пф, "хранить как есть", это вообще что значит?

17 мар, 22:56 16 1157659

>>1157652
>>1157632
PS. Я не могу добавить в контейнер некопируемый объект.
Срр11

17 мар, 23:10 17 1157676

>>1157632
Сделать их movable или хранить пойнтеры
Возможно, удастся хранить их в std::list, если пользоваться emplace - он создаст их по месту, и не будет перемещать.

Ответы58017

18 мар, 00:25 18 1157747

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

Ответы58904

18 мар, 00:33 19 1157761

>>1157596
посоны, я че-то нереэальное спросил? поясните?

18 мар, 09:12 20 1157942

>>1157632
>Как хранить некопируемые объекты в std контейнерах?
Храни unique_ptr-ы. Можно еще взять контейнеры из boost::ptr_container

Ответы5801758193

18 мар, 11:08 21 1158017

>>1157942
Так и делаю, но выглядит по пидорски.
>>1157676
Перемещаемые можно только в векторе хранить и то с ограничениями. Нельзя создать другие контейнеры для некопируемых объектов.

18 мар, 14:24 22 1158193

>>1157942
Пояснити за юники, когда есть шареды.

Ответы583025831658914

18 мар, 16:23 23 1158302

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

Ответы58316

18 мар, 16:34 24 1158316

>>1158193
>>1158302

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

Ответы58330

18 мар, 16:59 25 1158330

>>1158316
чет проиграл с тебя

18 мар, 18:06 26 1158375

>>1157163 (OP)
>C++ — 23 вакансии в Москве
Ребята самое время вкатываться в кресты. В Москве вас с руками и ногами оторвут даже без опыта работы. Ахахаха. Ты приколись сколько со всей России на одно место рвутся, не меньше тысячи красноглазиков.

Ответы58395

118 Кб, 1994x860
18 мар, 18:25 27 1158395

>>1158375

Ответы5839758399

18 мар, 18:28 28 1158397

>>1158395
Ты опыт работы убери. Потому что когда вкатишься тебе спросят про опыт работы и мы вам перезвоним.

18 мар, 18:31 29 1158399

>>1158395
Проиграл с описания вакансии C, C++, C# Это во все три языка вкатываться надо и ещё в нейронные сети плюс высшее образование. Думаю на всё это уйдет порядка 8 лет, чтобы поучаствовать в таком отборе 1000 на одну вакансию.

Ответы58418

18 мар, 18:48 30 1158418

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

Ответы5843158465

18 мар, 19:02 31 1158431

>>1158418
>боль неосилятора
Я на крестах не пишу, но уже прошел успешно курс с со всеми тестами по ЯП, по Data Science и скоро закончу с таким же успехом курс по машинному обучению. И знаешь что? Не на одну работу меня не возьмут, потому что нет опыта работы. Так что мимо
>это всего лишь значит, что им будет достаточно, если ты знаешь си-подобный язык
Какие маня проекции.

Ответы58635

18 мар, 19:40 32 1158465

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

Ответы58482

18 мар, 20:00 33 1158482

>>1158465
Два чаю. Я даже на поиск работы в России время тратить не стану, это бесполезно. Я ради прикола в поисковик уже третий год вбиваю программист и вакансии уже три года не меняются, а это говорит о многом.

18 мар, 20:46 34 1158530

Вы хоть школу то закончили?)

Ответы58544

18 мар, 20:50 35 1158536

Как лучше делать? И почему? Язык си шарпа, хотя другие тоже подойдут в данном вопросе
for(int i=0;i<N;i++)
{
if (i>m)
count++;
}
for(int i=0;i<N;i++)
{
count+=(int)(i>m);
}
for (int i=0;i<N;i++)
{
count+=i>m?1:0;
}

Ответы58538589215925663954

18 мар, 20:51 36 1158538

>>1158536
c++*, если заменить второе на Convert.ToInt32, будт шарпа

18 мар, 20:57 37 1158544

>>1158530
Нет конечно, я из детсада сразу в вуз поступил. Школа для неосиляторов.

19 мар, 00:10 38 1158635

>>1158431
>уже прошел успешно курс с со всеми тестами по ЯП
Че за курс-тесты?

19 мар, 00:40 39 1158647

Анон, обесни,
size_t == size_type ?
Я чот запутался.

Ответы58774

19 мар, 10:30 40 1158774

>>1158647
size_t – целочисленный беззнаковый тип результата, возвращаемого операторами sizeof и alignof.
http://ru.cppreference.com/w/cpp/types/size_t

Ответы58776

19 мар, 10:36 41 1158776

>>1158774
template<class _Ty, size_t _Size>
class array
{
public:
using size_type = size_t;
...
}

Ответы58777

19 мар, 10:36 42 1158777

>>1158776
Fix
template<class _Ty, size_t _Size>
class array
{
public:
using size_type = size_t;
...
}

19 мар, 15:09 43 1158899

>>1158241
Мопед не мой там есть ссылка на то чей он, я просто на нем ездю.

19 мар, 15:13 44 1158901

>>1157587
http://cppstudio.com/post/5036/

19 мар, 15:16 45 1158904

>>1157747
>Полностью отказываясь от интерфейсов
Чтобы избавиться от расходов на виртуальные методы?

19 мар, 15:22 46 1158914

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

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

Ответы58941

19 мар, 15:30 47 1158921

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

19 мар, 16:03 48 1158940

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

Ответы589415897259722

19 мар, 16:03 49 1158941

>>1158940
>>1158914

19 мар, 16:37 50 1158972

>>1158940
Умные указатели придумали для того, чтобы автоматизировать утилизацию динамической памяти.
Я клонил к тому, что внутри скоупа тебе никто не мешает сделать уник, и работать с его сырым указателем, даже если его придется скопировать пару раз. Когда выполнение выйдет за скоуп, указатель корректно умрет, НО нужно быть уверенным в том, что копия сырого указателя не останется где-то вне области видимости, и к инвалидному указателю никто не обратится.
А шареды (учитывая подводные камни) имеет смысл использовать только тогда, когда одним объектом владеет несколько сущностей одновременно но это ИМХО

19 мар, 18:46 51 1159051

>>1157632
emplace

19 мар, 20:25 52 1159145

Какой компилятор можно прикрутить к VS Code? А то MinGW скоростью работы вообще не радует.

Ответы591875921462883

19 мар, 21:14 53 1159170

Не могу подключиться к ком порту из стандартного примера qt5 (terminal). Порт видит, все настройки пишет правильно, но при подключении выдает ошибку "отказано в доступе". ОС Windows 10. Подскажите пожалуйста как исправить.

Ответы65457

19 мар, 21:31 54 1159187

>>1159145
wsl + gcc

Ответы59567

19 мар, 21:59 55 1159199

кто собирал кьюты под ведроид, отзовись?

19 мар, 22:19 56 1159214

>>1159145
ты в сколько потоков то собираешь?

Ответы5939159413

19 мар, 22:59 57 1159256

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

20 мар, 01:20 58 1159344

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

Ответы5949359743

20 мар, 04:19 59 1159368

>>1157233
>ООО Квант-21
0\

20 мар, 06:13 60 1159384

Сап, анонче. Хотелось бы услышать мнения.
Если бы вы писали что-то вроде семантического рабочего стола\семантической оболочки ОС, то какую бы СУБД выбрали в качестве хранилища метаинформации? Считай это все семантические связи между типа объектов, аналитическая информация, статистика, и прочее. НО. Это десктоп. То есть объемы, а самое главное, нагрузка не серверная - клиенты лишь сами сервисы\демоны одного пользователя\может пары девайсов, с учетом шаринга информации между ними. При этом есть потребность хранить\отслеживать отношения (следовательно можно задуматься о рдбмс), в тоже время данные - это в сущности объекты ссылающиеся друг на друга и храняшие друг друга (можно задуматься о графовых бд), есть так же потребность в атомарности записей, а потом приходится сомневать насчет носкюл-решений, ведь придется городить ее поверх.

Есть кому что сказать?

Ответы59611

20 мар, 07:26 61 1159391

>>1159214
Если честно, без понятия, единственное что я делал это прописал команды в tasks.json ну и в path компилятор закинул.

Ответы59413

8 Кб, 493x304
20 мар, 08:16 62 1159401

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

Ответы5940259418

20 мар, 08:23 63 1159402

>>1159401
Во-первых, это чистый Си
Во вторых, аллокация двумерного массива должна выглядеть как-то так
T a = malloc(sizeof a N);
if (a)
{
for (i = 0; i < N; i++)
{
a = malloc(sizeof a M);
}
}

В-третьих, где free?

Ответы5940359405

20 мар, 08:24 64 1159403

>>1159402
Двач проебал разметку. Вот

20 мар, 08:25 65 1159404

https://stackoverflow.com/questions/1970698/using-malloc-for-allocation-of-multi-dimensional-arrays-with-different-row-lengt

20 мар, 08:25 66 1159405

>>1159402
free чуть ниже, не попал в скрин
Ты скажи мне лучше, как используя средства чистого си получить из консоли строку неопределенного размера?

Ответы59406

20 мар, 08:30 67 1159406

>>1159405
Нет такого понятия как строка неопределенного размера. В других языках обычно делается realloc

В той же std::string ты создаешь строку

std::string str1("My string.");
Он создаст массив на 16 элементов.
(здесь 11 байт, ибо \0 тоже символ)

При попытке превысить 16 производится реалокация. Там память очищается, создаётся новая уже на 32.
И так далее

Ответы59407

20 мар, 08:37 68 1159407

>>1159406
Вроде понял, дай бог здоровья

20 мар, 08:56 69 1159413

>>1159391
>>1159214
Можно поподробнее?

20 мар, 09:25 70 1159418

>>1159401
а что не работает-то? пока вижу только один косяк - ты для temp память не выделил. а так нормально все вроде.

Ответы59508

20 мар, 10:31 71 1159446

Столкнулся с очень сложной ситуацией: есть функция экспортапи. в ней выделяется память под особую строку, и эта страка ретурнится. Что получаем? Утечку. Как фиксть? auto не работает, так как это vs 9.0. Старых книг Саттера и Майерса под рукой нет.

Ответы59808

20 мар, 11:55 72 1159493

>>1159344
qt

Ответы59711

20 мар, 12:37 73 1159508

>>1159418
Да это и не работало

20 мар, 13:47 74 1159547

Ты уверен что это именно утечка, а не контролируемое либой время жизни.
Почитай доки подробнее, должно быть что-то вроде как в glfw: "GLFW не освобождает переданные пользователем указатели, а так же запрещается самостоятельное удаление полученных из библиотеки указателей".
Если это таки бага, то лучше обратиться к разработчикам api.
Если нужно фиксить вот прям щас, можешь написать метод по фиксу (обязательно с четкими комментариями), типа сделать копию строки, и рукопашное удаление.

Ответы59594

20 мар, 14:19 75 1159567

>>1159187
Wsl будет запускать мне виртуальную машину линукса или как это работает?

20 мар, 15:16 76 1159594

>>1159547
Да я уже сделал. Работает. Утечка все. Самое обидное, что можно предовратить перейдя на 11 с его авто, но не хотят.

Ответы5964559685

20 мар, 15:47 77 1159611

>>1159384
sqlite

20 мар, 16:27 78 1159645

>>1159594
беги с такой работы

Ответы59704

20 мар, 18:04 79 1159685

>>1159594
Я правда нихуя не понял как ты хочешь закрыть утечку через auto

20 мар, 19:19 80 1159704

>>1159645
Лолкейс, у на работе только недавно с VS2015 на VS2017 перешли, я думал у нас ретрограды. Да и boost не последний, а 64

20 мар, 19:38 81 1159711

>>1159493 млять, а либой какой нить убогой не обойтись?

Ответы59724

20 мар, 19:56 82 1159722

>>1158940
>Там, где это мешает и где нельзя обойтись перемещением, использую шаред.
shared_ptr is as good as a global variable

20 мар, 19:58 83 1159724

>>1159711
Верь мне, это она и есть...

20 мар, 20:29 84 1159743

>>1159344
sdl или sfml

20 мар, 22:38 85 1159808

>>1159446
что за экспортапи? из dll ки вызывается в екзешнике?
1. сделай вторую функцию в той же длл-ке которая эту строку будет удалять по укзателю. типа void createStr(); и void deleteStr(void);
или
2. убедись что и длл-ка и екзешник имеют одинаковые настройки crt и эти настройки shared library. тогда по идее ее можно будет и в екзешнике удалять.

задачка 20 мар, 22:38 86 1159809

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

Ответы5982659858

20 мар, 22:52 87 1159826

>>1159809
пиши свое решение, задавай вопросы про то что не получилось.

Ответы5983259836

20 мар, 22:57 88 1159832

>>1159826
Получился такой код, он вообще не компилируется:
int task66() {
char n = '0', min;
min = n;
printf_s("Введите числа: ");
while (n != '\n') {
scanf_s("%с", &n);
int n = n - '0';
min = (int)min;
if (n > 0) {
if (n < min) {
min = n;
}
}
}
printf_s("Ответ: %c\n", min);
}

20 мар, 23:03 89 1159836

>>1159826
int task66() {
char n = '0', min;
min = n;
printf_s("Введите числа: ");
while (n != ' ') {
scanf_s("%с", &n);
int n = n - '0';
min = (int)min;
if (n > 0) {
if (n < min) {
min = n;
}
}
}
printf_s("Ответ: %c\n", min); return 0; }

Ответы59840

20 мар, 23:11 90 1159840

>>1159836
Вообще не могу понять, как можно реализовать ввод до пустой строки.

Ответы59849

20 мар, 23:40 91 1159849

>>1159840
if (std::string(input).empty())
break;

Да миллионом способов. И вообще, либо пользуйся средствами плюсов (std::cout, std::cin), либо уходи в ansi c тред, он где-то на этой же доске.

20 мар, 23:50 92 1159858

>>1159809
https://ideone.com/pPxBZZ
Решение откровенно хреновое, но вроде как работает

21 мар, 15:09 93 1160080

С чего мне начать ремастер ГТА4 на мощностях и масштабах ГТА5? спасибо

Ответы6013160267

21 мар, 16:34 94 1160124

Почана а какая разница между:
const int getValue { return _val;}
и
int getValue const { return _val;}

Ответы60966

21 мар, 16:47 95 1160131

>>1160080
Я ни на что не намекаю, но...
>Разработка игры Black Mesa велась восемь лет

21 мар, 20:24 96 1160267

>>1160080
Лучше бы вайс сити

Ответы60339

21 мар, 22:18 97 1160333

И так, ситуация такая: есть одно семейство классов. Каждый не виртуальный класс в нем имеет constexpr поле с уникальным номером. Нужно собрать функцию, желательно тоже времени компиляции, такую, что бы получала это число и на его основе создавала объект соответствующего класса, если класс с таким номером есть. На текущий момент это реализовано через специальный файл, который хранит имена всех этих классов и набор макросов, который составляет ту самую функцию. Но проблема в том, что таким темпом, при добавлении нового класса, приходится аккуратно редактировать еще один файл. Хорошо бы оставить что-то такое в определении каждого не виртуального класса, что бы потом, в юните компиляции все это собрать. Да вот только что? Может кто знает?

21 мар, 22:27 98 1160339

>>1160267
слишком легко

Ответы60386

21 мар, 23:12 99 1160386

>>1160339
А ты графон подтяни попробуй

21 мар, 23:40 100 1160405

В чем разница рантаймов, которые линкуются собираемой программой с ключами /MT и /MD? Они все, я так понял, реализуют стандарт c++ И windows-специфичные чтуки сверху. Но если с MT всё понятно - линкер подставляет символы из объектников, собранных в .lib, то что происходит с /MD?

Ответы6040760411

21 мар, 23:43 101 1160407

>>1160405
https://msdn.microsoft.com/ru-ru/library/2kzt1wy3.aspx

Ответы60410

21 мар, 23:49 102 1160410

>>1160407
Спасибо, мистер гугл. Перечитал еще раз эту статью, и с MD до сих пор не ясно. Это типа чё, линкер подставляет адреса вместо символов, а по этим адресам вместо самой реализации происходит получение адреса необходимой функции из .dll и её дальнейший вызов? Если так, то нахуя? Типа скомпилил свою программу один раз, линкер зарезолвил все символы, а робит на всех платформах, потому что в каждой ОС своя версия этой .dll со своей реализацией под целевую платформу?

Ответы604146041560424

21 мар, 23:49 103 1160411

>>1160405
dll - динамическая. загрузит crt во время запуска ту что найдет в системе.
статическая - включит всё внутрь екзешника (он по размеру будет больше)

21 мар, 23:51 104 1160414

>>1160410
билять, не дописал

Это типа чё, линкер подставляет адреса вместо символов из объектников в статической либе, а по этим адресам вместо самой реализации происходит получение адреса необходимой функции из .dll

21 мар, 23:53 105 1160415

>>1160410
ну подумай. длл могут быть разные в разных системах. одни и те же функции могут работать по разному.
второй вариант - всё одинаково везде (при условии, что системные вызовы поддерживаются - собрал в 7, в 98 вряд ли заработает)

плюс еще фигня. если у тебя есть екзешник со статической линковкой и твоя же dll тоже со статической линковкой, то будет фигня такая.
если в длл есть функция типа
void doStuff() { .... void ret = new stuff(); return ret; }
то new тут сделается статически прилинкованной црт в длл-ке.
а когда ты попробуешь сделать delete в екзешнике, то оно будет выполнено статически прилинкованной црт к екзешнику (другой!!) и всё сломается.

22 мар, 00:10 106 1160424

>>1160410
MD требует установки вцредиста

22 мар, 20:25 107 1160910

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

Ответы60913

22 мар, 20:29 108 1160913

>>1160910
все, что делают кресты, это либо ебут уже выделенные байты, либо делают коллы к операционной системе.

В винде у тебя есть Winapi и Native API. В никсах есть сисколлы и тоже какой-то там кернел апи.

Чтобы ты понимал - любой ввод\вывод (включая консоль), любое выделение памяти - это все делает ОС, кресты лишь ее жалобно умоляют через обертки. Чисто теоретически, ты можешь без проблем писать вообще без стандартной библиотеки С и С++.

Ответы609366095568183

22 мар, 21:14 109 1160936

>>1160913 ещё хотел спросить,
написание прог для микроконтроллеров кардинально отличается от обычного погромирования для осей или там просто свой АПИ от поставщика МК?
Дёрганье системы за сиську тоже же вроде идёт через библиотеку, типа <syscall>. Мне прост для понимания как работают библиотеки. Или там просто проприетарные бинариники от поставщиков компиляторов.

Ответы60967

22 мар, 21:56 110 1160952

https://ideone.com/5ghSp5

Аноно, помоги, это cryprtoapi

Что происходит:
цикл проходит 1 раз, передаёт структуру. Выходит.
Затем, если подано имя сертификата, то оно ищется в этом цикле, однако цикл проходит 1 круг, а потом вываливается( трай-кэтч не отлавливая ошибку)

Что не так? Вызовы функций я привёл ниже цикла.

Ответы60968

22 мар, 22:06 111 1160955

>>1160913
Мне даже интересно стало, есть ли языки, которые не ебут уже выделенные байты и не делают сисколлы к операционной системе(Или нижележащему API которое это делает за них)?

Ответы6096761464

22 мар, 22:24 112 1160966

>>1160124
ты забыл про
const int getValue const { return _val; }

22 мар, 22:28 113 1160967

>>1160955
С натяжкой можно сказать, что за большую часть языков ВМ или интерпретатор делает все это за программу.

Но так то да, таких языков нет.

>>1160936
У микроконтроллеров разные ограничения есть всякие. Бывают МК вообще без динамической памяти (никакого malloc). А так - да, просто у них свои либы\фреймворки, и ты их дергаешь

22 мар, 22:29 114 1160968

>>1160952
ты студентик еще или работаешь уже?

Ответы60973

22 мар, 22:34 115 1160973

>>1160968
как сказать, проект дал препод. Это типа чья-то разработка, и её надо рефакторить, и у них внезапно не работает UTF-8/16, ( я ибав).

Ответы60981

22 мар, 22:53 116 1160981

>>1160973
а, ну тогда норм
прокачивайся

Ответы61125

23 мар, 07:52 117 1161125

>>1160981
так в чём ошибка то?

Ответы61183

23 мар, 09:07 118 1161137

В нюфаг-треде меня проигнорили, поэтому спрошу здесь.
Стоит задача: прочитать из двух файлов данные в два вектора. И при этом параллельно. С thread не получилось. Компилятор выдает длиннющую ошибку. Future аналогично.
https://pastebin.com/fWaNJstg

Ответы61182

4,4 Мб, 1600x1066
23 мар, 11:09 119 1161168

>>1157163 (OP)
ХХач, когда в ЦПП завезут систему владения?

Ответы61221

23 мар, 11:38 120 1161182

>>1161137
>прочитать из двух файлов данные в два вектора. И при этом параллельно.
зачем?
только не говори, что так быстрее будет, лол

Ответы61198

23 мар, 11:40 121 1161183

>>1161125
ты шутишь?
копай сам

Ответы61185

23 мар, 11:46 122 1161185

>>1161183
Да пиздец, я уже пытаюсь уговорить нахой все переписать, но они не хотят.

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

Ответы61414

23 мар, 12:09 123 1161198

>>1161182
Файлы большие. Только на помещение одного в строку уходит у меня 8 секунд. А на stoi уходит еще 5. И 2 потока должны мне выиграть эти 13 секунд.

Ответы61200

23 мар, 12:15 124 1161200

>>1161198
Ты понимаешь что это не всегда работает?

Ответы61201

23 мар, 12:16 125 1161201

>>1161200
Почему не всегда?
А вообще, почему мой код не компилируется?

Ответы61203

23 мар, 12:22 126 1161203

>>1161201
У тебя больше тактов будет на процессоре. даже если у тебя там сто ядер, то у тебя один диск, понимаешь?

Ответы61205

23 мар, 12:31 127 1161205

>>1161203
Едва ли диск загружается сильно. Если посчитать, то читает файл со скоростью 1 Мб/с. Да и остается еще 5 секунд на stoi. Тут же диск уже не при делах.

Ответы61212

23 мар, 12:38 128 1161212

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

Ответы61217

23 мар, 12:45 129 1161217

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

Ответы61222

23 мар, 12:53 130 1161221

>>1161168
если вкратце то в с++ достаточно средств, реализующих семантику как владения, так и замещения в rust
как на уровне языка, так и на уровне библиотек, в том числе и стандартной библиотеки

Ответы61223

23 мар, 12:53 131 1161222

>>1161217
Рабочая функция выглядит так:
https://pastebin.com/FjCMaeFZ
Это для старой доброй длинной арифметики. В файле число. Я его записываю в вектор в обратном порядке по 9 знаков в каждом элементе. На хабре видел другую реализацию этой функции, но она работает в 2 раза медленнее моей.

Ответы61225

23 мар, 12:53 132 1161223

>>1161221
>замещения
заимствование, будет правильней

23 мар, 12:55 133 1161225

>>1161222
какая нахуй длинная арифметика когда у тебя long long

Ответы61227

23 мар, 12:57 134 1161227

>>1161225
И хули?

Ответы61231

23 мар, 13:02 135 1161231

>>1161227
Тебе байт нужен.

Ответы61232

23 мар, 13:06 136 1161232

>>1161231
В байт я смогу уместить только если возьму базу 10 или 100. А long long поместит миллиард и сократит количество операций в 9 раз.

Ответы61234

23 мар, 13:09 137 1161234

>>1161232
а напрямую нельзя что ли в long long читать? зачем нужно сначала в строку?

Ответы61235

23 мар, 13:12 138 1161235

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

260 Кб, 1600x900
23 мар, 14:05 139 1161265

Перекатился в новый тред с клоном vi
Актуальная ссылка -- https://git.movepoint.su/anton/iv (git cloneable)
В ближайших планах парсинг макросов и сложных вещей типа d<motion>

Ответы61500

23 мар, 14:29 140 1161272

>>1157613
https://2ch.hk/pr/arch/2016-06-08/res/736493.html (М)

https://github.com/sosachbot/cppthreadhat/wiki

23 мар, 16:33 141 1161323

Решил начать изучать c++ и выбрал первой книгу Страуструпа из шапки. Собственно возникла проблема, как правильно подключить эту блядскую библиотеку из книги(std_lib_facilities.h) ? Все перепробовал, облазил все форумы уже.

Ответы61358613606136661381

23 мар, 17:12 142 1161358

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

23 мар, 17:14 143 1161360

>>1161323
А ты ее скачал?
Это ж его либа!!

Ответы61361

23 мар, 17:17 144 1161361

>>1161360
Скачал конечно. С офф. сайта Страуструпа, все по инструкции ее закинул и хуй. Проблема эта у очень многих, судя по гуглу.

23 мар, 17:20 145 1161366

>>1161323
Что именно не так? Когда я попробовал ее подключить, cl начал ругаться на то, что hash_map - древнее говно, и вместо него надо использовать unordered_map. Лично я решил закомменчиваем кусков кода с hash_map, но можно просто попробовать c++98 компилятор.

Ответы61374

23 мар, 17:31 146 1161374

>>1161366
бедняжка
но ты не унывай
php тред где то рядом

23 мар, 17:47 147 1161381

>>1161323 гуглить не пытался?
http://www.stroustrup.com/Programming/std_lib_facilities.h
Это прост для удобства новичков заголовок. Всё тоже самое можно сделать используя стандартные библиотеки.
Кстати, а за каим хуем ты не полез в сам файл за объяснениями?

Ответы61387

23 мар, 17:52 148 1161383

http://www.designcontest.com/show/bs-faq-be/
Это как то странно, белорусский язык есть русского нет. У Страуструпа какие то белорусские корни?

Ответы61501

23 мар, 17:59 149 1161387

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

23 мар, 18:48 150 1161414

>>1161185
В вижаке комбинацией клавиш ctrl+alt+P можешь открыть список процессов, к которому можно присоединить дебаггер и производить отладку программы. Главное, чтобы .dll была с отладочной информацией

Ответы62666

32 Кб, 413x300
23 мар, 20:22 151 1161464

>>1160955

23 мар, 21:46 152 1161500

>>1161265
Под винду сконпелять можно?

Ответы61981

23 мар, 21:49 153 1161501

>>1161383
Может прислал перевод кто-то

24 мар, 01:08 154 1161591

>>1157163 (OP)
ОП даун.
Инфа как обычно.

24 мар, 11:16 155 1161672

Как в cmake задать путь до .so библиотек, постоянно ошибку выводит "error while loading shared libraries: libPhysX3CommonDEBUG_x64.so: cannot open shared object file: No such file or directory"? find_library и link_directories не решили проблему.

Ответы6169268139

24 мар, 11:47 156 1161692

>>1161672
Переменнаю окружения LD_LIBRARY_PATH можно определить перед запуском, например, тогда директории, перечисленные в ней будут просматриваться на динамические библиотеки.
Можешь еще поковырять на тему ld.so.conf

Ответы61700

24 мар, 11:54 157 1161700

>>1161692
А как это можно сделать средствами cmake?

Ответы61850

24 мар, 15:32 158 1161850

>>1161700
А cmake тут причем? У тебя загрузчик не может найти библиотеки. Возможно, когда ты собирал приложения, ты хуево прописал пути линковки (гугли что-то вроде gdd rpath cmake) и у тебя подставляются абсолютные пути библиотек.
Вообще лучше сначала проверь, что именно не может найти загрузчик командой ldd $название_бинарника

Ответы61859

24 мар, 15:49 159 1161859

>>1161850
> gdd
> gcc

fix

24 мар, 19:58 160 1161981

>>1161500
пока интерфейс на ncurses -- разве что под cygwin/msys . В очень далеких планах можно и на Qt или Gtk фронтенд сделать

Ответы62051

24 мар, 21:30 161 1162033

Как в vs2017 (или вообще какими ключами компиляции) смерджить все секции в одну - .text? Я видел в msdn'е статьюю про /merge .rdata=.text, но там не сказано, какой разделитель и как использовать для нескольких секций

24 мар, 21:39 162 1162035

>>1157596
> не нашел треда по си, но думаю отличий не будет особых
в плюсах такое делают лямбдами, в сях функциями. съеби, в общем

24 мар, 21:41 163 1162038

>>1157632
e m p l a c e

24 мар, 21:54 164 1162051

>>1161981
А разве ncurses винду не умеет? Или может аналог кроссплатформенный есть? Во многих рогаликах вижу curses сборки

Ответы62056

24 мар, 22:00 165 1162056

>>1162051
http://gnuwin32.sourceforge.net/packages/ncurses.htm
ну смею предположить что если попердолить то можно организовать, но лично у меня точно руки совсем не скоро до такого дойдут

Ответы62057

24 мар, 22:01 166 1162057

>>1162056
следующая остановка -- пакет для арчлинукса (aur)

25 мар, 12:30 167 1162252

keybd_event: идентификатор не найден
что делать

25 мар, 13:07 168 1162290

Аноны, если я хочу написать программу с пользовательским интерфейсом, то что лучше использовать? WindowsForm? Qt? Другое средство для разработки GUI? Другой язык программирования?

Ответы62299

25 мар, 13:17 169 1162299

>>1162290
>Другой язык программирования
this

Ответы62319

25 мар, 13:35 170 1162319

>>1162299
Ну и для чего тогда используется c++?
Ну и что же используется для разработки приложений с графическим интерфейсом и какой GUI используется?

Ответы623206235274849

25 мар, 13:36 171 1162320

>>1162319
Electron

25 мар, 14:31 172 1162352

>>1162319
Ну и что же используется для разработки приложений с графическим интерфейсом и какой GUI используется?
node.js/php/asp.net + angular.js/react.js

desktop вымирает. ты можешь сделать gui на крестах, но выебешься просто пездец и сделаешь какое то говно из девяностых. на крестах да, можно делать gui на qt, всяких gtk++, UWP, winforms, хоть winAPI, НО
qt - покупай лицензию, дружок-пирожок, либо собирай по кускам либы для .exe и распространяй опенсорсно
winforms/uwp - анальная привязка к .net в 1 случае (в общем то уже и не поддерживается, этакий неудачный эксперимент), либо к windows 10/8.1 и winRT в случае UWP.
WinAPI имхо лучший вариант в том плане, что ты можешь сделать вообще всё, что можешь придумать, но делать это очень долго и чем больше окон у тебя в общем, тем сложнее всё это дело разрабатывать, ибо проста тупа процедурное программирование

Ответы6264663547

25 мар, 15:23 173 1162397

double test;
test=14/4;
cout<<test;
return 0;
Почему 3 выводит вместо 3,5?

Ответы62400

25 мар, 15:25 174 1162400

>>1162397
тому что int/int = int
делай 14.0/4 или 14/4.0 или кастуй кого нибудь к double.

Ответы62414

25 мар, 15:34 175 1162414

>>1162400
Вот я бака!!!

25 мар, 17:32 176 1162514

Коротко: в целях изучения оОп буду сделать простенькую графическую прогу. симуляция поведения рыбной стаи. Точка - рыба, будет придерживаться ближайшей другой рыбы, убегать от "хишника", плыть к корму etc, что смогу реализовать.
Как примерно я думаю буду реализовывать: массив объектов типа рыба, и по эвенту дёргать все объекты за методы в цикле.
Вот как реализовать эвент я и хотел спросить. Первая мысль что пришла в голову, просто по таймеру запускать цикл с вызовом методов, но тут мне не понятно как например тогда реализовать разную скорость перемещения "рыб" в пространстве и взаимодействие с пользовательским "хищником". Как называется область которую я затрагиваю, что почитать? Это что то игростроевское, есть норм литература где подобные вопросы затрагиваются?

Ответы62517

25 мар, 17:34 177 1162517

>>1162514
>оОп
>массив объектов типа рыба
это будет у тебя класс "стая" :З, а не голенький массивчик, это же ооп, блядь

Ответы62533

25 мар, 17:56 178 1162533

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

Ответы62543

25 мар, 17:59 179 1162539

keybd_event: идентификатор не найден
что делать

Ответы62542

25 мар, 18:02 180 1162542

>>1162539 запости то же сообщение ещё через 5 часов.

Ответы62545

25 мар, 18:02 181 1162543

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

25 мар, 18:04 182 1162545

>>1162542
будет сделано!

25 мар, 20:39 183 1162646

>>1162352
Щито? Обычные программки для компьютера пишутся на джаваскрепте и пхп? Я думал они только для веба используются.

Вообще, я просто хотел сделать пару простых приложений с GUI и выложить их на гитхаб для резюме. Ну перед этим я захотел узнать, на чём удобнее всего писать такие приложения. Мне почему то казалось, что тру программисты подобное пишут на c++.

Ответы626746267562684

25 мар, 21:09 184 1162666

>>1161414
срал и ебал. С отладочной она не компилится, какая-то хуита с линкером.

25 мар, 21:26 185 1162674

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

25 мар, 21:27 186 1162675

>>1162646
>>труЪ
Есть задача есть инструмент. Орехи не микроскопом колют, долотом волосы не стригут. Простенькую морду можно и в qt навалять, что то выёбистое для андроида и прочей мобильной пораши есть другие языки, на которых легче быстрее и уже всё готовое. Кресты не для этого, кресты для того чтобы страдать.

Ответы62677

25 мар, 21:34 187 1162677

>>1162675
послушай
что тут обсуждать: electron - это cutting edge в разработке десктопных приложений!
точка

25 мар, 21:42 188 1162684

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

кресты и правда не про это. GUI никогда не является целью программы. умеешь делать GUI на крестах - заебись, молодец, нет - ну и в рот его ебать, всегда сможешь освоить технологии при необходимости. у c++ нет прям дефакто стандарта GUI, но из того, что я пробовал winforms, qt/qt quick, UWP, winapi и из того, что я в теории рассматривал gtk++, wxwidgets я бы всё таки посоветовал winapi просто исходя из соображений, что сделать можно реально всё, до чего сможешь додуматься и ты работаешь без всяких посредников и программных обёрток. очевидные минусы - сложность разработки и поддержки кода, привязка к windows

25 мар, 22:07 189 1162695

keybd_event: идентификатор не найден
что делать

Ответы62698

25 мар, 22:10 190 1162698

>>1162695 запости то же сообщение ещё через 5 часов.

26 мар, 02:53 191 1162768

Анон, помоги
Читаю битмап файл, открыл, считал файлхедер, считал инфохер
Считывание попиксельно работает, но получается высота*(ширина + ширина % 4) считываний с диска.
Хочу уменьшить, считать построчно или, что ещё лучше, сразу все данные.
Пробовал считать в буфер, уже после него доставая пиксели и загоняя их в vector<vector<RBGTRIPLE>, но получается какая-то ебала.
Была идея объявить basic_ifstream<...>, чтобы читать из потока сразу с нужным типом, но как ему указать, с какой позиции я хочу считывать? Ведь мне нужно пропустить файл/инфо хедеры, которые другой размерности

Ответы630576311663352

26 мар, 12:02 192 1162879

keybd_event: идентификатор не найден
что делать

Ответы62937

26 мар, 12:14 193 1162883

>>1159145
У меня виртуалка с дебианом, жму там одну кнопку, она хватает все сырцы с виндовой машины, билдит, запускает.

Ответы63333

26 мар, 12:20 194 1162887

Как в double увеличивать/уменьшать кол-во знаков после точки?

Ответы62889

26 мар, 12:22 195 1162889

>>1162887
https://stackoverflow.com/questions/9999221/double-precision-decimal-places

26 мар, 13:45 196 1162937

>>1162879 запости то же сообщение ещё через 5 часов.

26 мар, 13:50 197 1162941

keybd_event: идентификатор не найден
что делать

Ответы63003

26 мар, 16:46 198 1163003

>>1162941
иксы переустанови

26 мар, 18:24 199 1163057

>>1162768
Считай всё разом в массив байт. И оффсетами, анон, оффсетами.

26 мар, 20:52 200 1163116

>>1162768
Каждая строка в битмапах выравнивается до 4х байт. В зависимости от количества столбцов в конце строк может быть 1, 2 или 3 дополнительных нулевых байт, по этому может ебала возникнуть со сдвигами.

Ответы63229

27 мар, 02:02 201 1163229

>>1163116
>Получается высота*(ширина + ширина % 4) считываний
Знаю про кратность четырем, я это учел.
Проблема в записывании байт в структуру из массива, именно в этот момент получается ересь

Ответы63351

27 мар, 08:55 202 1163333

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

27 мар, 10:24 203 1163351

>>1163229
Попробуй тупо массив из структуры structure rgb { std::byte r, g, b; }, и заполняй через memcpy.
А лучше свой код на пастбин залей и bmpшник, может у тебя рисовалка в неожиданный формат пишет.

27 мар, 10:30 204 1163352

>>1162768
http://en.cppreference.com/w/cpp/io/basic_istream/read
Дальше думай сам

27 мар, 17:14 205 1163529

Анон, а как должна выглядеть многопоточная работа с массивом объектов?
У меня есть массив, куда в одном потоке добавляются объекты с полями типа bool wt0=false, wt1=false ... wtX=false.
Есть потоки wt0, wt1 ... wtX которые читают этот массив и после выполнения определённой работы изменяют эти поля в соответствии со своим номером на true.
Нужно ли использовать мьютексы или обход массива с чтением и изменением полей объектов (с учётом того что каждый поток будет изменять только своё поле) будет потокобезопасным?

Ответы6356563878

27 мар, 17:37 206 1163547

>>1162352
>qt - покупай лицензию, дружок-пирожок, либо собирай по кускам либы для .exe
Лицензия нужна только для статической линковки. Если ты просто длл к экзешнику положишь - все ок.

Ответы63586

27 мар, 18:03 207 1163565

>>1163529
в вопросе и содержится ответ - нужно закрыть атомарным доступом доступ к элемантам массива по отдельности

27 мар, 18:29 208 1163586

>>1163547
Ага, только qt creator не собирает тебе все эти либы рядом с .exe.

Ответы6363263634

27 мар, 19:42 209 1163632

>>1163586
>Ага, только qt creator не собирает тебе все эти либы рядом с .exe.
Он и жопу не вытирает после того, как посрешь. Возьми да скопируй или скрипт напиши, охуеть программисты пошли, пиздец просто.

Ответы63803

27 мар, 19:42 210 1163634

>>1163586
http://www.dependencywalker.com/

27 мар, 23:51 211 1163803

>>1163632
>Возьми да скопируй или скрипт напиши, охуеть программисты пошли, пиздец просто
А чё ебать сразу на ассемблере не пиши? Или на инструкциях RISC?

Ответы63813

28 мар, 00:13 212 1163807

Вкатывается нубло.
Значит есть у меня класс динамических массивов. Мне нужно перегрузить оператор сложения двух массивов поэлементно. Как? У меня нихуя не получается, ток начал пытаться разбираться почему, поэтому без кода. От знатоков хотел бы получить пояснение за перегрузку разного рода сложений, если внутри операторв цикл надо юзать, потому что не нагуглил пока ни одной статьи с подобным примером. Хелп

Ответы6381763819

28 мар, 00:39 213 1163813

>>1163803
>А чё ебать сразу на ассемблере не пиши?
Ты реально настолько тупой, что файл скопировать не можешь? Больше ничего ведь делать не надо - взять dll из каталога Qt и положить к экзешнику. Это для тебя такая непосильная задача?

28 мар, 01:00 214 1163817

>>1163807
>Вкатывается нубло.
куда ты лезешь, блядь
у нас все в труху
зп в два раза меньше чем у ява-лордов и веб-обезьян, а требовать с тебя будут как с молодого кармака, лол

28 мар, 01:00 215 1163819

>>1163807
> не нагуглил пока ни одной статьи с подобным примером

https://stackoverflow.com/questions/15060372/overload-operator-to-add-two-arrays-in-c
Ну-ну. Тебе надо лишь поменять немного кода под свой класс

28 мар, 09:17 216 1163878

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

Ответы63891

28 мар, 09:56 217 1163891

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

Ответы6393264421

28 мар, 11:19 218 1163932

>>1163891
Ну все ещё конфликтов быть не должно.

28 мар, 11:58 219 1163950

Гайс, подскажите, что лучше паскалевому нубу осваивать в первую очередь: си плас плас или чего попроще для начала?

Ответы6398364011640286404664076

28 мар, 12:09 220 1163954

>>1158536
std::count_if

28 мар, 14:23 221 1163983

>>1163950
в зависимости от того, что ты хочешь делать

28 мар, 14:56 222 1164011

>>1163950
я бы не советовал вообще в 2к18 инвестировать свое время в изучение крестов

375 Кб, 475x669
28 мар, 15:44 223 1164028

>>1163950
Не слушай старпёров

Ответы64094

28 мар, 16:06 224 1164046

>>1163950
Я бы сказал, что без контекста чистых сей непонятны будут 3/4 фич плюсов.

28 мар, 16:51 225 1164076

>>1163950
c# и достаточно. Нахуй эти кресты, или хочешь всю оставшуюся жизнь в легаси копаться?!

28 мар, 17:19 226 1164094

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

Ответы64139

661 Кб, 1024x768
28 мар, 17:20 227 1164095

https://ideone.com/caBDA7
В фаил записывает слишком часто, как сделать так что бы при отпускании клавиши записывалось.

28 мар, 19:27 228 1164139

>>1164094
https://www.youtube.com/watch?v=BohAWXu1z8U

28 мар, 20:04 229 1164166

Собственно, погохите. Инфы дать не могу (ибо дохуя), но я обосрался. В двух словах: по потоку исполнения, есть 2 стула: либо переменная == nullptr и идёт инициализироваться, или уже инициализирована и покок идёт дальше. В коде инициализации уверен на 300000%, но в зависимости от положения звёзд и луны ловлю EXC_BAD_ACCESS, а у указателя адрес в стиле 0x900000000. Причём работает всё через раз, например при подаче на вход 1-2 значений, всё работает, больше — все.

Вобщем, делитесь опытом, если кто сталкивался с такой прикольной хуйней.

Ответы64237642456432664391

28 мар, 21:14 230 1164220

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

Ответы64395

28 мар, 21:37 231 1164237

>>1164166
те мы должны решить за тебя проблемы в коде который ты даже показывать не хочешь

Ответы64508

28 мар, 21:46 232 1164245

>>1164166
95% ошибка в твоём коде, удачного дебага.

Ответы64255

28 мар, 21:52 233 1164250

Возможно ли использовать в программе на C# код написанный на C++ в виде динамической библиотеке. Она ж компилится в бинарник, нужна только поддержка символов, верно?

Или так не выйдет?

Ответы6425764365

28 мар, 21:58 234 1164255

>>1164245
60% что код генетический, предлагаю дизассемблировать.

28 мар, 21:59 235 1164257

>>1164250
да, вполне можно. Знаю такой пример( правда работает через пень-колоду)

28 мар, 22:17 236 1164273

Есть ли профит от создания scope'а внутри функции кроме как в случае, когда в объявленном скоупе расходуется много памяти в стеке и хочется её освободить по выходу?

Ответы64276

28 мар, 22:21 237 1164276

>>1164273
Мьютексы с локами, смартпоинтеры

28 мар, 23:17 238 1164326

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

Ответы6438064508

29 мар, 00:10 239 1164365

>>1164250
C# может в интероп c СИ, так что просто делаешь либу с extern "C" функциями и грузишь их с нужными сигнатурами

https://stackoverflow.com/questions/9093292/use-a-c-library-from-c-sharp-code

29 мар, 00:24 240 1164380

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

Ответы64384

29 мар, 00:41 241 1164384

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

29 мар, 00:54 242 1164391

>>1164166
Проверка и инициализация в скоупе с мьютексом?

Ответы64508

29 мар, 01:19 243 1164395

>>1164220
Можно вместо array писать просто *i, больше разницы нет, всё заоптимайзится к одному и тому же.

Ответы64396

29 мар, 01:20 244 1164396

>>1164395
Вакаба сожрала квадратные скобки у array, ну ты понял.

29 мар, 04:51 245 1164418

>>1157163 (OP)
Потсоны помогите прашу, короче есть такой код(https://pastebin.com/M1nPCrm0). Почему при выборе варианта выходит Error? как вынести эти 2 функции в класс и в отдельный файл

Ответы66544

29 мар, 04:54 246 1164419

Потсоны памагите. Короче есть такой код(https://pastebin.com/M1nPCrm0) - почему выходит Error еще до выбора варианта? Как вынести эти 2 функции в класс в отдельном файле?

29 мар, 06:27 247 1164421

>>1163891
>А если разные поля одного объекта?
Если не битовые — гарантировано потокобезопасно.

29 мар, 07:15 248 1164433

двач, почему когда ты написал вирус на cpp и залил на вт, там показывает 3/66, а на следующий день-14/66?
не закриптованый

Ответы64508

29 мар, 12:07 249 1164508

>>1164237
Его банально слишком дохуя, чтобы выдрать кусок который можно было бы показать не потеряв всего остального.
>>1164326
Проблема в том, что ни о какой многопоточности речи и не идет. Все работает в одном потоке, я потому и хуею.
>>1164391
Есть смысл в однопоточном коде?

Собрал с шланговскими санитайзерами — начало падать с SEGV на стороне LLVM вообще в другом месте (да, я пишу конпелятер). Так же пробежался по этому месту, где изначально падало без них раз 20 дебаггером — и у меня стойкое ощущение, что обосрамс на стороне LLVM.

>>1164433
На вт не заливай, они же деньги зарабатывают на том что сливают сигнатуры свежей малвари вендорам антивирусов. Совсем зелёный штоле?

Ответы6451064561

29 мар, 12:16 250 1164510

>>1164508
Пошёл я, короче, собирать новую версию LLVM, через неделюку сконпелируется мб.

В багзилле ллвма кстати, висят незакрытые репорты сегфолтов с 13 года, всё как мы, байтослесари, любим. Говно, мазут и сегфолты.

29 мар, 13:43 251 1164550

Помоги, анон, с кьютэ
Как отключить выполнение клавиши? ну т.е. допустим есть у меня в моём тексэдите обработка нажатия клавиши таб. обрабатываю, а табуляция добавилась. как убрать это?

Ответы64595

29 мар, 14:02 252 1164561

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

29 мар, 15:38 253 1164595

>>1164550
ты уточняй что имеешь в виду
если про qml - "event.accepted = true"

3,5 Мб, 480x270
29 мар, 18:28 254 1164685

Посоны, я чо вот хотел спросить. Функция Bind () - это типа такой убер мега костыль который позволяет смешивать говно разных версий и аффторов, да?
Что лучше использовать bind () или λ-функцию?

Ответы64939

29 мар, 20:58 255 1164756

Анон, где почитать про то какое С++ говно / не говно.
Мне прост приятно читать срач и хейт на эту тему, мотивирует и повышает ЧСВ.

Ответы6487564927

82 Кб, 615x623
29 мар, 21:07 256 1164762

char buffer[30000];
send(serverSocket, "RETR user.png\r\n", 15, 0);
int size = recv(dataSocket, buffer, 30000, 0);
ofstream fout("test.png", ios_base::binary);
fout.write(buffer, size);
fout.close();

Пытаюсь скачать файл с ftp сервера. Тут я в буфер его сначала сохраняю, потом создаю файл и бинарно записываю в него содержимое буфера. В хекс эдиторе (пик) видно, что в создаваемом файле данные как то сдвинуты, и что-то мне подсказывает, что именно из-за этого говна файл помечается как поврежденный. Что за хуйня и что делать?

Ответы64804

29 мар, 21:08 257 1164764

Решил поковырять немного вашу C++. В чем различия в Visual Studio: community, enterprise и proffesional?

Ответы6480664807

29 мар, 21:56 258 1164804

>>1164762
у тебя с кодировкой что-то. там в начале 0d дублируется вроде в районе 0d 0a.

Ответы64872

29 мар, 21:56 259 1164806

>>1164764
>Visual Studio: community, enterprise и proffesional
В количестве бабла за подписку.

Ответы64811

29 мар, 21:57 260 1164807

>>1164764
ставь community и не парься. именно язык поковырять везде можно.

29 мар, 21:58 261 1164811

>>1164806
В любом случае надо платить, или за комьюнити-версию не надо?

Ответы64826

29 мар, 22:11 262 1164826

>>1164811
За комунити версию ничего не надо, но по лицензии ты над коммерческими проектами работать на ней не должен (в нормальных странах в жопу выебут за такое). +У комунити нет всякой бесполезное хуиты вроде TFS (если у тебя нет целого зоопарка обезъян).

Ответы6482764900

29 мар, 22:13 263 1164827

>>1164826
Спасибо за инфу, анонче. Добра и благ тебе.

29 мар, 23:34 264 1164872

>>1164804
Извини, немного не понял. Какой кодировкой? Как ее фиксануть? Там у меня по всему файлу именно 0d откуда-то появились. Пиздец какой-то вообще не ебу что делать.

Ответы64963

29 мар, 23:38 265 1164875

>>1164756
http://lurkmore.to/Копипаста:Программирование

30 мар, 00:19 266 1164900

>>1164826
>но по лицензии ты над коммерческими проектами работать на ней не должен
1.ПРАВА НА УСТАНОВКУ И ИСПОЛЬЗОВАНИЕ.
a.Индивидуальная лицензия. Если вы являетесь физическим лицом, разрабатывающим собственные приложения для продажи или с какой-либо другой целью, вы можете использовать данное программное обеспечение для разработки и тестирования таких приложений.

Ответы64921

30 мар, 01:13 267 1164919

Внимание
Вопрос знатокам

Есть что почитать на тему modern c++ образца 17го года? Лучше всего книга с хорошими примерами, или серия записей в блоге, код тоже сойдет, если это будет законченное приложение на 5К -10К строк.

Поддался рекламе packt publishing, глянул какую-то парашу от индуса, в-общем не впечатлился, он там и использует умные указатели, но конструирует объекты оператором new зашквар-то какой.

Я же ожидал фабричный конструктор make_shared, smart pointers, local type inference, move semantic, lambda functions в умеренном употреблении, concepts без фанатизма, namespace import в теле класса/метода, правильная работа с итераторами/слайсами в 2к17 - короче все что делает код современных крестов чистым и шелковистым.

Описание озможностей и хорошие практики их использования без багажа традиционной крестовой мозгоебли. Есть такое?

Ответы6492164926

30 мар, 01:21 268 1164921

>>1164900
>>1164919
>но конструирует объекты оператором new зашквар-то какой.
>
>Я же ожидал фабричный конструктор make_shared
Можно и так, и так, но я тоже делаю через make_, потому что на new просится delete.

Ответы64924

30 мар, 01:27 269 1164924

>>1164921
#ifndef пдцдегенераты
#define пдцдегенераты
Когда уже вам модули запилят-то?
#endif //пдцдегенераты

30 мар, 01:35 270 1164926

>>1164919
cppcon канал на ютубе
джосаттиса новое издание книги о шалонах

30 мар, 01:38 271 1164927

>>1164756
если нет бекграунда в несколько лет и программиской вышки - в 2k18 в кресты лучше просто не лезть

Ответы6492864944

30 мар, 01:42 272 1164928

>>1164927
А как же НАСЛЕДИЕ? Столько софта, которого нет на других языках.

30 мар, 02:35 273 1164939

>>1164685
Мэйерс, кажется, писал, нахуй бинд, юзайте лямбды.

30 мар, 03:09 274 1164944

>>1164927
пиздец, а если овервышка, а ты всё сидишь и сука пишешь какую-то хуету в свои 25+ на ебанных крестах?

однокуры либо шарпоёбствуют, либо в цодах макаками ебашут на подносах

30 мар, 08:47 275 1164963

>>1164872
ну погугли чуток сам, ну не сложно ведь совсем. ftp binary transfer mode

30 мар, 09:15 276 1164970

>>1157259
>Но при чем тут c++?
Там же написано для чего он

Нужен спец заменяющий весь отдел, за целых 60к в Москва

30 мар, 11:50 277 1165008

Реализую какое-то странное дерьмо, но мне нужно сделать функцию, которая, например открывает блокнот, вставляет в него текст(заранее известный), дальше она ожидает момент, когда пользователь закроет блокнот, после этого она перезагружает в память тот файл, что пользователь может быть изменил.
В общем чем можно открыть блокнот и отследить момент его закрытия? Через винапи? Если да, то как, открыть блокнот можно через createprocess, наверное, а как следить за тем закрыт он или нет?

Ответы6500965116

30 мар, 11:52 278 1165009

>>1165008
Зачем? Пусть вставляет текст в файл без всякого блокнота, а пользователь жмёт enter в консоли.

Ответы65023

30 мар, 12:38 279 1165023

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

Ответы65025

30 мар, 12:40 280 1165025

>>1165023
>я не знаю
И в итоге пытаешься пойти более кривым и сложным путем, ну-ну.

30 мар, 15:13 281 1165116

>>1165008
Гуглить пробовал ? Первая ссылка в поиске
http://www.cplusplus.com/forum/general/20884/

Ответы6513465181

30 мар, 15:38 282 1165134

>>1165116
Спасибо!

Ответы65181

30 мар, 16:24 283 1165181

>>1165116
>>1165134
Извини, а как ты запрос составил, что нашёл именно то, что нужно?
Я уже дописал в программу, все работает именно так, как хотелось. Ещё раз спасибо.

Ответы75898

30 мар, 17:00 284 1165204

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

Ответы652086540065429

30 мар, 17:06 285 1165208

>>1165204
>задавать ему память определенного объема
Но ведь нет.

Ответы65210

30 мар, 17:10 286 1165210

>>1165208
Ясно, похоже я немножко поторопился задавать вопрос. Слушаю курс cs50 и там пока указатель использовался лишь в компании с malloc(sizeof(datatype)).

30 мар, 18:20 287 1165238

Не знал у кого спросить, спрошу у байтоёбов, как у самых умных в этой теме.

В разных языках, например в Java и C# есть такая тема, как проверка реализации классом некого интерфейса.

Например все перечисляемые типы реализуют интерфейс IEnumerable.

Так вот, насколько эта абстракция хуёвая? По сути мы у динамического типа в рантайме смотрим какой он реализует интерфейс. Это совсем не zero cost, да,

Ответы65252

30 мар, 18:45 288 1165252

>>1165238
Если мы говорим про интерфейсы - то это все чекается и проверяется в компайлтайме, т.е. зерокост.

Е ли ты в рантайме хочешь узнать, какой класс - это возможно в редком случае (узнать дерайвд класс по указателю на базовый через dynamic_cast) - это не зеро кост

Ответы65271

30 мар, 18:54 289 1165257

https://ideone.com/5UT5MT
если делать консоль не видимой, то в фаил не записывается.
https://ideone.com/caBDA7
А в этом коде записывается при не видимой консоли, но записывал слишком часто. Поэтому я в первый код добавил проверку, что если уже нажато то не записывает.

Ответы65258

30 мар, 18:54 290 1165258

>>1165257
ах да, как решить проблему данную

30 мар, 19:08 291 1165271

>>1165252
Я не совсем про это спросил. Я не про C++ спрашиваю.

А про языки типа C# или Java, где в рантайме проверяют класс на наличие у него реализации энного интерфейса.
В C++ вроде этого нет. Мне интересно, насколько такая роскошь бьёт по перфоманцу?

Ответы65328

30 мар, 19:20 292 1165283

>>1157163 (OP)
сап, есть массив, например 1 1 2 2 2 3 3 3. Задача- удалить все повторяющиеся числа, я это сделал получилось 1 2 3, но одно но- после тройки остаются удаленные элементы массива. Как сузить массив с 8 элементов до 3?Вот код - https://pastebin.com/Mj9t8Cgd

Ответы6529265297

30 мар, 19:25 293 1165292

>>1165283
https://wandbox.org/permlink/LC3lbVnejskgF6VH

Ответы6529765307

30 мар, 19:28 294 1165297

>>1165283
Что вообще понимается под "удалить из массива"?

У твоего массива же фиксированный размер.

>>1165292
Гы, а где ретёрн?)

Ответы6530165302

30 мар, 19:31 295 1165301

>>1165297
>Гы, а где ретёрн?)
http://eel.is/c++draft/basic.start.main#5 :
A return statement ([stmt.return]) in main has the effect of leaving the main function (destroying any objects with automatic storage duration) and calling std​::​exit with the return value as the argument.
If control flows off the end of the compound-statement of main, the effect is equivalent to a return with operand 0 (see also [except.handle]).

Ответы65309

30 мар, 19:31 296 1165302

>>1165297
то есть у меня получается из вышеописанного массива 1 2 3 -893546 -457457547- 457457 457 -76767 и т.д, так как я просто сместил ненужные мне числа. Как избавиться от этих неинициализированных чисел?

30 мар, 19:35 297 1165307

>>1165292
спасибо, конечно, но пока моих знаний не достаточно чтобы понять что там происходит

Ответы65309

30 мар, 19:38 298 1165309

>>1165301
Да я знаю, что можно.
Просто бесит когда не пишут ретурн :с

>>1165307
Да нихуя там не происходит. Стандартные библиотеки юзаются и всё.

Ответы6531165315

30 мар, 19:39 299 1165311

>>1165309
но всё же , можно ли сузить массив ?

Ответы653156531865330

30 мар, 19:43 300 1165315

>>1165309
ладно, можешь не отвечать >>1165311
лучше переделаю код

30 мар, 19:51 301 1165318

>>1165311
Если ты выделил память на стеке, то нет. Варианты решения:
1) Выделить память в куче с помощью malloc, потом изменить размер с помощью realloc. Вариант так себе, т.к. это не кресты, а Си. Чтобы было на крестах используешь new, но в таком случае придется копировать все в новый массив.
2) Юзаешь вместо массивов вектор из стандартной библиотеки. Самый лучший вариант.
3) Пишешь свой велосипед класс-обертку над массивом, который хранит размер.

30 мар, 20:14 302 1165328

>>1165271
https://pastebin.com/2iMxYmH3
перформанс - будут накладные расходы на виртуальные функции

30 мар, 20:17 303 1165330

>>1165311
ну представь, твоя подружка настолько продвинутая, что во вторую дырочку у ней спокойно прододит dragon dildo
и ты такой влетаешь на форум проктологов с вопросом: "а можно ли сделать так чтобы моему 12ти сантиметровому инструменту было ТАМ комфортно и узенько"

30 мар, 20:33 304 1165340

если я например хочу удалить содержимое папки, сработает функция?:
remove("C:\\Users\\User\\Desktop\\test\\.")

Ответы65341

30 мар, 20:35 305 1165341

>>1165340
https://pastebin.com/KyA6pKpg

Ответы65614

30 мар, 21:54 306 1165400

>>1165204
ну потому что если есть
тип * ptr = 100;
то если сделать ptr + ptr +1; то ptr будет равен 100 + sizeof(тип)

30 мар, 22:43 307 1165429

>>1165204
тебе же не только начало, а ещё и где конец нужно знать

30 мар, 23:01 308 1165443

Плюс есть типа универсальный void указатель

30 мар, 23:13 309 1165457

>>1159170
У тебя есть права администратора?

31 мар, 06:37 310 1165546

Анончики, решил затестировать folly::fibers. Есть возможность затормозить выполнение рутины, что-то вроде delay или отложенное исполнение по таймеру?

31 мар, 09:30 311 1165578

>>1157632
std::move. Работает для всех методов с параметром T&& (тот же vector.push_back())

31 мар, 10:39 312 1165614

>>1165341
есть еще ответы?

31 мар, 11:04 313 1165618

есть ли видеоуроки на этот язык?
и чем пользоваться лучше всего

31 мар, 12:52 314 1165673

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

Ответы656756569265695657856580465812

38 Кб, 499x533
31 мар, 13:00 315 1165675

>>1165673
>стек и куча нам не нужны
Неплохо.

31 мар, 13:44 316 1165692

>>1165673
placement new тебя спасет.
типа char ptr = new char[sizeof(your object)];
YourObject obj = new YourObject(ptr);
но и потом надо по другому
obj->~YourObject(); // destructor
delete[] ptr; // free memory

но вообще твой начальник дебил, если че.

Ответы656936569465698

31 мар, 13:45 317 1165693

>>1165692
звездочки убились, сорян

31 мар, 13:47 318 1165694

>>1165692
еще сорян, попутал
YourObject * obj = new(ptr) YourObject;

31 мар, 13:48 319 1165695

>>1165673
Пдц крестовики пошли http://www.cplusplus.com/reference/new/operator new/

>placement (3)
void operator new (std::size_t size, void ptr) throw();

мимо разраб на "медленной" жабе

Ответы65723

31 мар, 14:00 320 1165698

>>1165692

Спасибо, но к сожалению это не то, что надо.
Я спрашивал у начальника, не про new placement ли он говорит, но он удивился, в какой редакции плюсов такое появилось, а потом сказал, что он имеет ввиду другое, гораздо более простое решение.
Что как-то можно объявить указатель, указателю присвоить адрес, а вот как по этому указателю создать объект не в куче - я не понял.

Ответы657056572365724657286574265779658046581265839

31 мар, 14:13 321 1165705

>>1165698
void ptr = 0xXYU000XYU;
void mem = malloc(ptr);

Ответы6570665721

31 мар, 14:13 322 1165706

>>1165705
Звездочи сосач съел, но удачного вам отстрела яиц.

31 мар, 14:33 323 1165721

>>1165705

malloc ведь не запустит конструктор.

31 мар, 14:39 324 1165723

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

Ответы65725

31 мар, 14:39 325 1165724

>>1165698
>Я спрашивал у начальника, не про new placement ли он говорит, но он удивился, в какой редакции плюсов такое появилось
Ты тралишь нас так?

31 мар, 14:45 326 1165725

>>1165723
Вероятно, нужно пере этим
>placement (3)
void operator new (std::size_t size, void ptr) throw();
еще зарезервировать память по этому адресу.
"A pointer to an already-allocated memory block of the proper size.", а может разъебешь чего нибудь.

31 мар, 14:49 327 1165728

>>1165698
>Я спрашивал у начальника, не про new placement ли он говорит, но он удивился, в какой редакции плюсов такое появилось
Пдц начальники пошли. У вас одна голова на двоих? Ето именно то что нужно, обконструируйся хоть на стеке, ноть в hbm в любом режиме.

31 мар, 15:14 328 1165742

>>1165698
чувак, ты уточни у него, он точно понимает, что никакой памяти кроме "кучи" и "стека" больше нет? только два варианта.

Ответы65753

31 мар, 15:52 329 1165753

>>1165742
Я бы еще уточнил - нахуя эти приседания вообще делать.

31 мар, 16:24 330 1165779

>>1165698
Видимо, у вас какой-то ембеддед говночип без виртуальной памяти, поэтому можно сделать как-то так:
class1 a = 156
a = class1(a,b,c);

Ответы65781

31 мар, 16:24 331 1165781

>>1165779
В первой строчке указатель на class1, да.

205 Кб, 1998x842
31 мар, 16:39 332 1165785

>>1165673
Пожалуй, заскриню. Был в том треде.

31 мар, 17:23 333 1165804

>>1165698
>>1165673
надеюсь, ты понимаешь что твой лид тоже сидит в этом треде
и в понедельник он будет в два раза более злой

Ответы65807

31 мар, 17:31 334 1165807

>>1165804
мимоначальник?

31 мар, 18:06 335 1165812

>>1165698
>>1165673
Вопросы этого анона заставили меня задуматься - а как в памяти расположены данные-члены класса, если в классе объявлен конструктор, деструктор, методы, индексы и всё такое? Оператор sizeof(classname) учитывает размер адресов функций, или он только суммирует размер по типам данных? В памяти последовательно расположены переменные объекта класса сверху вниз в порядке объявления, или от компилятора зависит? Или между членами-данными вполне может затесаться адрес функции какой нибудь хотя зачем, это же оверхед по 4/8 байт на объект

Ответы65854

31 мар, 18:38 336 1165839

>>1165698
>Что как-то можно объявить указатель, указателю присвоить адрес, а вот как по этому указателю создать объект не в куче - я не понял.
Можно дождаться http://wg21.link/p0593r2 и тогда при некоторых условиях объект появится сам.

31 мар, 19:00 337 1165854

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

sizeof класса с виртуальными функциями = тожсамое + sizeof указатель на vtable

Ответы65869

31 мар, 19:16 338 1165869

>>1165854
Окей, а в памяти процесса то это как выглядит? Последовательно с паддингом значения полей объекта расположены, или еще что нибудь есть?

Ответы658716587265920

31 мар, 19:19 339 1165871

>>1165869
https://2ch.hk/b/arch/2016-08-23/src/134659857/14719411848920.jpg (М)

116 Кб, 596x328
31 мар, 19:19 340 1165872

>>1165869

31 мар, 20:32 341 1165920

>>1165869
так же

31 мар, 23:11 342 1166013

Читаю Липмана, вроде свежего. Что-то не очень понял, что они имели в виду про инициализацию по умолчанию.
Утверждается на 77 странице по внутренней нумерации, что инты объявленные внутри функции (видимо в том числе мейне) - неопределены. Я вот проверил это на g++ из стандартной поставки линукса и там это не так.
В мейне это нуль, а в любой другой функции - неопределено, ну т.е. случайное число.
И вообще притензия к этой книге. Если бы я не знал более менее то, о чем читаю, то боюсь - не понял бы ничерта. А что делать, когда я реально наткнусь на то, чего не знаю? Или проверять нужно каждый непонятный момент и вопрос? Или я просто невнимательно читаю и там все подводные камни описаны? К примеру этот момент про майн не уточняется, можете сами глянуть, вторая книга для вкатывальщиков из шапки.

Ответы66038

31 мар, 23:16 343 1166016

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

Ответы6601966061

31 мар, 23:22 344 1166019

>>1166016
> Сижу в деревне.
Хоть на крестах пиши, только не бухай.
Подергал чертополох на грядках до начала жары и пошел себе читать про умные указатели и раи. Не жизнь, а мечта!

1 апр, 00:12 345 1166038

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

Ответы66040

1 апр, 00:19 346 1166040

>>1166038
Т.е. такого быть не факт, что должно? Фича g++?
Спасибо.

Ответы66048

1 апр, 00:38 347 1166048

>>1166040
>Фича g++?
Нет, просто повезло, что в момент запуска программы на стеке по данному адресу был ноль.
https://godbolt.org/g/4vbJU1

Ответы66053

1 апр, 00:49 348 1166053

>>1166048
Не верю в такое везение. Перекомпилировал, все равно нуль. В случае неопределенной переменной внутри функции - результат менялся каждую секунду при запусках.

Ответы66088

1 апр, 01:16 349 1166061

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

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

>Сможет ли это перерасти в нечто большее облегчающее мою жизнь.
может

> Или я заброшу на следующий день?
зависит только от тебя

1 апр, 03:23 350 1166088

>>1166053
Попробуй так:
#include <stdio.h>
int main() {
{
volatile int a = 0x55555555;
}
int b;
printf("%x\n", b);
return 0;
}

Ответы66167

1 апр, 11:05 351 1166152

двач, какая функция удаляет папку. пробовал remove(), но она работает только для файлов

Ответы66194

1 апр, 11:47 352 1166167

>>1166088
Кошерный нуль, все так же. А зачем ты засунул в маин блок?

Ответы66172663076668866692

1 апр, 12:04 353 1166172

>>1166167
Это scope.
Суть в том, что как только ты вышел из скоупа у тебя переменная 'а' автоматически удалилась.

1 апр, 13:04 354 1166194

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

1 апр, 15:45 355 1166307

>>1166167
Тонкостей не знаю, но, возможно, при старте программы выделенная под стек память обнуляется.
Идея была в том что сначала ты создаешь переменную 'а' с каким-то значением, то есть модифицируешь участок памяти стека. При выходе из скоупа указатель стека смещаеться обратно и переменная 'b' создаётся на месте 'a'. В таком случае у не инициализированной 'b' должно быть значение оставшееся от 'a'.
Кстати, у меня все так и вышло. Проверял на msvs2017 release.

Ответы66310

1 апр, 15:57 356 1166310

>>1166307
>Кстати, у меня все так и вышло.
А вот у меня не вышло и не выходит. И продолжает получаться нуль в мейне и не нуль всюду в остальных местах.

Ответы6635766426

1 апр, 17:04 357 1166357

>>1166310
Ну можешь не инициализировать явно. Зачем кого-то слушать. Удачного отстрела ноги

Ответы66370

1 апр, 17:12 358 1166370

>>1166357
Не понял твоего поста. Я спрашивал, почему происходит то, чего происходить не должно. В чем отстрел ноги?

Ответы6639766424

1 апр, 17:48 359 1166391

Пусть у меня есть класс одним из полей которого является string. Есть несколько вопросов:
1) Какой изначально макс. длинны создаётся строка. Строка ведь вроде растёт по такому принципу: есть макс. длина, например 4, как только она достигается создаётся новая строка в два раза больше размером и старая строка копируется в новую, так? Если так, то как она будет увеличиваться, ведь он не может просто так увеличить размер объектаили может?
2) Что будет если я например выделю массив таких объектов и у одного увеличу строку, ведь по логике память может заехать на соседний объект и испоганить там всё.

Ответы66392663996640666430

1 апр, 17:49 360 1166392

>>1166391
>длинны
длины*
селф-фикс

1 апр, 17:53 361 1166397

>>1166370
> Я спрашивал, почему происходит то, чего происходить не должно.
А почему это происходить не должно?

1 апр, 17:54 362 1166399

>>1166391
>1) Какой изначально макс. длинны создаётся строка.
Не определено.
> память может заехать на соседний объект и испоганить там всё.
Твою защёку определённо испоганит.

Ответы66401

1 апр, 17:58 363 1166401

>>1166399
То есть если вдруг нужно делать массив таких объектов, то полем лучше делать указатель на string?

Ответы66403

1 апр, 17:59 364 1166403

>>1166401
Друг, ты серьёзно спрашиваешь или стебёшься?

Ответы66421

1 апр, 18:01 365 1166406

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

1 апр, 18:16 366 1166421

>>1166403
Нет, мне просто нужно знать насколько безопасно так делать или как делать лучше.

1 апр, 18:20 367 1166424

>>1166370
Забей всю память через new и потом попробуй вывести неинициализированную переменную

1 апр, 18:22 368 1166426

>>1166310
Похоже указатель стека не возвращается обратно.
Можешь дебагере посмотреть память стека.
Вообщем как уже сказали - не полагайся на подобное поведение.

Ответы6668566706

1 апр, 18:27 369 1166430

>>1166391
String содержит указатель на char, память выделяется через new. При всех операциях выделяется новая память, а старая удаляется. Массив string это массив указателей на char. В общем случае данные не следуют друг за другом. Только указатели на эти данные

Ответы66432

1 апр, 18:37 370 1166432

>>1166430
Я имел в виду нет разницы между случаем с полем string и полем string *?
Я спрашивал про массив объектов, полем которого является одно из того, что я перечислил выше.

Ответы6644166495

1 апр, 19:01 371 1166441

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

18 Кб, 531x187
1 апр, 20:52 372 1166495

>>1166432
>Я имел в виду нет разницы между случаем с полем string и полем string
с твоим первым вопросом это вообще связи не имеет. разница есть. поле string - объект строка будет хранится целиком последовательно в том месте, где создан объект класса. но! содержимое строки != объект строки. объект строки может содержать различные указатели, вспомогательные приватные переменные, но ее содержимое содержится совсем в другом месте в куче, адрес которой - протектед указатель на char где то внутри за кучей наследований.
string - это указатель на объект, то есть даже вспомогательные структуры будут хранится не в стеке, а хуйпойми где в куче. пикрил надеюсь поможет тебе понять.

Ответы66497

1 апр, 20:54 373 1166497

>>1166495
ой бляяяя ебучая разметка

с твоим первым вопросом это вообще связи не имеет. разница есть. поле string - объект строка будет хранится целиком последовательно в том месте, где создан объект класса. но! содержимое строки != объект строки. объект строки может содержать различные указатели, вспомогательные приватные переменные, но ее содержимое содержится совсем в другом месте в куче, адрес которой - протектед указатель на char где то внутри за кучей наследований.
string* - это указатель на объект, то есть даже вспомогательные структуры будут хранится не в стеке, а хуйпойми где в куче. пикрил надеюсь поможет тебе понять.

Ответы66505

1 апр, 21:03 374 1166505

>>1166497
Да, теперь понял.
Просто я спрашивал не будет ли "заезжать" соседние поля стринга если создать массив объектов.
Судя по твоему ответу ничего плохого не будет, т.к. само поле стринг это объект фикс. размера, и строка хранится в другом месте.

Ответы66536

1 апр, 21:47 375 1166536

>>1166505
>стринг это объект фикс. размера
А что, есть объекты нефиксированного размера?

1 апр, 21:54 376 1166544

>>1164418
Кавычки в кейсах, брат

1 апр, 22:36 377 1166560

Комитет по стандартизации языка принял решение о том, что указатели будут объявлены устаревшими в C++20 и с большой долей вероятности будут удалены из C++23.

СИ ПЛЮС ПЛЮС ВСЕ

Ответы6656566568

1 апр, 22:48 378 1166565

>>1166560
Пруфы?

Ответы66566

1 апр, 22:50 379 1166566

>>1166565
АХАХАА С ПЕРВЫМ АПРЕЛЯ ЛООООЛ

Ответы6656766568

1 апр, 22:53 380 1166567

>>1166566
На дваче каждый день первое апреля

Ответы66568

1 апр, 22:59 381 1166568

>>1166560
УХ БЛЯДЬ!!!
>>1166566
>>1166567
А потом отлегло... но осадочек остался.

1 апр, 23:01 382 1166569

АААААААААААА Блядь!!!!
http://www.modernescpp.com/index.php/no-new-new
26 March 2018 неповторимый оригинал

https://habrahabr.ru/post/352570/ - 1е апреля не лучшее время для публикации такого.

Ответы66689

1 апр, 23:04 383 1166570

Аноны, я вот начинал изучать кресты в брошеном универе лет 10 назад, теперь начал по новой. Но ощущение такое что приходится учить совершенно другой язык. А после этой новости, блядь да что делать то? Есть у кого умные мысли о дальнейшем развитии крестов? Куда всё катиться?

Ответы665726657466592

1 апр, 23:06 384 1166572

>>1166570
Все катится к Black Women Who Code

1 апр, 23:18 385 1166574

>>1166570
Почитай коменты к той статье на хабре, вроде как шутка таки, но даже если и нет то тебе не похуй?
Если это будет в 2023 году а стандарт выйдет из хипстерской зоны и начнет юзаться в продакшене только спустя еще лет 5 то к тому времени ты уже будешь невъебенным спецом и тебе на такую хуйню будет похуй

2 апр, 00:40 386 1166592

>>1166570
В крестах все охуенно, есть вакансии по 200+ штук.

Например https://hh.ru/vacancy/25040958

Язык развивается, и это очень здорово.

Ответы66617

2 апр, 02:46 387 1166617

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

Ответы6661866699

2 апр, 02:47 388 1166618

>>1166617
те она пока еще не ушла, но уйдет тоже в ближайшие годы..

2 апр, 08:09 389 1166640

Здравия анонам, как познакомится с последним стандартом C++? Нужно ли для этого знакомится с предыдущими?

Ответы6666066668

2 апр, 09:54 390 1166659

Это правда про 8000 часов. Что-то не особо в это верится

2 апр, 10:06 391 1166660

>>1166640
Ты бы и с собакой познакомился.

2 апр, 11:09 392 1166668

>>1166640
> как познакомится с последним стандартом C++?
Тебе лучше познакомиться с учебником русского.

2 апр, 11:10 393 1166669

>>1166666

2 апр, 11:50 394 1166685

>>1166426
>Похоже указатель стека не возвращается обратно.
Он охуел?

Ответы66686

2 апр, 11:55 395 1166686

>>1166685
Предлагаю зарепортить в issue-tracker gcc/claпg и пожаловаться в комитет ISO на страуструпа.

Ответы66693

2 апр, 11:58 396 1166688

>>1166167
>Кошерный нуль, все так же.
https://godbolt.org/g/X3Wm5r

2 апр, 11:59 397 1166689

>>1166569
Так, бля, подождите.
Но всё ещё можно будет, например, обращаться к данным, лежащим по какому-либо заданному адресу?

Я тонны свистелок пишу с инжектами и чтением памяти процесса.

Ответы66690

2 апр, 11:59 398 1166690

>>1166689
Это первоапрельская шутка.

2 апр, 12:00 399 1166692

>>1166167
>Кошерный нуль, все так же.
Оптимизации включи.

2 апр, 12:01 400 1166693

>>1166686
Нет, а серьезно.
Где корень проблемы?
(так же стек кончится)

Ответы66821

6 Кб, 369x195
2 апр, 12:04 401 1166694

Ответы66701

2 апр, 12:10 402 1166699

>>1166617
откуда у тебя инфа такая? Тот же интел есть в Новгороде и Новосибирске еще, допустим.

Ответы66768

2 апр, 12:11 403 1166701

>>1166694
Ну и?

Ответы66703

2 апр, 12:12 404 1166703

>>1166701
Хочу получить не 0.

Ответы6670466705

2 апр, 12:13 405 1166704

>>1166703
https://wandbox.org/permlink/b1kdVnxA8flZnvdW

2 апр, 12:13 406 1166705

>>1166703
А какая разница, что ты получаешь?
UB перестаёт быть UB, если печатается 0?

Ответы66706

2 апр, 12:15 407 1166706

>>1166705
Не перестаёт.
Меня тревожит это >>1166426

Ответы66707

2 апр, 12:15 408 1166707

>>1166706
>Меня тревожит
Тебе в /psy/

Ответы66708

2 апр, 12:17 409 1166708

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

Ответы66710

2 апр, 12:24 410 1166710

>>1166708
Потому.
Никак.

13 Кб, 414x359
2 апр, 12:31 411 1166711

Ага, всё понятно.

Ответы6671267000

2 апр, 12:32 412 1166712

>>1166711
Аддресс печатается модификатором p, а не x, довун

Ответы66715

2 апр, 12:33 413 1166713

Хелп: >>1166679

Ответы66714

2 апр, 12:35 414 1166714

>>1166713
1. Перемещаешь спрайт центром в начало координат
2. Поворачиваешь вокруг начала координат
3. Возвращаешь спрайт обратно где был

2 апр, 12:38 415 1166715

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

2 апр, 12:40 416 1166716

Блядь, как можно вектор инициализировать двумерным массивом строк? Что бы было примерно так:
vector <string> Table = {{"один","два"},{"три","четыре"}};

Попробовал вот так, но не работает:
string s[2][2] = {{"один","два"},{"три","четыре"}}
vector <string> Table(s,s+4);

Ответы667206672166748

2 апр, 12:42 417 1166717

Алсо, как указателю присвоить адрес в конструкторе?

Ответы66718

2 апр, 12:42 418 1166718

>>1166717
Без задней мысли.

Ответы66719

2 апр, 12:44 419 1166719

>>1166718
Да, действительно.

2 апр, 12:45 420 1166720

>>1166716
1.Создать класс с полем из двухмерного массива строк
2.Написать конструктор
3.Создать вектор
4.?????
5.PROFIT

Ответы66972

2 апр, 12:46 421 1166721

>>1166716
>Table(s,s+4)
Table(&s[0][0],&s[0][0]+4)

Ответы66972

28 Кб, 270x506
2 апр, 12:53 422 1166723

Почему здесь у двух разных объектов один и тот же адрес? https://ideone.com/wVQs5I
Разве в C++ это разрешено?

Ответы6672466727

2 апр, 12:54 423 1166724

>>1166723
стек фреймы разные

Ответы66725

2 апр, 12:56 424 1166725

>>1166724
Чо?

Ответы66726

2 апр, 12:56 425 1166726

>>1166725
стек фреймы

2 апр, 12:58 426 1166727

>>1166723
Они же не существуют одновременно.
Первого уже не существует, второй получил его адрес, чтоб данные не копировать.

Ответы66733

2 апр, 13:27 427 1166733

>>1166727
Ок

Ответы66738

2 апр, 13:50 428 1166738

>>1166733
Я это сам придумал кстати.

2 апр, 14:00 429 1166748

>>1166716
https://ideone.com/d30cJF

2 апр, 14:01 430 1166752

В fstream есть функция peek(), которая возвращает следующий символ, если я сделаю peek() 3 раза подряд, то я возьму первые 3 символа по очереди, и если например у меня c=fin.peek(), то в с у меня будет третий символ из файла?
И ещё вопрос, если я при открытии проверяют пуст ли файл, то есть делаю peek() и сравнивают результат с EOF, то как мне "вернуть счётчик на место, то есть чтобы я могу снова сделать peek() после условия и он вернул мне первый символ.
Извините за тупой вопрос.

Ответы6675566760

2 апр, 14:04 431 1166755

>>1166752
http://www.cplusplus.com/reference/istream/istream/peek/ : Returns the next character in the input sequence, without extracting it

>если я сделаю peek() 3 раза подряд, то я возьму первые 3 символа по очереди
Довн, плес

Ответы66756

2 апр, 14:07 432 1166756

>>1166755
То есть с помощью peek() модно проверить только первый символ потока?
И чтобы добраться до следующих нужно предыдущие из потока вынуть?

Ответы66757

2 апр, 14:09 433 1166757

>>1166756
Каким методом я могу вынимать символы из потока по одному? .get()?

2 апр, 14:13 434 1166760

>>1166752
ПИК ПИК ПИК

2 апр, 14:30 435 1166768

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

Ответы66939

2 апр, 14:53 436 1166784

>>1157163 (OP)
Поясните ньюфагу, с чем кроме указателей можно юзать std::memory_order_consume?

Ответы66817

2 апр, 16:50 437 1166817

>>1166784
http://eel.is/c++draft/basic.exec#def:carries_a_dependency

2 апр, 17:07 438 1166821

>>1166693
Смею предположить, что компилер анализирует код и при вызове ф-и (main тоже какбэ ф-я) сразу выделяет стек под все объявленные в ней переменные. А дальше они просто создаются по порядку.
Напичкали оптимизаторами - хуй разберешь, что и почему

2 апр, 20:19 439 1166939

>>1166768
Ну ничего, будут писать на модула-2 прошивки для чебурнета на раутерах эльбрус-содружество.

2 апр, 21:14 440 1166964

Почему некоторые говорят, что rust или любой другой компилируемый язык лучше C++, потому что у него нет указателей и прямой работы с памятью? В каком месте это преимущество, если это фактически вырезанный функционал?

Ответы67026

2 апр, 21:26 441 1166972

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

Ответы6698267032

2 апр, 21:45 442 1166982

>>1166972
Хули нет кнопки "зделоть заебись"?

2 апр, 22:05 443 1167000

>>1166711
>Ага, всё понятно.
&b - 1 — UB

2 апр, 22:34 444 1167026

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

Ответы67034

2 апр, 22:37 445 1167032

>>1166972
Ты хоть почитай как шаблоны работают. Нет у тебя стандартного класса для двумерного массива строк. String это массив символов, следственно vector <string> это контейнер для массива символов, но никак не для двумерного массива строк

Ответы67103

2 апр, 22:40 446 1167034

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

Ответы67038

2 апр, 22:45 447 1167038

>>1167034
Потому что нахуй тебе управление памятью не нужно в 99%. Сборщик мусора очистит. Тебе нужно меньше думать над нюансами, больше над программой вцелом, меньше отлавливать косяков.

2 апр, 23:41 448 1167103

>>1167032
ну а хули они не сделали поддержку многомерных массивов строк? Охулеи совсем там

2 апр, 23:56 449 1167142

Как поменять местами элементы в двух списках?

Ответы67160

3 апр, 00:07 450 1167160

>>1167142
Без задней мысли. https://ideone.com/hkHfb9

Ответы67179

3 апр, 00:28 451 1167179

>>1167160
Спасибо

3 апр, 03:36 452 1167205

Сильно уёбищно выглядит?

template<typename... Ts>
QJsonArray toJsonArray(Ts... params)
{
QJsonArray rv{};
((rv.append(QJsonValue(std::forward<Ts>(params)))) , ...);
return rv;
}

Ответы67269

3 апр, 04:04 453 1167209

>...
>Huita();
>...
Такое вот создание rvalue-объекта тупо вызов конструктора, больше объект не нужен, поэтому rvalue и выполнение всего нужного в конструкторе норм практика?
Как называется эта болезнь?

Ответы672116721267249

3 апр, 04:08 454 1167211

>>1167209
Что мешает сделать функцию и там всё это выполнять? Или у тебя какой-то DI и без объектов не обойтись?

Ответы67214

3 апр, 04:08 455 1167212

>>1167209
Я ещё немного поясню. Используется именно класс, а не функция, потому что много всего приватными методами там внутри класса делается. И это запихано в конструктор. Нужно затем, чтобы всё связанное с объектом удалялось сразу после вызова.

Ответы6721467216

3 апр, 04:10 456 1167214

> потому что много всего приватными методами и приватными переменными
Фикс.

>>1167211
>>1167212

3 апр, 04:16 457 1167216

>>1167212
Можно вместо конструктора использовать статический метод (а конструктор сделать приватным и пустым и вызывать внутри статического метода) и в нём и выполнять всю хуйню.

Ответы67218

3 апр, 04:25 458 1167218

>>1167216
Я чет думал, что в статических методах можно выполнять только то, что не затрагивает нестатические данные. Спасибо, подходит.

Ответы67240

3 апр, 08:50 459 1167240

>>1167218
Статическому методу просто не передаётся неявно указатель this. Если ему передать явно ссылку на объект, то он вполне может изменять поля.

42 Кб, 1003x413
3 апр, 09:38 460 1167249

>>1167209
>rvalue-объекта
Довун, никаких rvalue или lvalue объектов не существует.
Это классификация выражений. http://eel.is/c++draft/basic.lval#fig:categories
Проследуй в ньюфаг-тред.

3 апр, 11:15 461 1167269

>>1167205
Довун, forward используется с forwarding references, а у тебя их нет.
Вернись в ньюфаг-тред.

Ответы67296

3 апр, 12:22 462 1167296

>>1167269
Таки да. Правда QJsonValue не принимает объекты по универсальной ссылке, так что толку от форвардинга и нетю

Ответы67297

3 апр, 12:25 463 1167297

>>1167296
>QJsonValue не принимает объекты по универсальной ссылке, так что толку от форвардинга и нет
Т.е. всё по значению гонять?

Ответы67298

3 апр, 12:27 464 1167298

>>1167297
Примитивы по значению, всё остальное по ссылке.

Ответы67299

3 апр, 12:29 465 1167299

>>1167298
И откуда возьмутся ссылки в
template<typename... Ts>
QJsonArray toJsonArray(Ts... params)
?

Ответы67302

3 апр, 12:39 466 1167302

>>1167299
Ниоткуда. Лучше действительно сделаю простые ссылки. А то у меня там объекты такие маленькие, что копирование, что перемещение занимает одинаковое время и лучше старой доброй ссылки ничто не справится.

506 Кб, 2046x988
3 апр, 21:18 467 1167587

А правда, на цпп возможен веб?

Ответы6766767720677216784567877

3 апр, 23:27 468 1167667

>>1167587
возможен, но лучше не надо))
из последнего глядел на Wt
https://github.com/emweb/wt

заходил на офф. сайт этого фреймворка.
https://www.webtoolkit.eu/wt

И что-то как-то не оч., у них постоянно делается по 50 запросов на favicon при скроллинге. ._.

Ответы67849

4 апр, 01:44 469 1167710

Есть вопрос про Qt + shared_ptr. Вот допустим я сделал класс: https://pastebin.com/R0uwaGpt

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

Лямбда захватывает shared_ptr на сам класс (чтобы он не удалился раньше времени). Однако возникает вопрос с удалением. Я сделал кастомный deleter для shared_ptr, который вызывает deleteLater (благодаря тому, что конструктор приватный, а получить объект можно через статический метод, который и определяет deleter, то проблем с удалением быть не должно). Таким образом в конце функции удаляется связь лямбды с объектом, что приводит к удалению лямбды, что приводит к удалению захваченного shared_ptr и тот если больше нет пользователей ставит объект в очередь на удаление.

Будет ли это работать как я хочу?

Ответы6801768633

4 апр, 02:07 470 1167720

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

Фронт - ну какие то потуги с вебассембли есть, но я не в теме

Ответы67722

4 апр, 02:07 471 1167721

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

4 апр, 02:08 472 1167722

>>1167720
> У яндекса [...] бэк на С++ весь, например.
Пруфы-то есть хоть? Все мои знакомые из яндекса автору, музыка, кинопоиск на джаве пишут.

Ответы6772468013

4 апр, 02:13 473 1167724

>>1167722
большой поиск, маркет, всякое инхаус говно для МЛ еще (catboost)

Соус - знакомый тимлидит в маркете, сам собесился в маркет и поиск.

4 апр, 12:14 474 1167845

>>1167587
Нет, спроси у чулочника, он свою борду в конце-концов с крестов на js перевел.

4 апр, 12:17 475 1167849

>>1167667
>И что-то как-то не оч., у них постоянно делается по 50 запросов на favicon при скроллинге. ._.
Проверил и проорал.

4 апр, 13:45 476 1167877

>>1167587
и на ассемблере тоже

4 апр, 15:35 477 1167923

Имею я char массив с несколькими символами. Как я могу изменить ascii код каждого символа, например на 3?

Ответы67926

4 апр, 15:55 478 1167926

>>1167923
for(int i=0;i<sizeof(ar);i++)
ar+=3;

Ответы6792768018

4 апр, 15:56 479 1167927

>>1167926
ar+=3;

Ответы6792968018

4 апр, 15:57 480 1167929

>>1167927
Блядь. Съедает квадратные скобки.
ar(i)+=3;
Вместо круглых квадратные скобки

Ответы6793668018

7 Кб, 682x125
4 апр, 16:05 481 1167936

>>1167929
Почему получились сердечки и смайлики из юникода?

Ответы67943

4 апр, 16:21 482 1167943

>>1167936
Они вроде не из юникода а из ASCII.

4 апр, 16:28 483 1167947

>>1157163 (OP)
Чет туплю, помогите плз. Считываю цифры вот так: while(cin >> val). Ясное дело, что если я введу не цифру, она останется в потоке cin. Как её оттуда выкинуть? Пробовал и cin.clear() и cin.get(). В конце есть функция, которая задерживает окно:
inline void keep_window_open()
{
cin.clear();
cout << "Please enter a character to exit\n";
char ch;
cin >> ch;
return;
}

Я так понял она съедает этот последний символ .

Ответы6795067956

4 апр, 16:41 484 1167950

>>1167947
clear не делает ничего с символами внутри потока, он лишь меняет флаг.

Ответы6795267953

4 апр, 16:44 485 1167952

>>1167950
https://ru.stackoverflow.com/questions/562229/

4 апр, 16:45 486 1167953

>>1167950
Какой флаг?

Ответы67955

4 апр, 16:47 487 1167955

>>1167953
>Какой флаг
Состояние потока. http://en.cppreference.com/w/cpp/io/ios_base/iostate

4 апр, 16:48 488 1167956

>>1167947
Ты, я так понял, по Принципам Страуструпа учишь? Потерпи до 10 главы, там по этой теме все достаточно подробно, чтобы понять.

Ответы67961

4 апр, 16:52 489 1167961

>>1167956
Да. Хорошо потерплю, но как мне ,блин, выкинуть этот символ из потока?

Ответы67967

4 апр, 16:58 490 1167967

>>1167961
http://en.cppreference.com/w/cpp/io/basic_istream/ignore

4 апр, 19:11 491 1168013

>>1167722
>кинопоиск на джаве
гыыы

4 апр, 19:18 492 1168017

>>1167710
надеюсь ты студентик еще или учишься и что этот код никогда не попадет в продакшен

4 апр, 19:24 493 1168018

>>1167926
>>1167927
>>1167929
а почему не
for (auto &temp_govno: ar)
temp_govno +=3;
Зачем каждый раз набирать эту тривиальную хуйню с бегунком когда есть серийниый for?

Ответы6804168129

4 апр, 19:36 494 1168023

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

Ответы68030

4 апр, 19:44 495 1168030

>>1168023
> Можно каждый раз при загрузке программы переменные выгружать в случайные области выделенной памяти
Если под выделенной памятью ты понимаешь виртуальную память процесса, то PE файл должен поддерживать релокации, и механизм ASLR должен сам распидорасить процесс. Переменные тогда объявляешь не в стеке, а через int* v = new int(10) вместо int v = 10;

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

Ответы6803168033

4 апр, 19:44 496 1168031

>>1168030
Ах да, это всё применимо только про windows, про мир *nix мало чего знаю

4 апр, 19:53 497 1168033

>>1168030
Просто мне интересен один момент про читы, они все работают по чтению/записи по определенному офсету, неужели нельзя сделать чтобы данные распидорашивало в кашу в памяти?

Ответы68034

4 апр, 19:57 498 1168034

>>1168033
>читы, они все работают
с чего ты взял?

Ответы68037

4 апр, 20:01 499 1168037

>>1168034
ну ок, 90%.

Ответы68532

4 апр, 20:16 500 1168041

>>1168018
Тому що раз такой вопрос, то уже просто от auto ньюфаг охуеет. Впрочем, может и стоит их гнать отсюда ссаными тряпками

Ответы68054

4 апр, 20:47 501 1168054

>>1168041 у Липпмана авто с самого начала книги используется. Я сам новичок если чо.

4 апр, 20:55 502 1168057

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

Ответы68131

4 апр, 23:03 503 1168129

>>1168018
Иногда, при дебаге, может понадобиться индекс элемента.

4 апр, 23:08 504 1168131

>>1168057
На один уровень выше экзешника.
Алсо, это настраивается в проекте.

4 апр, 23:32 505 1168139

>>1161672
Бамп, помогите решить, уже все перепробовал.

Ответы68144

4 апр, 23:39 506 1168144

>>1168139
https://codeyarns.com/2015/08/05/how-to-set-link-directories-in-cmake/

Ответы68145

4 апр, 23:43 507 1168145

>>1168144
Так делал - все равно не находит.

5 апр, 00:31 508 1168183

>>1160913
Какие глубокие мысли.

А ещё процессор исполняет инструкции.

5 апр, 06:56 509 1168252

>>1157163 (OP)
Здравия, можно ли писать так в плане понятливости или не стоит?
cout << "Медианная температура: " << (((temps.size() % 2) == 0) ? (temps[temps.size() / 2] + temps[temps.size() / 2 - 1]) / 2 : temps[temps.size() / 2]) << "\n";

Ответы68266

5 апр, 08:42 510 1168266

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

5 апр, 11:12 511 1168323

Стоит ли заниматься на степике или codewars?

Ответы68402

5 апр, 14:38 512 1168402

>>1168323
Только как дополнение к основному курсу.

Ответы68443

5 апр, 15:53 513 1168424

Можно ли как-то определить в коде средствами языка, что наследуемый класс ОБЯЗАН пероепределить виртальную функцию?

Ответы6842768428

5 апр, 15:55 514 1168427

>>1168424
override

Ответы68432

5 апр, 15:56 515 1168428

>>1168424
Да, называются pure virtual function.
virtual void my_fun() = 0;

Ответы68432

5 апр, 16:04 516 1168432

>>1168427
Лол
>>1168428
Базовый класс не абстрактный.
Чуть конкретней - есть visitable класс, нужно чтобы не забыли вставить свой accept для каждого класса добавляемого в иерархию.

Ответы6843368503

5 апр, 16:06 517 1168433

>>1168432
> Базовый класс не абстрактный.
Тогда никак. И это не ограничение C++, в любых языках так. Что мешает сделать класс абстрактным?

Ответы68436

5 апр, 16:10 518 1168436

>>1168433
Хотя, вроде можно использовать CRTP и магию SFINAE для проверки во времени компиляции (но тогда базовый класс будет шаблоном, хотя и с дефолтным параметром на себя). Если интересует, могу написать.

Ответы68482

5 апр, 16:16 519 1168443

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

5 апр, 16:20 520 1168453

Можно ли как-то сделать для метода значением по умолчанию поле класса, в котором этот метод находится?
Т.к. если просто написать (= поле_класса) происходит ошибка (a nonstatic member reference must be relative to a specific object). Причём нет разницы где я ставлю значение по умолчанию, что в классе, где только прототип метода, что в другом файле, где находится реализация метода.

Ответы684626847368499

5 апр, 16:26 521 1168462

>>1168453
Значение по умолчанию для аргумента метода, конечно. Это я имел в виду.

5 апр, 16:47 522 1168473

>>1168453
Могу обойти это поставив нужное поле класса аргументом при вызове, т.к. этот метод я вызываю в другом методе этого же класса, но хотелось бы чтобы этот метод можно было вызвать с пустым списком параметров и он бы сам подхватил параметр по умолчанию.
Кстати, если то-о может объяснить из-за чего эта ошибка возникает, буду благодарен.
Т.к. метод не объявлен как статический, а всё что связано с этой ошибкой в поиске выдаёт только проблему именно со статическим методом

5 апр, 17:07 523 1168482

>>1168436
Во, сделол: https://ideone.com/FPDCq0

Шаблоны провеки

template <typename T, typename Base, typename = void_type<>>
struct CheckFun: CheckHelper<T, Base> {};

template <typename T, typename Base>
struct CheckFun<T, Base, void_type<typename std::enable_if<!std::is_same<decltype(&T::fun), decltype(&Base::fun)>::value, void>::type>> : std::true_type {};

нужно определять для каждой функции, вместо CheckFun ставишь имя проверки (которое используешь в static_assert, а в &T::fun и &Base::fun вместо fun ставишь имя функции для проверки.

Ответы68488

5 апр, 17:17 524 1168488

>>1168482
Алсо, если функции перегружены, то придётся писать более сложный шаблон проверки.

5 апр, 17:39 525 1168499

>>1168453
>Можно ли как-то сделать для метода значением по умолчанию поле класса, в котором этот метод находится?
вместо значений по умолчанию используй перегрузку метода

Ответы68528

5 апр, 17:44 526 1168503

>>1168432
>Можно ли как-то определить в коде средствами языка, что наследуемый класс ОБЯЗАН пероепределить виртальную функцию?
>Базовый класс не абстрактный.
в будущих стантартах языка это можно будет делать средствами рефлексии или метаклассами, кстати

Circular dependency 5 апр, 18:03 527 1168521

Итак, у меня есть A.cpp, A.hpp, B.cpp, B.hpp, main.cpp.
В A.hpp у меня:
>include B.hpp
>class A{
>B foo;}

А в B.hpp
>include A.hpp
>A bar;

Ошибки "syntax error: identifier A ... missing type specifier - int assumed".

Перед телом класса в каждом hpp объявляю другой класс, вот так:
A.hpp:
>include "B.hpp"
>class B;
>class A{
>B foo;}

B.hpp
>include "A.hpp"
>class A;
>class B{
>A foo;}

Теперь ошибка: "unresolved external symbol" и дальше название одного из методов этих классов. Что делать?

Circular dependency 5 апр, 18:03 527 1168521

Итак, у меня есть A.cpp, A.hpp, B.cpp, B.hpp, main.cpp.
В A.hpp у меня:
>include B.hpp
>class A{
>B foo;}

А в B.hpp
>include A.hpp
>A bar;

Ошибки "syntax error: identifier A ... missing type specifier - int assumed".

Перед телом класса в каждом hpp объявляю другой класс, вот так:
A.hpp:
>include "B.hpp"
>class B;
>class A{
>B foo;}

B.hpp
>include "A.hpp"
>class A;
>class B{
>A foo;}

Теперь ошибка: "unresolved external symbol" и дальше название одного из методов этих классов. Что делать?

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

5 апр, 18:14 528 1168528

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

5 апр, 18:16 529 1168532

>>1168037
Лет 15 назад это было так, ну и на 32-битных машинах.

5 апр, 18:17 530 1168533

>>1168521
Советую во всех header-файлах использовать директивы препроцессора, которые проверяют не подключен ли уже заголовок или pragma once или ifndef

Ответы68539

5 апр, 18:29 531 1168539

>>1168533
А у меня так и есть, кстати. #ifndef HEADER_NAME #define HEADER_NAME ... #endif. Не помогает.

Аноним 5 апр, 18:43 532 1168546

>>1168521
Скинь архивом на почту.

Ответы6856468581

5 апр, 18:58 533 1168564

>>1168546
Давай почту.

Ответы68568685746858168845

5 апр, 19:00 534 1168568

>>1168564
u@/]0atgkirzny5ANUSmaiA!"lPUNCTUMr5TQu

5 апр, 19:10 535 1168574

>>1168564
Добавь
class Connect4Game;
в Connect4View.hpp
И заинклудь Connect4Game.hpp в Connect4View.cpp

Ответы6860868617

40 Кб, 913x298
5 апр, 19:12 536 1168579

Эти функции должно убирать из строки все буквы или цифры, но цифры убираются только если они в конце, а буквы - если цифры только в начале. ЧЯДНТ?

Ответы6858368591

Аноним 5 апр, 19:15 537 1168581

>>1168564
Я указал в своем посте. >>1168546

5 апр, 19:17 538 1168583

>>1168579
s.erase(std::remove_if(begin(s), end(s), std::isdigit), end(s));

5 апр, 19:23 539 1168591

>>1168579
isdigit возвращает bool, попробуй сравнивать напрямую с true/false.

5 апр, 19:47 540 1168608

>>1168574
Чаю тебе! Все работает.
Послушай, как ты до этого додумался? В смысле, как правильно инклудить и объявлять, чтобы в итоге и переопределение класса не вызвало ошибки, мол метод отсутствует, и инклуды по-человечески сработали?

Ответы68637

5 апр, 20:07 541 1168617

>>1168574
Это он знатно обосрался.

5 апр, 20:36 542 1168633

>>1167710
Просто эмить сигнал из своего класса, чтобы твой объект удалялся тем же тем же объектом, который его и создавал. Тебе ж это дерьмо отлаживать, а как это делать, если он у тебя есть сущность, которая висит где-то в астрале?

Ответы68653

5 апр, 20:40 543 1168637

>>1168608
>Послушай, как ты до этого додумался?
Нужен указатель на класс — делаешь forward declaration.
Нужно определение класса — инклудишь хедер с определением.

В первом случае можно тоже инклудить хедер в хедер, я не сторонник пуризма в стиле "в хедерах можно только форвард-объявления, если не нужно определение класса", но в твоём случае это не работало из-за циклических инклудов.

Ответы68654

5 апр, 21:01 544 1168653

>>1168633
Проблема в том, что я хочу, чтобы объект не удалялся, пока не выполнится лямбда. Т.е. сама лямбда должна стать родителем (точнее одним из родителей) объекта. Мне нужна возможность выполнять код вида

auto newTask = task->map<Foo>([] { ... });

при этом сам task больше нигде не используется и после выполнения функции `map` может быть удалён.

5 апр, 21:02 545 1168654

>>1168637
Мне когда нужен указатель на класс я делаю отдельный хедер с объявлением и using'ом указателя, а потом этот хедер подключаю там, где нужно. В этом хедере описаны все указатели на классы, которые используются в проекте.

Ответы68667

5 апр, 21:10 546 1168667

>>1168654
А если в итоге объявление класса в этом хедере перекрывает определение в хедере класса (не понимаю почему это происходит, но ошибки вида unresolved symbol <метод класса> откуда-то ведь берутся)?

Ответы68669

5 апр, 21:13 547 1168669

>>1168667
Ну такого обычно не бывает. Если нормально спроектировать задачу.

6 апр, 00:17 548 1168845

>>1168564
nZKpomadANUSagzAnPUNCTUMr'"0u

7 апр, 16:36 549 1169677

Есть функция, вызываемая в конструкторе класса, которая выделяет память вложенным new и присваивает результат полю класса - char@@.
Если ее сигнатура выглядит так:
void foo(char@@ arr, int size...
то в теле функции все работает как надо, а по выходу оказывается что соответствующее поле класса не изменилось. Я знаю что в плюсах параметры могут передаваться по ссылке, по значению, блаблабла, но всё же нихуя не понимаю что произошло. Исправил char@@ на char@@& - все работает нормально, исправил char@@ на char@@@ и добавил пару жутко выглядящих разыменований в теле функции - тоже всё работает нормально, но как это по-человечески сделать?

7 апр, 17:45 550 1169698

Есть классы Base и Derived, причем:
class Base;
#include "Base.hpp"
class Derived : public Base { ... }
При попытке собрать в студии 15 ошибка "Base class undefined".

7 апр, 18:11 551 1169706

Ладно, сейчас перекачу и задам по новой свои вопросы.

7 апр, 18:14 552 1169709

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

16 апр, 12:34 553 1174849

>>1162319
Не слушай скриптоблядков с их Node.js и электронами на десктопе, это моветон когда ебаный гуй жрет пол гига памяти.
Лучшее что придумали из GUI на шиндошс - WPF, плюс между C++ и C# оче легкий интероп. На прыщях гуев нет, только Qt и динамическая скриптодрисня вышеупомянутая.
Но не советую шквариться об нее.

18 апр, 08:04 554 1175898

>>1165181
написал на буржуйском
"open notepad c++"

Обновить тред
Двач.hk прислал битые данные.
Вы видите копию треда, сохраненную 27 мая 2018 года.
Можете попробовать обновить страницу, чтобы увидеть актуальную версию.

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

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

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

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