Двач.hk не отвечает.
Вы видите копию треда, сохраненную 29 ноября 2020 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
1578850802016.png7 Кб, 320x200
C++ тред #113 /cpp/ 1719888 В конец треда | Веб
Вместо шапки:
https://github.com/sosachbot/cppthreadhat/wiki

Ответы на вопросы:
https://en.cppreference.com/w/
https://www.cplusplus.com/reference/

Прошлый тред: >>1708681 (OP)
2 1719890
Заходит как то крестоеб в библиотеку, спрашивает почему ничего не видно, а библиотекарша ему говорит: "Работа с графикой не предусмотрена."
3 1719891
бля, забыл заскелить
1586968965148.png17 Кб, 1280x800
4 1719892
5 1719896
Я полный нуб, если что
Перекот вопроса
Дано: две проги, которые делают один и тот же Х. Первая сделана по принципу: main.cpp вызывает функцию 1, та что-то делает, вызывает функцию 2, 2 делает что-то и т.п. Вторая сделана по принципу: есть класс, в котором функции 1 и 2, main.cpp вызывает функцию из класса и далее по списку. Т.е. единственное отличие, что во второй проге я запилил класс, чтоб не передавать миллион переменных из функции в функцию. Вторая прога работает на 10-15% медленней. Это нормально? Или я испортил?
6 1719897
>>19890
В сеть из библиотеки тоже нельзя, придётся идти в другую библиотеку.
7 1719914
>>19896
А если класс полностью статическим сделать?
8 1719919
>>19914
Это как?
9 1719923
>>19919
Все методы и члены - статические.
10 1719925
>>19896
Оптимизации небось не врубил. Без -О2 можно соснуть в самых неожиданных местах.
11 1719929
>>19925
"Полный нуб" под спойлером вам вообще ничего не говорит? "Полный" = считайте, что я умею вызывать функцию с хэллоу ворлд и сделал класс с хэллоу ворлд и больше нихуя не умею.
12 1719934
>>19929
А как скорость замерял?
13 1719939
>>19934
Примерно так:
unsigned int start_time = clock(); // начальное время
// здесь должен быть фрагмент кода, время выполнения которого нужно измерить
unsigned int end_time = clock(); // конечное время
unsigned int search_time = end_time - start_time; // искомое время
14 1719954
>>19939
Ясно.
Говоря об оптимизациях, если компилируешь через g++, то добавь флаг -O2. Если не через него - хз, гугл в помощь.
Может, просадка из-за времени, уходящего на создание объекта класса. Попробуй замерить уже после создания.

А вообще - забей.
15 1719956
>>19954

>Может, просадка из-за времени, уходящего на создание объекта класса


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

Ну я так понимаю, так быть в целом и вообще не должно?
16 1720043
Это снова я!
Как заебал c++!
Хочу, чтобы функция инстин... инстини... function gets instantiated с const. Знаю, почему вызывается без const - ранк ниже из-за квалификатора const.

https://onlinegdb.com/Sym527l68

сниппет:

#include <iostream>
#include <utility>

class A {
};

template<class... Params>
void foo(Params&&... params)
{
std::cout << "Foo(Params&... params)\n";
}

template<typename T, class... Params>
void foo(const T& t, Params&&... params)
{
std::cout << "foo(const T& t, Params&&... params)\n";
}

int main()
{
A a;
foo(a, "test");
return 0;
}
16 1720043
Это снова я!
Как заебал c++!
Хочу, чтобы функция инстин... инстини... function gets instantiated с const. Знаю, почему вызывается без const - ранк ниже из-за квалификатора const.

https://onlinegdb.com/Sym527l68

сниппет:

#include <iostream>
#include <utility>

class A {
};

template<class... Params>
void foo(Params&&... params)
{
std::cout << "Foo(Params&... params)\n";
}

template<typename T, class... Params>
void foo(const T& t, Params&&... params)
{
std::cout << "foo(const T& t, Params&&... params)\n";
}

int main()
{
A a;
foo(a, "test");
return 0;
}
17 1720075
А кто-то попал в ловушку плюсов, когда ему сказали что все остальные языки — медленное, нетрушное абстрактное говно и только на швитых плюсах можно пройти путь от макаки до человека, тот начал учить плюсы, а теперь плюется с них но ничего другого не знает и не умеет.
18 1720083
>>19890
vcpkg install sfml
19 1720086
>>20075
Мне тоже так говорили, но я вовремя понял, что не способен выучить плюсы настолько хорошо, чтобы найти на них нормальную работу, и съебался. Но я до сих пор согласен, что

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

20 1720098
Помогите с шаблонами.

A/B - типы, a/b - экземпляры.
Код std::tuple<A,B> test(a,b) компилируется.
Я написал свой shablon<A,B> test(a,b) и он тоже компилируется.
Но std::tuple test(a,b) компилируется, а shablon test(a,b) не хочет, мол "no viable constructor or deduction guide for deduction of template arguments of".
Что мне нужно сделать, чтобы можно было не указывать тип шаблона явно и он сам выводился из списка?
21 1720100
>>20098
Всё, разобрался. Нужно было написать этот синтаксис через: template<typename... a> shablon(a...) -> shablon<a...>;
Интересно, по какой причине оно не могло сделать это самостоятельно?
22 1720144
>>19896
Код выложить не можешь?
Такое возможно, зависит от оптимизации и числа параметров.
23 1720215
Я ньюфаг, во время изучения появился вопросик при простом объявлении указателянапример:int *ptr; , на что он указывает?на случайное место в памяти?
24 1720221
>>20215
этот вопросик тысячу раз обкашлян уже.
image.png1,2 Мб, 720x1280
25 1720247
>>20100
По причине конченный долбоёб.
26 1720315
Почему следующий код крутится бесконечным циклом, а если раскомментить работает нормально?

#include <iostream>
#include <string>
using namespace std;

int main()
{
string input /= "jejshehehdhdhbdbdvddbbdvdv"/;
auto inIter = input.begin();

input = "jejshehehdhdhbdbdvddbbdvdv";
while (inIter != input.end())
{
inIter++;
}
}
1591957523431.png81 Кб, 1080x862
27 1720316
>>20315
Ёбаная макака
28 1720322
>>20247
В голос. Удачный пик.
29 1720325
>>20315
Потому что у тебя begin указывает непонятно на что, когда код закоменчен.
30 1720335
>>20043

БАМП!

подскажите, пожалуйста!
31 1720349
>>20315
У тебя итератор инвалидировался.
32 1720371
>>20325
>>20349
Понял
33 1720399
>>19896
Мне тоже (очень) интересно посмотреть код.
Если у тебя класс без виртуальных методов - то должно работать не медленнее кода без класса. А если ты передавал по 10 переменных во все функции цепочкой - то возможно чтение полей класса находящихся в одних и тех же местах было бы даже быстрее, чем громадное разворачивание стека, которое хреново кешируется - если я хоть что-то в этом смыслю.
34 1720463
>>20427 (Del)
Красава, я тож знаю, но все же думаю есть места, где неплохо было бы подучиться. Я уже прочитал все книги из шапки за пару месяцев и совершенно не понимаю как местные шизики могут говорить, что выучить с++ за 21 нельзя. Понятно, что они виляют задом и начинают задвигать про опыт, умение и т. п. - что все это нельзя овладеть в такие сроки, но по сути, они занимаются подменой понятий. Реально дела обстоят так, что с++ за 21 день можно пройти вдоль и поперёк, как я, собственно, и сделал.
1591967606957.jpg56 Кб, 1080x646
35 1720471
>>20463
Даю 5 минут на вопрос
36 1720475
>>20471
За 5 минут я мог бы это вручную переписать и закомпилить, так что хуйня твой тест
37 1720485
>>20471
Никакого аутпута не будет, ведь его нет
38 1720493
Вот думаешь, почему языки все так любят изучать языки и фреймворки, а алгоритмы не особо? Может быть все дело в том, что языки, в отличие от матчасти, обладают своей выраженной "идеалогией", ответвляются от других себе подобных, создавая свою независимую фракцию с четко выреженными границами. Это позволяет людям отождествлять себя частью некого сообщества и пощряет "командный инстинкт", благодаря которому человек может позволить себе тратить больше своих ресурсов, изучая язык или фреймворк, что трактуется как работа во благо сообщества.

С другой стороны алгоритмы и математика. Обе науки представляют глобальный фундамент, ветвление в которых возможно только в высших своих проявлениях. Не так ли?
39 1720516
>>20493
Потому что изучать алгоритмы бессмысленно. Все уже написано, бери и используй.
40 1720519
>>20493
Изучил алгоритм @ написал прогу на рандомном языке @ получил 100500 специфичных ошибок языка @ сап двач, чому оно падаит?
41 1720538
>>20427 (Del)
Я вот только недавно узнал, что можно делать вот так:
class A
{
int f() &;
int f() &&;
}
42 1720544
>>20538
Лох, я это давно знал
43 1720547
>>20538
Сказал бы что это что ли. Оно же не гуглится.
44 1720556
>>20538
Это что-то типа
int hui {1};
только для процедур?
45 1720562
46 1720566
>>20562

>Врёшь же


nope. Я когда читал Мейерса заметки делал, вот гляди

- delete over private, because

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

- override применяется для указания перепределения виртуальной функции

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

Ф-я осщуествляет перекрытие если:
1) Совпадает имя
2) Совпадают параметры и их типы
3) Совместимое возвращаемое значение и спецификация исключения
4) Идентичный ссылочный квалификатор
5) Константность функции совпадает

* Ссылочные квалификаторы позволяют переопределять поведение функции в зависимости от категории
объекта (rvalue или lvalue). Используется, когда копирование излишне:

class A... vector<...> data;
vector<...>& getData() &
vector<...>&& getData() &&; // return move(data);

A a;

auto data = a.getData(); -> vector<...>& getData()
auto data = A().getData(); -> vector<..>&& getData()
46 1720566
>>20562

>Врёшь же


nope. Я когда читал Мейерса заметки делал, вот гляди

- delete over private, because

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

- override применяется для указания перепределения виртуальной функции

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

Ф-я осщуествляет перекрытие если:
1) Совпадает имя
2) Совпадают параметры и их типы
3) Совместимое возвращаемое значение и спецификация исключения
4) Идентичный ссылочный квалификатор
5) Константность функции совпадает

* Ссылочные квалификаторы позволяют переопределять поведение функции в зависимости от категории
объекта (rvalue или lvalue). Используется, когда копирование излишне:

class A... vector<...> data;
vector<...>& getData() &
vector<...>&& getData() &&; // return move(data);

A a;

auto data = a.getData(); -> vector<...>& getData()
auto data = A().getData(); -> vector<..>&& getData()
47 1720568
поэтому до сих пор помню
48 1720569
>>20566

> + с помощью private нельзя отключить инстанцирование шаблонов, потому


Не понял
49 1720571
это дерьмохотя зачем оно мне лол
50 1720572
>>20569
просто сейчас ты пишешь для конструктора "= delete" чтобы его "отключить", а раньше просто пихали его в private раздел, но там какие-то траблы с шаблонами могут быть тогда
51 1720599
>>20086
на си тoже мoжнo
15821045343120.jpg77 Кб, 806x720
52 1720615
Какой алгоритм слежения лучше всего подойдет для мобильных телефонов и компьютеров в риалтайме, по задачам должен просто следить за выбранным объектом, распознавать не нужно, юзаю OpenCV. Смотрел в сторону KCF, но может есть что-то побыстрее. Юзал пример с их сайта с этим алгоритмом и ужасно тормозило, у челов на ютубе с питоном в 10 раз быстрее было. Если у кого-то есть пример такого рабочего алгоритма, то тоже хотел бы посмотреть.
Джун-новичок
53 1720625
>>20615
На алиэкспересс вроде есть камеры с управления доступом на охраняемый объект через КПП
54 1720659
Почему у меня в С++ стринг работает без заголовка?
55 1720661
>>20599
Нельзя, там нет нормальной функциональщины и асинхронщины с сахаром. Ваше говно с void* нестабильное и нахуй никому не нужное
56 1720663
>>20100
deduction guides
57 1720664
>>20659
покажи
58 1720666
>>20086
нo тем не менее ты здесь
59 1720667
>>20100

>template<typename... a> shablon(a...) -> shablon<a...>


Вот как можно обозначить эту деятельность не иначе как пердоленье? Вы же самые настоящие пердольки! (даже хуже, ведь от линуксом хоть пользоваться можно)
60 1720669
У меня есть вопрос касательно git. Читаю книжку по плюсам, там гайд по настройке Eclipse, cmake, git.
Надо скачать репозиторий по адресу https://github.com/
TrainingByPackt/Advanced-CPlusPlus/tree/master/Lesson1/Exercise01/project, для этого дают команду - git clone https://github.com/TrainingByPackt/Advanced-CPlusPlus/tree/
master/Lesson1/Exercise01/project
Но при ее выполнении я получаю ошибку git clone https://github.com/TrainingByPackt/Advanced-CPlusPlus/tree/
master/Lesson1/Exercise01/project
Если я зайду на пару папок выше на той странице и выберу clone with SSH - g2x*itANUSgithWH*ubPUNCTUMcq4kom:TrainingByPackt/Advanced-CPlusPlus.git, то git clone работает, что-то скачивается без ошибок, но я не вижу куда оно сохраняется.
Что я делаю не так?
61 1720671
>>20667

>линуксом хоть пользоваться можно


нет
62 1720672
>>20669
Ошибка вот так выглядит
fatal: repository 'https://github.com/TrainingByPackt/Advanced-CPlusPlus/tree/master/Lesson1/Exercise01/project/' not found
63 1720676
>>20672
Качай архивом, или проверь папку c:/users/pidor/..., или учись пользоваться гитом, или иди нахуй.
8.jpg3 Кб, 170x111
64 1720677
>>20661

>говно с void*


Но я больше ничего не умею
65 1720678
>>20669
блять этo пердoля зачем ты этo делаешь. есть визуалOчка
66 1720684
>>20659
Возможно у тебя предкомпилированный заголовок и там уже нужные хедеры.
67 1720685
>>20684
так и есть
68 1720691
>>20659
Может быть такое, что его другой заголовок инклудит.
изображение.png17 Кб, 675x341
69 1720692
70 1720693
>>20666
Я в джава-треде в основном. Здесь поинтереснее просто.
71 1720695
Как добавить в map или multimap объект класса? У меня при такой попытке VS ошибками срёт.
72 1720697
73 1720700
>>20693
на кресты слoжнее пoпасть пoтoму чтo на них тупо вакансий меньше. на десктопные приложения спрос упал сильно с развитием веба. сейчас почти всё можно сделать через браузер + встроенные средства винды сильно улучшились. в нулевые помню набор из 10-15 программ дополнительных им которые допом. ставил на систему. а щас всё в винде или в браузере. видеконевертеры, редакторы видео, даже аналог фотошопа есть в онлайн версии.

Но тем не менее на с++ всё равно можно дохуя денег заработать если высрать что-то своё. он так больше для предпринимателей в погромировании
74 1720701
>>20697
А раньше надо было стринг инклюдить отдельно. Это давно так?
Ты тупой уебан, не я
75 1720703
>>20695
# include <map>

class Class { };

int main()
{
std::map<int, Class> map;
map[0] = Class();
return 0;
}
76 1720708
>>20701
От реализации зависит, не рассчитывай на это. Одним компилятором собирается, другой может послать.
77 1720710
>>20676
какая папка C, это же Убунту, тут такой нет
78 1720718
>>20700
Формошлёпства не хотелось бы, интересного там мало, перспектив тоже, учиться особо нечему. Если и заниматься десктопом, то это должно быть что-то масштабное, уровня хотя бы САПР или игор, вебу пока с этим не тягаться. Ну или какой-нибудь жёсткий реалтайм, но я слабо представляю, что там.
79 1720720
>>20710
Фу люниксе даже папок нет!
80 1720723
>>20718
В этом и суть крестов, пилить какие-то свои проекты на которых ты лично можешь бабла поднят, а не в том чтобы работу найти за 300кк в наносек. В любом случае в С\С++ с душой, а всё остальное ни то. Нету там души, хотя когда я вкатывался то да, повёлся на форс про то что с++ язык крутых погромистов. А когда понял как там долго ебаться нужно было уже поздно, т.к. я всё таки начал уже, залез туда. В си хорошо освоился + у меня характер такой не бросать начатое так и сижу на срр
81 1720725
>>20723

>и + у меня характер жрать говно, несмотря ни на что

82 1720728
>>20723

> В любом случае в С\С++ с душой, а всё остальное ни то.


Ага, я как раз поэтому так и не забил окончательно.
83 1720732
>>20728
а в ассемблер не пытался вкатываться? что о нём думаешь? у меня мечта в асм вкатиться, но никак руки не доходят.

вообще мои предпочтения это asm, c\c++ на остальное я не смотрю.
84 1720734
Как в multimap вывести все значения с одинаковым ключом? Метод find же возвращает итератор с первым попавшимся удовлетворяющим результатом?
85 1720737
>>20732
Немного изучал, ничего сложного на нём не писал. Тупо не хватает усидчивости, чтобы делать в 10-20 команд то, что на высокоуровневых языках делается в одну строчку.
Возможно, ассемблер идеален для каких-нибудь контроллеров, но не более, но сейчас там даже чуть ли не JS можно.
86 1720739
>>20615

> Юзал пример с их сайта с этим алгоритмом и ужасно тормозило, у челов на ютубе с питоном в 10 раз быстрее было


Ты собирал-то хоть релизную версию? Это типичная ошибка новичка - сравнивать скорость алгоритмов в дебаге
87 1720743
>>20737
но знание asm увеличит твои познания в с\с++ без этого никак.
88 1720752
>>20743
С ним лучше поймёшь, как работает железо, и во что примерно превратится код после компиляции. В теории это должно помогать писать более оптимальный код, но обычно оптимизатор оказывается намного умнее.
89 1720764
>>20739
Нет... Только что проверил и действительно быстро работает, я знал что разница в скорости есть, но такого прироста не ожидал, спасибо.
90 1720870
>>20710
Ну извини, по уровню твоего вопроса сложилось впечатление, что ты в первый раз открыл терминал под виндой и скопипастил туда строчку из туториала.
91 1720875
>>20471
Объясните новодебилу что на пикче за хуйня, зачем нужны многоточек, как это работает? (то что тут шаблон я понял). В универе не учили такой хуйне, на практике не видел, но похоже на функция множественных аргументов? Поясните, пожалуйста.
93 1720913
>>20752
Оптимизатор-хуизатор твой не человек и не может усмотреть все моменты из твоего говнокода, а ты, зная досконально работу всех команд, которыми пользуешься, сделаешь намного лучше.
94 1720914
>>20913
Часто так делаешь?
95 1720915
>>20914
никoгда
96 1720923
>>20913
Это нужно быть сеньором-помидором, воспринимать плюсовый код как сахарочек для ассемблера и заодно сильно упираться в производительность.
Оптимизатор может и не человек, но в среднем он оптимизирует лучше, чем обычный кодер.
97 1720981
Как можно сделать нормальную табуляцию в консоли? А то всё в разброс выводится без выравнивания по столбцам.
98 1720982
>>20981
гугли setw и манипуляторы
99 1721002
>>20982
Забей на манипуляторы. Форматирование вывода в потоки это дрочба еще хуже самих потоков. Единственный адекватный способ изкоробки это (s)printf.
100 1721003
>>20982
А мне оно поможет выводить строки с выравниванием по столбцам, если нельзя предсказать длину текста в каждом столбце?
Например, может быть

нркапгнрапгопрго
аап

или

рппрапопаоапопр
прпарапрпарыаго

или

пр
попнегукекгнекгнекнкененкенегнгге
101 1721009
>>21003
Тебе в любом случае придется хуярить размер "столбца", да и ты можешь написать функцию определения этого размера и в зависимости от результата работать.
102 1721013
>>21009
А обязательно так изъёбываться всего лишь ради нормального вывода? Мы на крестах кодим или где?
103 1721017
>>21013
Я "изъёбываюсь" и заебись живется. Да и типа из изъеба тут лишние пара минут на создание функции... Не вижу особо трудностей. Каждому - свое.
104 1721019
>>21017
Нахуй твои функции, давай что-нибудь из STL.
105 1721023
>>20471
Ill-formed, ndr
106 1721025
>>21023

>ndr


Самые поганые слова в стандарте.
107 1721026
>>21019
std::formatirovat_tablitsu(t)
108 1721028
>>21023
Это что, какой-то аналог UB?
109 1721037
>>21028
Если компилятор диагностирует ошибку, то это то же самое что просто ill-formed.
Если не диагностирует, а оттранслирует программу, то её поведение не определено.
110 1721041
>>21037
То есть если UB выявлен на этапе компиляции?
111 1721042
>>21041
Если то, что программа ill-formed выявлено на этапе компиляции.
112 1721047
>>21042
Понятно. Спасибо.
113 1721057
>>21026
std::idi_nahuj;
114 1721060
>>21057
warning C4091: '': ignored on left of 'std::idi_nahuj' when no variable is declared
изображение.png2 Кб, 288x82
115 1721109
Насколько это корректное использование decltype? Я методом тыка подобрал и изначально там нули были в скобках.

Почему код из книги "Шаблоны C++ Справочник разработчика" не компилируется? Потому что она 2003 года.
Что новое почитать, в частности где про всякое разное с произвольным количеством параметров рассказано. А то в стандартной библиотеки немного перегруженные примеры, довольно сложно иногда понять что происходит в каком-то конкретном месте, мягко говоря.
116 1721112
>>21109
decltype(auto) и всё
117 1721113
>>21109
Ну или вообще auto, т.к. у тебя T и G "по значению"
118 1721114
>>21112>>21113
Мне не в этом конкретном случае - тут то всё ясно, я просто самый короткий пример привёл.
Например, мне нужно задать переменную пригодную для хранения произведения всех аргументов функции (может быть даже в структуре) - при этом прямо сходу первой строчкой задать произведение я не могу, потому что умножать нужно только на некоторые члены по сложным правилам.
119 1721119
>>21109

>не компилируется?


Нужная версия стандарт не включена.

А пикче хрень какая то нарисована. Инстанц шаблона функции один и тоже тип должен возвращать, вне . А кто сказал, что T и G это один и тот же тип? Не, они допустим один в другой может сконвертироваться (int в long например), но все равно это говнокод. Не делай так.
120 1721121
>>21119
>>21109

>Инстанц шаблона функции один и тоже тип должен возвращать, вне


зависимости от от того, что во время выполнения больше/меньше окажется.
121 1721124
>>21119
Так всё верно же, я могу засунуть туда int+double, а могу double+int, и в обоих случаях там будет double.
А мне и нужно получить минимальный тип, умещающий сумму всех аргументов шаблона, причём написать auto я не могу - потому что это поле структуры, которое заполняется когда-то после при вызове одного из методов. Написал что-то вроде decltype(T()+(G()+...)) name и вроде работает во всех комбинациях верно.
122 1721130
>>21109
Есть новая версия этой книги, читай ее, с тех пор все поменялось

https://www.amazon.com/C-Templates-Complete-Guide-2nd/dp/0321714121/ref=sr_1_2?dchild=1&keywords=c+++templates&qid=1592013057&sr=8-2
123 1721136
>>21060
std::idi_nahuj(1721060);
124 1721139
Как освободить память от объектов класса по ссылкам на них в ячейках вектора?
126 1721143
127 1721146
>>21124
Все равно фигня какая-то. Арифметика в компах не такая, как в абстрактной математике. Тем способом, которым ты хочешь решить задачку, ты либо округляешь число с плавающей запятой до целого (и то если влезет, что очень не факт) теряя точность, либо преобразуешь целочисленный тип к типу с плавающей запятой, опять же теряя точность, но теперь уже целочисленную. Повторяюсь, еще раз, во время выполнения функции, ее тип результата меняться не может. Можно динамическим полиморфизмом решить это (функция возвращает указатель на полиморфный объект), но все равно это херня с потенциальными подводными камнями.

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

P.S. В околоайтишных книгах использования типа с плавающей запятой для хранения денег приравнивается к экономическому преступления.
128 1721152
>>21146

>ты либо округляешь число с плавающей запятой до целого


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

>>21152 у тебя просто задач как бы учебная, и ты скорее играешь с этим всем, а не пишешь что-то для реальной жизни? Ну тогда норм, ок.
130 1721155
>>21146

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


И как тогда надо хранить?
131 1721156
>>21155
Хранить с фиксированной точкой. Например в одном инте целую часть, в другом инте - дробную.
132 1721167
>>21155

>И как тогда надо хранить?


ulong копеек неплохо подходит.
133 1721169
>>21155
Гугли длинную арифметику.
134 1721199
>>21155
В копейках либо в структуре данных, где отдельно копейки и рубли.
Помимо этого хранить как рациональное число, где отдельно числитель и знаменатель, и в числа с точкой переводить только на вывод.
135 1721203
Анон, объясни мне пожалуйста, как делают софт, использующий несколько языков. Первый вариант, как я понимаю - скомпилить (например, из хаскелля) объектный файл или либу, и как-то сделать хедер для c++.
А как делают со скриптовыми языками, например, питон или js? Вставлять интерпретатор в свой c++ проект? Как тот же питон передаст инфу в c++ часть? Потоки ввода-вывода? Сокеты?
image.png9 Кб, 345x305
136 1721206
>>21203
Например вот так. Это TCL. Создаешь объект "интерпретатор", и потом кормишь его кодом на TCL прямо посреди си.
Уверен, примерно так же можно сделать с питоном или жс.
137 1721212
>>21203
Ну посмотри на qt. Там реально ты пишешь условный бек на крестах + qt dsl на макросах и дополнительных ключевых словах, условный фронт на qml + js, и внутри обоих css для задания свойств виджетам. Часть этого jit компилируется на v8, часть как обычно.
138 1721219
>>21169
А нахуя длинную? Или какой-нибудь там госдолг сша уже не лезет в 64 бита?
139 1721223
>>21219
Проценты начислять например каждый день. Даже байка была (а может и не байка), как какой-то хитрый банковский погромист округлял всё до цента, а доли центов воровал себе, и довольно много так наворовал.
140 1721226
>>21223
Это не байка, это Гарри Гаррисон, серия про стальную крысу=)
Снимок.PNG9 Кб, 737x97
141 1721397
Как убрать ошибку D8027?

Отключено Security Check: Disable Security Check (/GS-) и Data Execution Prevention (DEP): No (/NXCOMPAT:N. Нужно без этого.

Сам код
https://pastebin.com/XRPjAfSu:

thx
142 1721399
>>21397
Ошибочка вышла с pastebin. Вот код:

https://pastebin.com/Qk515Hcg
143 1721402
Как начать мыслить в рамках ООП? Я по-прежнему придерживаюсь структурного подхода из си.
144 1721419
>>21402
Никак. Само получается. Я процедурками пишу когда пишу что-то маленькое, а вот если пишу крупную программу то там сам уже продумываю классы т.к. если этого не сделаю то я потом просто запутаюсь и охуею.
145 1721421
>>21402
Продолжай придерживаться структурного подхода из Си, только добавь к нему что у структур бывают еще методы. Это сейчас самое модное направление в плюсах, его называют "си с классами".
146 1721426
>>21397
А никак блядь. Тикет с этой ошибкой у них в баг трекере уже год точно висит
147 1721618
>>19888 (OP)
Как прикастовать метод класса к статическому методу? Пишет что не может кастовать (classname::★) к (★). Мне всё статическим делать что ли?
148 1721660
>>21618
Если бы ещё .все проблемы можно было решить кастом.

Надо попробовать кастонуть private к public.
149 1721666
Двачкованы, вопрос по #define
Есть один проект который тестируется другим проектом.
У них общий #include.
В настройках 2-го проекта определяем например __TEST__
И в их общем #include чего-нибудь переопределяем
#ifdef __TEST__
#define ....
#else
#define ....
#endif

Это работает заебись, когда каждый из проектов заранее знает кто он, например для экспорта/импорта DLL.

Но я хочу передать __TEST__ в первый проект чтобы он перекомпилировался вместе с тестом и чтобы у них #defines делали одно и тоже. Другими словами чтобы весь solution компилился или в тест моде или продакшн моде. Такое легко сделать через makefile, а как через проекты?
Можно конечно через Configuration это сделать, например если Configuration=Debug, то в обоих проектах определить __TEST__. хз. Или сделать отдельный Configuration для unit tests?

Кто-нибудь с g моком ебался? Какая уебищная хуета, но лучше кажется ничего нет. В С++ моки это мучение.
150 1721677
>>21660
Так а в чём отличие указателей на эти методы? Ему не похуй ли в классе оно или нет? Как мне, например, писать обработчики событий и передавать их либам, которые просто (★) принимают?
151 1721682
>>21666

> Можно конечно через Configuration это сделать, например если Configuration=Debug, то в обоих проектах определить __TEST__. хз. Или сделать отдельный Configuration для unit tests?


Выбирай
152 1721707
>>21682
Оба подхода кривые так как придется конфигурить два билда на билд сервере, дебаг и релиз. И в релизе снимать галку, чтобы тестовой проект не билдился. В идеале хочется собирать только релиз и его и тестировать, потому что иначе это технически другой код. Мало ли что там дефайны наделают. Косяки короче. Тестируем одно а релизим другое. Похоже хуйня эта затея, придется передумавать.
153 1721709
>>21707
Так а чего мейкфайл не напишешь?
154 1721710
>>21709
не по уставу. 2020-й на дворе. закидают ссаными тряпками. тем более проблемы не решает все равно, как я внезапно догадался.
155 1721713
>>21618
Наверное как-то так: https://ideone.com/vriHUY
Вроде работает. Там в комментариях описан ход мысли.
Но это говно ебаное, я просто методом тыка это разобрал - нет никакой гарантии что это заработает на другой версии компилятора, с другими настройками или в других случаях.
156 1721725
>>21677

>Как мне, например, писать обработчики событий и передавать их либам, которые просто (★) принимают?


Через лямбду с захватом?
Ну, или через функцию с глобальным переменной.
Просто если ты прикастуешь метод вышеописанным способом, то функция вызовет метод, но по указателю this там мусор будет, потому что либа ничего не знает про экземпляр класса, к которому этот метод имеет отношение.
157 1721737
Жаба тред утонул, поэтому не бейте слишком сильно. В жабе есть альтернатива шаблонам c++ или слову auto?
158 1721760
>>21725

> Через лямбду с захватом?


Лямбда тем более не кастуется к (★).

> Ну, или через функцию с глобальным переменной.


Так и сделал, но это какой-то говнокод.
159 1721788
Есть один шаредпойнтер
std::shared_ptr<MyType> g_MyType;

И есть инстанс этого MyType на стеке.
Что если так сделать:
DerivedMyType d;
g_MyType = std::shared_ptr<MyType>(&d,
[](DerivedMyType*) {});

просто шобы дтор не вызывался. И меньше печатать.
Метод короткий, сами мы не маленькие, пишем без багов, че. Какие подводные?
160 1721797
>>21760

>Лямбда тем более не кастуется.


В самом деле, мой косяк. Только пустая без захватов кастуется.

Странно, если в либе нет вомзожности передать вместе с твоей функцией число или другой идентификатор - чтобы можно было различать разные экземпляры твоего класса. В винде полно звёздочек в каллбеках, но помимо этого они ещё идентификатор возвращают, по которому можно не без некоторого дополнительного кода определить вызывающий экземпляр.
161 1721823
>>21737
В смысле утонул? Так и должно быть.

> альтернатива шаблонам


Generics

> auto


var (начиная с Java 9).
162 1721924
>>21760
Можешь привести пример, что ты хочешь кастовать? Так то статик функции похожи на pure function в моем представлении: понимают аргументы, вычисляют независимо ни от чего, возвращают значение.
А для инстанцированных объектов вроде используется std::bind, если нужно передать функцию объекта
мимо
163 1721935
>>21924

> что ты хочешь кастовать?


Обработчики исключений WinAPI. Туда лезет только (*). Везде в гугле ахуительные примеры прям в main, естественно там никаких проблем нет с доступом к глобальным переменным из обработчика. А вот как адекватно внутри класса с этим работать не очень понятно.
164 1721955
>>21710
Что-то я пока не вижу, чем твои мейки отличались бы от галочек в студии
165 1722006
>>21713
Почему нельзя сделать свободную функцию и из неё вызывать статический метод?
image.png116 Кб, 653x585
лалай 166 1722174
Двачеры помогите, никак не понимаю, как это сделать?
лалай 167 1722175
>>22174
Язык С++ если что
168 1722178
>>22174
Что непонятно? Ты не знаешь, что такое двусвязный список?
лалай 169 1722180
>>22178
Я вообще слабо знаю программирование, это задача с универа
image.png12 Кб, 432x137
170 1722182
171 1722211
>>22180
Ну возьми прочитай что такое двусвязный список, и сделай.
Тут нечего объяснять.
172 1722226
>>21788
Если область видимости указателя когда-нибудь будет шире области видимости твоего объекта, все равно насосёшься хуёв.
173 1722248
>>22174
Программирование это теория(5%)+практика(95%).
174 1722256
>>21788

> Какие подводные?


Деструктор d всё равно вызывается.
В чём проблема создавать shared_ptr я не пойму? Какую проблему ты решаешь?
175 1722263
>>22174
дай телегу
176 1722286
>>22256

>Какую проблему ты решаешь?


Он не решает проблему, а создает. Шаред птр, не владеющий собственным ресурсом - это ли не проблема?
изображение.png36 Кб, 795x773
177 1722333
Насколько хорошо нужно знать геометрию и вычмат чтобы попасть на вакансию типа пикрил?
178 1722339
>>22333
На уровне "построить матрицу вращения" и "найти угол между векторами".
179 1722363
>>22339
А зачем тогда опыт в 3-6 лет хотят? Это же знает любой первокурсник технической специальности.
sage 180 1722387
>>22363
Штобы штамповать код, делающий это.
Быстро. Без UB. С темплейтами и классами.
181 1722402
>>22387
А джуну как быть? Если интересует геометрия, но не хочется 3 года писать говнецо на крестах под винду только ради опыта.
182 1722414
Аноны, как снимать хук RawInput? Вот я зарегал через RegisterRawInputDevices устройства, кинул хук, потом делаю UnhookWindowsHookEx и RegisterRawInputDevices пустым, но хук так и висит у меня, а инпуты не возвращаются к приложению. Мне надо вручную как-то устанавливать обратно на приложение эту поеботу? Или как это вообще делается, чтоб после хука я мог отключить его?
183 1722750
>>22333
А меня могут взять на такое, если у меня нет опыта работы (вообще), но есть куча всевозможных физических симуляций на гитхабе с поверхностями, кватернионами и другими вычислительными методами (в том числе многопоточными или под видеокарту)?
Ну и ещё что-то про opengl, всякие ретрейстеры на октодеревьях, которые тоже про линейную алгебру.
184 1722752
>>22750
А, да, высшего образования у меня тоже нет.
185 1722761
>>22750
Есть только один способ узнать: взять и пойти на собес
186 1722780
>>21760
>>21618
Я же специально для вас даунов повесил в шапку ⚹⚹⚹⚹
188 1722863
>>22851
Для начала пусть сам Раст вырастет из пердольного поделия уровня Nim. На этом говне только сами разработчики умеют писать. Ну или линукс-пердоли, которым и собака Bash норм. Мало того что при написании системщины мгновенно утыкаешься в стену и вынужден ансейфить, так ещё и все врапперы сишных либ на ансейвах и работают хуже чем без Раста.
Это говно просто не имеет задач. Индусы/веб-макаки/дети пусть на го/шарпе пишут, а нормальным пацанам и кресты норм.
189 1722864
>>22851
Жили были два веселых друга Сан и Мазила. Но рядом с ними жил гадкий жирдяй Мелкомягок и похищал придуманные ими языки программирования
190 1722868
>>22864
Надеюсь они MSRust сделают со встроенной гуйней
191 1722893
>>22863
>>22864
У этой шняги набор библиотек есть хоть какой-то? Или хотя бы биндинги к крестовым либам?
192 1722913
>>22333

>умение разбираться в чужoм кoде.



яснo стандарта у этих уебанoв нет.
193 1722914
>>22333
Если я бы oбладал такими знаниями я бы в oднo хлебалo запилил бы свoю игoрь, швырнул бы её в стим и сидел на деньгах oт шкoлoты
194 1722917
>>22174
ты чё дурак? этo же элементарная хуета. тебе там даже вoн кусoк кoда дали как нужнo делать.

я бы такoе на oбычнoм struct в си бы сделал спoкoйнo
195 1722919
>>22914
Там бешеная конкуренция, тысячи игр выходят.
196 1722920
>>22919
главнoе не пoдалеть денег на рекламу. вoпрoс тoлькo в тoм чтo игра будет реальным гавнoм и вoзвраты oт игрoкoв или низкие прoдажи не oтoбьют даже денег пoтраченных на рекламу. да там пoдвoдных дoхуя, нo этo лучше чем идти на эту ебучую вакансию
197 1722922
>>22919
Разве игры конкурируют с друг другом? Игруны бездонное горло. Это же накоманы.
198 1722929
>>22922
Проблема с игрой в том что её очень долго и забёно писать. Потом ты её выкидаешь и люди её покупают. Но большинство разработчиков увы не выстреливают и их игры в лучше остаются на среднем уровне. То есть ты написал игру люди купили, основная волна прошла все преданные фанаты есть и денег и больше нет. Очень многие начинают тупо сосать бабло с фанатов игры выпуская длси, всякие новые ёба версии, разумеется всё это делается с максимальной ленью чтобы побыстрее бабла выскрести.

Ярки пример power revolution годная игра, аналагов ей нет. Но увы они продали 4 части в которых вообще толком нихуя не меняли даже баги не залатали. По итогу у этой игры очень часто можно встретить кучу негативных отзывов, т.к. фанаты игрушки очень сильно бугуртят с продажи одного и того же гавна.
199 1722938
>>22333
К теме твердотельной геометрии линал с апроксимацией только 20% составляет. Также странно, почему нет требований по знаний верстки латекса и знание матлабаматлаба. Мне кажется, работа эта новая, нет ещё наработок
200 1722989
>>22333
Зачем это нужно, если есть движки? Делай себе 3д модельки, если хочешь, можешь код на плюсах писать, не хочешь, пиши на блюпринтах.
201 1723153
>>19888 (OP)
В шапке качество книги страуструпа шакальное пиздец
202 1723155
>>22851
гугл транслейтом что ли переводили.
203 1723157
>>22256

>Деструктор d всё равно вызывается.


А чего ему вызываться, если reference count не изменится, объект не удаляется. Для этого и dtor у share_ptr переопределен на пустой. Сам объект d никуда не денется. А проблему я решаю с ебаным gmоck. Там такой компот, если че-нить тронишь начинаются какие-то side эффекты. Добился устойчивой работы, ну и ладно.
изображение.png21 Кб, 701x206
204 1723188
Да ну, а почему нету _mm256_dp_pd?
И при этом какой-то треш вроде _mm_crc32_u8 там есть - хотя этот crc32 вряд ли заслуживает аппаратной поддержки, не говоря уж про то, что он и так достаточно быстро работает.
205 1723194
>>23157
Вот конкретный охуительный косяк:
если в EXPECT_CALL засунуть shared_ptr, то сам метод вызовется и вернет правильный объект, но вещи типа Times(0) не работают.
Если вместо шары засунуть объект, то все работает как надо.
А с unique_ptr вообще пиздец еботня. Иногда лечится с помощью std::move иногда нет. Короче все, надо всем на руст переползать. Так жить нельзя.
206 1723221
>>23194
Ты же в курсе, что толкать везде умные указатели - это пиздец говнокод.
207 1723264
>>23157

> Сам объект d никуда не денется.


Ну раз так, то нахуя тебе вообще умные указатели?
208 1723309
ЗАВЕЗЛИ УМНЫЕ УКАЗАТЕЛИ
@
СЛИШКОМ ГЛУП ДЛЯ НИХ
209 1723310
>>23309
ЗАВЕЗЛИ УМНЫЕ УКАЗАТЕЛИ
@
ПРОСИРАЕШЬ РАСТУ В ПРОИЗВОДИТЕЛЬНОСТИ
@
ВОЗВРАЩАЕШЬСЯ К СЫРЫМ
@
ОШИБКИ ПАМЯТИ
@
РАСТ ГОВНО Я СКОЗАЛ
210 1723313
>>22989

Хотя бы потому что лицензионное соглашение движка тупо запрещает создавать на его основе любые инструменты для чего либо.
211 1723314
>>23313

То есть игорь - можно, CAD - нельзя.
image.png146 Кб, 799x472
212 1723321
>>23313
>>23314
Схуяли это нельзя, у них даже на сайте висят демонстрации как движок можно юзать не для игор.
213 1723332
>>23321

Не для игор - можно - визуализации заводов, разливов дизеля с ТЭЦ и прочую такую хуйню.

Пилить редакторы какой-либо хуйни кроме сисек эльфиек в ммошечках - нельзя.
214 1723354
Блять в книге Страуструпа 1400 страниц, чтo всё нужнo читать? Надеюсь, я пoсле этoгo стану титанoм пoгрoмирoвания
215 1723358
>>23354
Не станешь. Примерно по такой книжке в месяц надо читать, чтобы быть повыше среднего навозного уровня.
216 1723405
>>23354

Тебя еще александреску с его магией шаблонов ждет.

А потом тонных хтонических легаси говен уровня смешивания си с классами, крестов разных версий в одном проекте и шаблонной магии.
217 1723406
>>23354
Там вроде всякая элементарщина на сотни страниц размазана.
По крайне мере для начала книги, не знаю как для второй половины.
218 1723416
>>23406
Да я уже заметил читая предисловие что книга для ньюфань которые даже клавиатуры не нюхали. Но я уже после книжки Ритчи и Кернигана. Ладно буду эту книгу читать.
219 1723418
>>23405

Что бы ты понимал, вот характерный пример:

https://github.com/CRYTEK/CRYENGINE/tree/release/Code/CryEngine

Реальный большой проект на крестах ака ТОННЫ ГОВНА ВИЛКОЙ ЧИСТИ
220 1723422
>>23332
Это где ты такой запрет нашел?
221 1723425
>>23418
У него все папки начинаются со слова Cry неспроста.
222 1723438
>>23354
Ты если "с нуля", не Страуструпа читай. Возьми хоть какого-нибудь Столярова, чтобы от ассемблера попасть в Си, а потом уже в С++. Но написан Столяров этот ужасным языком, глаза вытекают от канцелярита, можно наверное оглавление посмотреть, и составить себе план на его основе, и пройти по другим книжкам.
223 1723458
Двач, подскажите как среди набора векторов взять вектор в котором больше всего элементов?
224 1723472
>>23458
Пройтись по этому набору, проверяя длину векторов, и сохраняя указатель (или индекс, если это массив) вектора максимальной длины. Потом после окончания цикла - по этому указателю/индексу будет нужный вектор.
225 1723474
>>23438
прoще изучать с высoкoгo урoвня на низкий. я начал с питoна, перешёл на си, щас на с++ вхoжу. асм пoсле с++ будет. если бы я будучи ньюфаней oткрыл бы книгу пo си, я бы oхуел.
226 1723485
>>23474
Ну ок, если ты так пошел - почему тогда ассемблер после С++?
Его же лишь немного надо задеть, сразу после Си тогда заебись - можно увидеть почти прямо "маппинг" сишного кода в ассемблер.

Отрубить оптимизацию, и еще у гцц есть ключ, с котором он не в машинный код компилирует, а в ассемблер - вообще красота будет и сразу всё понятно.
227 1723493
>>23458
std::max_element(d.begin(), d.end(), [](auto& c, auto& b){return c.size() > b.size();});
228 1723494
>>23485
ну пoтoму чтo там решил уж. спасибo анчoус, нo буду изучать уж как план пoстрoил книгу прoчитаю и пoйду на асм.
229 1723496
>>23438
Самый неудачный способ изучения. Как уже выше писалось начинать надо изучать с выского уровня переходя на более низкий. Никто из не начинал знакомство с компьютером с нолика и единички. Мы все начинали водить мышкой и кликать кнопки в окнах. А не сразу садились за ассемблер. Всё начинается с простого постепенно переходя к сложному. Ребёнок с миром не начинает знакомтсво с разбора его на атомы и молекулы.
230 1723501
>>23496
А мне кажется нормальный способ. Ассемблер же не будешь выдрачивать до совершенства со старта. Хелло ворлд там, квадратное уравнение какое-нибудь решить, массив отсортировать - и уже пошел в Си. Он (ассемблер) только и нужен, чтобы понять что за зверь такой - указатель, и что там примерно происходит когда вызываешь функцию, или когда делаешь арифметическую операцию.
231 1723511
>>23501

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



И нихуя не узнаешь.

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

Ассемблер реально нужен в двух случаях - написать бутстрап при создании операционной системы (специальные команды вроде сисколов и всякой инициализации системных регистров вроде перехода в защищенный режим на языке высокого уровня не сделать) и ... всё.

Ну может еще AVX ИНСТРУКЦИИ ПОКАЖИ ТКНИ вручную запилить, что бы сделать код непереносимым, но БЫСТРЫМ ОЛОЛО АЖ НА КОНСТАНТУ ПЕРЕД N - но и тут есть интринсики, которые делают это лучше.
232 1723513
>>23493

>d.begin(), d.end()


Мне вектора перед этим в вектор засовывать?
233 1723514
>>23511

Ну и да, тут выше выкладывали ссылку на гитхаб круйзиса.

>>23418

Производительность, гейдев, еба грофон, вот самое то пример.

Ради интереса посчитай дохуя ли там ассемблера и интринсиков в классах использовано, или же всё же люди не идиоты?
234 1723516
>>23514

Вот, я даже папку с самой писечкой за тебя нашел что бы тебе не искать:

https://github.com/CRYTEK/CRYENGINE/tree/6c4f4df4a7a092300d630f8f89d2ebda39183c36/Code/CryEngine/CryCommon/CryMath
image.png33 Кб, 1047x607
235 1723526
>>23511
Ты как-то резко перескочил с задачи обучения на задачи из реальной жизни.

>Потому что компилятор может заинлайнить, может завекторизировать, может наоборот развернуть цикл


Серьезно?

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

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

236 1723532
>>23526

>>Потому что компилятор может заинлайнить, может завекторизировать, может наоборот развернуть цикл


>Серьезно?



На твоей картинке до 23 строчки, если что, стандартный пролог в котором программа себе стек подготавливает. Сам твой код скомпилировался в строчки 23-27.
237 1723553
>>23418
Шо це за хуйня?
bool CheckNAN(const f32& f)
{
return (((unsigned)&(f)) & 0xff000000) != 0xff000000u && ((unsigned)&(f) != 0x7fc00000);
}
238 1723557
>>23553
Это откуда?
Screenshot20200615-13152301.jpg32 Кб, 1564x226
239 1723560
>>23557
AnimatedCharacter.cpp
Вот по нормальному.
image.png46 Кб, 1002x979
241 1723568
>>23532

>если что


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

Неужели отрицаешь учебную ценность написания какой-нибудь мелкой хрени на ассемблере, потом такой же на Си, и сравнения потом листингов твоих, и тех что выдает gcc с флагом -S ?
242 1723589
Сейчас на проекте встретил похожий код, не понимаю строчку

>qAudioDevice->write(samplebuffer.data(),towritedevice);


https://stackoverflow.com/questions/32049950/realtime-streaming-with-qaudiooutput-qt
Может кто объяснить на какой девайс я отдаю данные? Я думал может это на аудиовыход идёт, но не уверен.
243 1723644
Двач, как юникод выводить в консоль на windows 7?
244 1723645
>>23644
это заёбно. нужно windows.h подключать точно. я как-то раз делал уже.
245 1723647
>>23644

> Двач, как юникод выводить в консоль на windows 7?



https://docs.microsoft.com/en-us/windows/console/setconsolecp
246 1723648
>>23645
А в windows 10 что с выводом юникода? Заёбность пофиксили?
247 1723650
>>23647

65001
248 1723651
>>23648
>>23648
по-моему способ вывода юникода что в 7 что в 10 один и если ты в 7 это сделаешь это же будешт и в 10ке работать.
249 1723652
>>23648

Нет, выкидывание cmd.exe поломает всё нахуй поэтому в третьем десятилетии 21 века ты будешь страдать от ДОСОВСКОЙ КОДИРОВКИ
250 1723754
>>23553
>>23563
Не удивлюсь, если это UB. Стандарт ведь не требует, чтобы обязательно был IEEE-754.
251 1723785
>>23754
Это не UB, это platform specific или что-то в этом роде

Игровые движки все равно затачиваются под конкретную платформу, поэтому им норм.
252 1723807
>>23553
>>23754
Почему бы просто не сделать if (f != f) return true; ? При NaN же число не равно самому себе.
253 1723810
>>23807
Скорее всего их реализация быстрее. Команда сравнения чисел с плавающей точкой может требовать больше тактов.
254 1723815
>>23785

>Это не UB, это platform specific или что-то в этом роде


Это UB из-за нарушения strict aliasing rules предпочитаю именовать это во множественном числе.
255 1723823
>>23815
Strict aliasing может быть отключен в параметрах компилятора или локально прагмами

Плюс, ни один реальный компилятор не сломает этот код даже без настроек.
256 1723832
И всё равно у меня юникод не выводится
SetConsoleOutputCP(CP_UTF8);
std::cout << "♠" << std::endl;
257 1723833
>>23832
wcout
258 1723835
>>23833
нет
259 1723860
>>23832
И не должен
260 1723866
>>23860
Ну и нахуй иди.
261 1723893
>>23553
Это велосипед. Для флоата есть стандартные функции определения класса чисел.
262 1723897
>>23893
Которые кроссплатформенны из за чего сосут по производительности.
263 1723906
>>23897
Пруф?
264 1723909
>>23897
А в чём заключается разница между разными платформами?
Они могут использовать разный формат числа с fp? Или чё там, регистры бывают меньше чем 4 байта? Или выяснение нан или не-нан происходит в FPU, а туда засылать/вынимать медленно?

Поясни, пожалуйста.
265 1723927
>>23897

>Которые кроссплатформенны из за чего сосут по производительности.


Связи между посылом и выводом — нуль.
266 1723929
>>23560
В чем смысл передачи флоата по константной ссылке?
267 1723934
>>23929
Возможно, вся эта канитель с манипулированием битами и передачей по ссылке имеет под собой одну цель — не трогать регистры с плавающей точкой.

Правда, смысл не совсем ясен, число, которое в объекте на который передают ссылку наверняка побывало в таком регистре да и ещё, возможно, было пролито в память только для передачи по ссылке.
268 1723938
>>23934
Слушай, а может быть у них там есть самописная арифметика с плавающей точкой? Например показатель всегда одинаковый, а они только мантиссы туда-сюда херачат битовыми операциями? (и всё это каким-нибудь расширением типа SSE, чтобы сразу массивы аппаратно обрабатывались)

Хотя зачем тогда проверять NAN и как он может возникнуть - непонятно нихера.
269 1723950
>>23938
Doom так работал. Они использовали математику с фиксированой точкой в 32битных целых. В те времена выбора не было, операции с плавающей точкой были слишком медленными.

Сейчас в этом нет смысла.
270 1723953
>>23810
>>23897
Хуйня короче, стандартная реализация выдает похожий код и ни чуть не уступает этому костылю. http://quick-bench.com/-AgNbpub9rROFqw5wavQoipMCW0
271 1723956
>>23950

>Сейчас в этом нет смысла.


Постоянно сталкиваюсь на работе с данными в ARINC 429.
272 1723963
>>23953
Костыль быстрее на 0.06% по результатам нескольких тестов. Так что соси
273 1723968
>>23953
Компилятор делает такую же оптимизацию что и они.
274 1723973
>>23953
>>23968

> Copyright 2001-2019 Crytek GmbH / Crytek Group. All rights reserved.



Может это конкретный код 2001год, кто знает.
275 1723992
>>23953
Если в 1 случае не вызывать функцию, будет быстрее.
sage 276 1724027
[code]
movl $0x7fc00000,0xc(%rsp)
movb $0x1,0xb(%rsp)
cmpb $0x0,0xb(%rsp)
setne %al
[/code]
vs
[code]
ucomiss%xmm0, %xmm0
setp%al
[/code]
277 1724031
278 1724048
Сап, двач. Дай советов мудрых по шаблонам.

Предположим, есть template<int arr[1024]>
что-то там дальше...

Когда я проинстанцировал шаблон, где именно хранится данный массив-параметр шаблона? То есть, если для каких-нибудь мелких параметров типа int-ов они (обычно) тупо сразу вставляются в код как immediate-параметры, но что происходит с более сложными объектами типа того же массива?

Что изменится, если я сделаю так?
template<int (&arr)[1024]>
что-то там дальше...

Правильно ли я понимаю, что теперь, если я буду менять массив, с помощью которого шаблон инстанцировался, то эти изменения будут оказывать влияние и на шаблонную функцию/класс (т.к. там теперь ссылка)?

Что мне следует выбрать (arr, const arr, (&arr), const (&arr) или другое), если массив известен на этапе компиляции (и не меняется) и я хочу, чтобы мне компилятор максимально поанроллил какие-нибудь циклы, завязанные на данный массив-параметр шаблона? Ну, или какие другие оптимизации сделал.
279 1724051
>>24027
Тут кстати ассемблер по эльбрусу с подробной докой вывалили, видели?

Размах впечатляет:
http://ftp.altlinux.org/pub/people/mike/elbrus/docs/elbrus_prog/html/chapter10.html
280 1724053
>>24048
К первому вопросу ещё добавочка:

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

То есть, template<int arr[1024]>
эквивалентно
template<int* arr>

Это так?
281 1724056
>>24051
Что именно впечатляет?
282 1724058
>>24056
что там все есть и все продумано замудрено пиздец, это тебе не risc-v в котором просто нихуя нет.
1446292493476.png1,8 Мб, 941x1353
283 1724061
>>23153
Не угадалхотя не удивлюсь, если там обложки одинаковые
284 1724063
>>24056
Какие-то сложносоставные команды.
На интеле сначала например and, потом cmp
а тут ебала cmpand - два в одном.

>>24058
Это же как-то называется?
А вот сам нагуглил:

>VLIW (англ. very large instruction word — «очень длинная машинная команда») — архитектура процессоров с несколькими вычислительными устройствами. Характеризуется тем, что одна инструкция процессора содержит несколько операций, которые должны выполняться параллельно

285 1724067
>>24053
Не надо изучать плюсы методом тыка. Читай книжки, изучай как работают шаблон, вывод типов аргументов, специализации и прочее.
286 1724071
>>24067
Мне надо написать шаблон для элементов алгебры с заданной на этапе компиляции таблицей умножения и забыть об этом как о страшном сне. Поэтому мне выгодней по времени задать вопрос.
287 1724078
>>24063

> а тут ебала cmpand - два в одном.


> А вот сам нагуглил:


Лол нет (если я тебя правильно понял)

cmpand - это не команда, это одна операция на юните, команды выглядят вот так:

{
disp %ctpr3, $strlen; ipd 2
ldd,0,sm %dr14, [ _f32s,_lts0 $__eh_curr_region_tls@TLS_IE ], %dr35, mas=0x4
cmpedb,1,sm %dr3, 0x0, %pred0
ldd,2,sm %dr3, 0x0, %dr33
ldd,3,sm %dr14, [ _f32s,_lts2 $__curr_eh_stack_entry_tls@TLS_IE ], %dr36, mas=0x4
addd,4,sm 0x8, %dr7, %dr7
ldd,5 %dr1, %dr7, %dr34
}
288 1724095
>>24071
В таком случае найми фрилансера делать за тебя домашку, а здесь такое не приветствуется.
289 1724116
>>24095
Это не домашка, а попытка сделать бекенд производительнее... Да и вопрос я задал не в формате "я не понимаю, сделайте за меня", а по конкретной объективной вещи, касающейся языка. Если на каждый вопрос отвечать "смотри man/стандарт/справочник", то данная борда теряет смысл.
290 1724120
>>23648
Начиная со сборки 1903 можно в настройках включить юникод
291 1724131
>>24116


ЗАДАЁШЬ РЕАЛЬНО ИНТЕРЕСНЫЙ ВОПРОС
@
ТРЕД УМЕР, БОЛЬШЕ В НЕГО НИКТО НЕ ПИШЕТ
@
ТЯН ПРОСИТ ПОМОЧЬ С LABA2.CPP
@
ТРЕД МОМЕНТАЛЬНО УЛЕТАЕТ В БАМПЛИМИТ



> Array and function types may be written in a template declaration, but they are automatically replaced by pointer to object and pointer to function as appropriate.



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

Интересно, что там c++20 поменяет? Ведь можно будет передать literal class type - std::array например
292 1724134
>>24131
Спасибо, анонче.
293 1724150
>>24131
В чем проблема ебануть статик констэкспром std::array<T, N> тупо ссылаться на него?
И тип, и размер известны. Компилятор сможет на оптимизации хоть издрочиться.
294 1724161
>>24150
Это по сути то же самое, что сейчас есть. В c++20 можно будет "по значению" array передать
295 1724163
>>24161
на чём пишется кoмпилятoр с++? на с++?
296 1724165
>>24163
Хоть на JS. Компилятор тупо преобразует одни байтики в другие.
297 1724166
>>24165
Не, не. На чём щас пишется кoмплятoр С++20. На чём? АСМ? Серьёзнo скажи чтo там?
298 1724168
>>24166
на С
299 1724183
>>24163
Шланг, ГЦЦ и МСВЦ написаны на С++. На чем написана интелопараша - без понятия
300 1724184
>>24183
хотя не, ГЦЦ все еще надрачивает на Си
301 1724186
Почему нужно писать <iostream> а не <iostream.h> я видел в стандарте начала 90-х писали с .h а сейчас h убрали. Почему?
302 1724188
>>24186
В стандарте так написано. То, что ты видел - это говно мамонта
303 1724190
>>24184
А зачем в компиляторе си?
304 1724192
>>24190
Точнее кресты.
305 1724193
>>24188
ну так пoчему? пoчему h убрали?
306 1724197
>>24192
А почему нет?
308 1724201
>>24200
спасиб
309 1724203
>>24190
А зачем в компиляторе %language_name%?
310 1724244
А какие по вашему нормальные задания для жунов без опыта дают? Мне кажется мои таски какие-то больше мидловые чем жуновые.
311 1724258
>>24120
Буду благодарен, если вы объясните как.
312 1724373
>>24166

> Не, не. На чём щас пишется кoмплятoр С++20. На чём? АСМ? Серьёзнo скажи чтo там?


"кoмплятoр С++20" такой вещи сейчас нет, язык вначале парсится/разбирается фронтендом - это практически отдельная программа (clang например) которая может быть написана хоть на JS, а потом уже в бакенд передается AST представление кода программы, а бакенд уже непосредственно строит по нему программу в кодах машины. В основном бакенды компиляторов пишут на Си, есть там вставки на ассемблере в платформозависимой части кода кудаж без них, но вообще я слышал мнение от компиляторщиков что Си уже маловато, где то и регекспы бы неплохо было заюзать и со строками по проще работать и все вот это вот.
313 1724375
>>24244
Задания джунам дают такие, где нужно только написать/отладить код, ничего не изобретая. То есть не уровня "запили вот эту фичу" (а как именно придумай сам), а уровня "напиши вот такой-то класс/функцию" - с чётко описанным интерфейсом такого класса/функции, и с требованиями какое поведение от него требуется.
314 1724380
>>24375
Ой бля это же пиздец, а нельзя как то сразу мидлом стать с ноля такскать или как то показав что ты инициативный чел?
315 1724381
>>24380
Может быть и можно. Но скорее всего около года придется подрочиться джуном, просто чтобы поняли что ты дисциплинированный, не проебываешься. Ну и понять что контора вообще делает, какие особенности. Такой себе испытательный срок, но длящийся подольше.

По себе: вот я устроился в сентябре (это было много лет назад), зарплата была только на поддержание штанов. К следующему лету стали доверять принимать собственные решения, и сразу зарплату подняли вдвое. Тогда еще не было четких терминов джун/миддл, но это было примерно оно.
316 1724385
>>24381
Ясно, ну честно говоря деньги как то и похуй вначале, лишь бы взяли просто (в чем есть большие сомнения).
Ты как вообще вкатывался с чем?
317 1724467
>>24051
RIP Itanium
318 1724468
>>24078

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


Не вижу противоречия пока.
319 1724471
>>24467

И очень жаль.

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

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

https://en.wikipedia.org/wiki/Intel_iAPX_432

Потом когда 432 не взлетел а хуйню из под коня заказал межделмаш и завертелось интел подохуел и решил срочно сынку вальнуть:

https://en.wikipedia.org/wiki/Intel_i860

Попытка 2:

https://en.wikipedia.org/wiki/Intel_i960

Попытку 3 героически зарубила амуде, в очередной раз оживив труб сзлого говна, приделав к нему 64 бита.

Жалко.
320 1724472
>>24471
Нет, не жаль.
86 не в пример лучше получилась
321 1724473
>>24166
Clang на плюсах, GCC на си, MSVC хрен знает, скорее всего на плюсах

>>24471
Хватит

Писать

Вот так
322 1724474
>>24472

>86 не в пример лучше получилась



Любишь с помойки жрать?

Потому что x86 помойка как есть.
323 1724478
>>24474
Как скажешь
324 1724481
>>24474

Не помойка, а живая, развивающаяся архитектура, потому что успешная и работающая. Да, у какой нибудь некро-трупа вроде MIPS маны покрасивше и покороче. Но только лишь потому, что оно сдохло. У ARM сейчас точно такая же "помойка" как ты выразился, исключительно по причине того что он жив и развивается а не сдох как ваш MIPS и прочие Alpha.
image.png12 Кб, 462x233
325 1724499
Как это блять работает? Почему const вдруг решил встать после pointer, а не перед ним?
326 1724510
>>24499
Путаешь константный указатель и указатель на константные данные.
327 1724517
>>24510
Так если pointer = value_type★ логично же, что const pointer = const value_type★, а не value_type★ const. Но c++ думает иначе.
328 1724533
Двач, как правильно выводить элементы вектора с разделителем (без разделитяеля после последнего элемента)?
329 1724539
>>24533
Сделать условный оператор, который будет возвращать ", " если элемент не последний, и "\n" если последний

примерно:
std::cout << x << икс_последний ? "\n" : ", "
330 1724544
>>24533
У всех свои велосипеды типа boost::algorithm::join
331 1724546
>>24544
Да какой ему там джойн, явно лабу делает. Пусть свой велик прямо инлайн пишет.
(а вообще это называется interscalate)
332 1724548
>>24546

>intercalate


быстрофикс
333 1724550
>>24546
Я всегда intersperse называл
334 1724558
>>24544

>boost::algorithm::join


Почему в std этой хуйни нету?
В том же самом питоне есть, и там вывод строк с разделителем делается очень легко и просто.
335 1724559
>>24517
const -- это не какая-то хуйня, которая слева или справа присобачивается. Лично я предпочитаю писать
T const ★ const ptr = ...;
Тут получше видно, какой const что делает.
336 1724565
>>24558
Потому что работа со строками (если это не парсинг) в сиподобных языках - зло. Да и есть std::accumulate, которым в два счёта делается с помощью лямбды.
337 1724567
>>24533
template <class T>
void print (std::vector<T> &v)
{
____if (v.empty()) return;
____std::ostream_iterator<float> i(std::cout, ", ");
____std::cout << "[ ";
____std::copy(v.begin(), v.end(), i);
____std::cout << "\b\b ]\n";
}
=)
338 1724569
>>24567
ostream_iterator<T> конечно же
339 1724596
>>24558

>Почему в std этой хуйни нету?


Главный вопрос в плюсах. В питоне вон в стандартной либе есть гуй, три парсера xml, сокеты, две реализации процессов, http-сервер и дохуища остального.
340 1724632
>>24596
Потому что её и так охуеешь имплементировать на 100МГц-64Кб вёдра.
Алсо складывается впечатление, что не хотят вводить всякие модные штуки с неявными аллокациями - все эти join, slice и т.п. Вон strdup в С приняли только после 30 лет копротивления.
341 1724667
>>24468

> Не вижу противоречия пока.


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

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

Но понятно что эти как бы фичи это просто программная альтернатива тому что в таких процессорах как интел автоматически как то разрешается.
342 1724733
Двач, не соображу, подскажите приемлемый алгоритм, есть вектор векторов, как получить вектор с наибольшим количеством элементов? Или несколько векторов если вектор с максимальным количеством элементов не один.
343 1724737
>>24733
Тебе уже отвечали.
344 1724746
>>24737
Так это не я был. Скорее всего ты перепутал меня с моим братишкой, мы единоутробные.
345 1724777
Крестончики, посоветуйте минималистичную либу/фреймворк/движок для написания игорей на С++ под мобилки (iOS/Android) с поддержкой CMake.

Пока попробовал только cocos2d-x. Завелось с полпинка, в целом вроде ок под виндой, но вангую траблы при конпеляции на iOS/Android ещё не успел всё настроить. Может есть более приятный стул который я не смог нагуглировать?

SDL/SFML тоже пробовал, там всё очень сыро
346 1724805
>>24559

>★


СУКА БЛЯТЬ КАКАЯ ЖЕ ХУЙНЯ
⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹
⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹
⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹
⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹
⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹
⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹⚹
347 1724820
>>24805
Анон гуглит "юникод звезда" и копирует самое первое, то есть ★

⚹Тест⚹
test 348 1724843
int ☀a;
bool ⚹pBool;
char ⛤q;
const void ☆☆ const p = 1 ⚛ 2;
[code]void [/code]
<pre>int
</pre>

>char


[c]char
[/c]
349 1724857
>>24843
while((dest++ = src++));
350 1724862
>>24843
Потому что нужна не звезда (star), а asterisk.
351 1724865
>>24857
>>24843
УХ СУКА..............
352 1724868
Когда уже нормальные эмодзи завезут? Даже в сабже уже есть.
353 1724871
>>24857
Предлагаю это звезду взять за официальный символ указателя ИТТ. Ведь именно в указателе и вся дьявольская мощь и всё дьявольское коварство С++.
354 1724902
>>24805
void xtest(char xx)
355 1724921
>>24871

>коварство C✝✝


фикс
356 1724934
>>24921
Дрыц-тыц указатель и nullptr внутри
https://www.youtube.com/watch?v=ariwsOhQ9N8
357 1725068
>>24805
>>24820
Мне даже гуглить было лень, я скопировал с поста, на который отвечал.
358 1725082
>>25068
Оно в шапке лежит, посмотри внимательнее
359 1725102
>>25082
Не заметил. Не сильно эта твоя снежинка лучше. Вон, у этого анона >>24902 звёздочки посимпатичнее.
360 1725346
>>19888 (OP)
Начал читать книжку Страуструпа, он там о себе рассказывал написал что большую часть времени своей жизни он участвует в застольях с друзьяшками и поэтому вынужден заниматься спортом чтобы себя в форме держать лол.
361 1725353
>>25346
Я почитал так что Страуструп о себе пишет, даже его авторский сайтик он такой социоактивный человек довольно. Интересно когда он успел столько всего разобрать в айти если он социоблядок с двумя детьми и женой.
362 1725358
Норм, что я сортировку слиянием полностью с первого прочтения не осилил (основной принцип понял, но сам бы сразу не написал) или это маркер еблана?
363 1725374
>>25358
маркер еблана вот такие вот вопросы задавать, а не продолжать раскуривать то, что не понятно
364 1725375
>>25358
знал бы ты как я в своё время 2 дня пытался понять работу побитовых операций. пока не дошло что число в памяти представляется как 32-х значное двоичное число.
365 1725376
>>25374
Сейчас то я уже понял с алгоритмической точки зрения. Сейчас буду думать как это записать. Просто интересно как у других с этим обстоят дела
366 1725377
>>25375
а потом ещё указатели это целая эпоха была... хе-хе
367 1725378
>>25376
все учатся по разному. Главное - результат.
368 1725483
Читая ваш тред я научусь программировать?
369 1725530
>>25483
Читая наш тред, ты деграднёшь и никогда не сможешь писать нормальный код
370 1725544
>>25530

> ты никогда не сможешь писать код


Пофиксил.
371 1725638
>>24061
Я имел в виду из фака там по ссылке книгу на планшете нереально читать
372 1725639
>>23264
При чем тут мне. Есть либа, из нее наружу торчит extern пойнтер на глобалный класс. Ему логично быть умным. А моя задача его наебать и подсунуть ему как бы умный указатель, а на самом деле хитрый указатель, который притворяется умным. Потому что это объект на стеке. Это же охуенно, косяки обходить посредством наебок. Считаю, что если знаешь, что делаешь, то наебывать умные указатели это очень круто и черный пояс джедай лвл.
373 1725640
>>25544

> ты никогда не сможешь писать


Пофиксил
374 1725744
Стал изучать этот ваш цпп си плюс плюс.
Короче почитал про синтаксис, какие-то примеры в консоли сделал, решил перейти к реальной задаче, там мне надо было делать HTTP-запросы неблокирующие, стал естественно искать библиотеку, библиотека разумеется не одна, рандомно выбрал easyhttpcpp от Sony ибо бренд знакомый, у меня их mp3 плеер с 2013 года и ни одного косяка. Короче стал прикручивать и охуел просто, там в зависимостях еще какая-то огромная библиотека ебиблиотека POCO, она вроде и собирается без ошибок (есть для VS проект), но видимо как-то не до конца; через VCPKG таки поставил ее, но там везде все делается через cMake и я так понял, что тут без шансов: так и не смог нормально прописать ей пути, чтобы она нашла эту ебучую либу. Работа с зависимостями в языке никакая. Разумеется, можно бросить, попробовать взять какую-нибудь header-only либу, но нет, я уже понял, что ваши плюсы - говно.

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

Видимо, язык хорош для разработки производительных низкоуровневых приложений с минимумом зависимостей, где критично потребление памяти, он явно не для того, чтобы быстро что-то написать и забыть.
375 1725745
>>25744
Возьми qt, если хочешь не ебаться с мелочами, а выучить именно язык.
Идея не в хорошести именно qt, а в том, что в одной либе собрано всё что может понадобиться (в том числе и хттп), одну её поставил, и уже пишешь.
376 1725747
>>25639
Может быть лучше внимательно доки прочитать, почему так сделано? Хотя глобальный shared_ptr это пиздец.
377 1725748
>>25744

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


И чего вы все сразу лезете вот в эти HTTP/XML.
Закономерно хлебнул говна.
378 1725751
>>25744
То есть зависимости поставить через vcpkg ты догадался, а саму либу нет? А доки к vcpkg прочитал? vcpkg integrate install и не нужно нигде никаких путей указывать
379 1725770
>>25483
Нет, надо писать код самому. Но тут могут подсказать если возникли какие-то вопросы или ошибки.
14419937137580.jpg38 Кб, 562x437
380 1725801
>>25744

>почитал про синтаксис


>решил перейти к реальной задаче


>делать HTTP-запросы неблокирующие


>ваши плюсы - говно



Эталонный неосилятор. Впрочем, что еще ожидать от спермобляди.

>от Sony ибо бренд знакомый, у меня их mp3 плеер с 2013 года и ни одного косяка


Лоллировал.
381 1725816
>>25751

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


Увы, авторы либы не считают нужным поддерживать пакет vcpkg, о чем они прямо заявляют. Ведь в вашем C++ же нет работы с зависимостями, вместо этого много разрозненных менеджеров пакетов, которыми никто не пользуется.

>>25748

>И чего вы все сразу лезете вот в эти HTTP/XML.


Потому что 99.999999% современных приложений сводятся к посылке сетевых запросов и обработке ответов, либо наоборот.

>>25801
Почему, когда у других все работает, а в твоих плюсах мрак какой-то, виноват кто угодно, но не никакущий паршивый подход к работе с зависимостями в твоем "божественном" языке? Почему, например, в Go (уверен, по твоему же мнению это стремный язык для индусов и школьников с одной извилиной) как правило сторонние пакеты подключаются одной строкой? Да и практически везде уже так.
382 1725820
>>25816

>сторонние пакеты подключаются одной строкой?


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

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

Считаю это наоборот плюсом.
383 1725831
Объясните массивы, как они вообще? Самую базу.
384 1725871
>>25831
Переменная, которая хранит в себе несколько переменных одного типа. Вот тебе база.
385 1725884
>>25816

> Почему, например, в Go


нет аудио и гуя? В джаваскрипте вот есть низкоуровневое апи для работы с аудио, и 2D графика есть, 3D вот вот появится, про гуй просто молчу это самое базовое что там есть. Почему в твое Goвно этого всего не завезли, мм?
386 1725936
Тупой вопрос - если поток (скажем ifstream) выставил failbit при попытке считать символ в double, тот этот символ уже потерян?
387 1725971
>>25936
А если вот так сделать, не будет работать?
char ch = (char)&(double var)
388 1725972
>>25971
Ну короче там звёздочки после чар и перед скобкой.
389 1726045
>>25936
double d = 0;
char c = '0';
if (!(std::cin >> d)) {
std::cin.clear();
std::cin >> c;
}
std::cout << "d " << d << " c " << c << "\n";
c = '0'; d = 0;
std::ofstream ofile("f");
ofile << 'a';
ofile.close();
std::ifstream ifile("f");
if (!(ifile >> d)) {
ifile.clear();
ifile >> c;
}
std::cout << "d " << d << " c " << c << "\n";
ifile.close();
390 1726110
>>25816

>Почему, например, в Go (уверен, по твоему же мнению это стремный язык для индусов и школьников с одной извилиной) как правило сторонние пакеты подключаются одной строкой?



Это где подразумевается что гитхаб вечен и незыблем?
391 1726111
>>26110

То есть если МС решит закрыть или ребрендировать/переименовать гитхаб, у гоблядей с захардкожеными репами в исходах начнется конец гомирка в режиме чернобыльской АЭС?
392 1726127
стоит ли применять ооп или придерживаться процедурного стиля?
393 1726132
>>26111
Интересно, что в остальных языках с менеджерами пакетов достаточно поменять адрес центрального репозитория в конфиге, если подобное случится. И только в го у тысяч хомячков будет гореть жопа от безысходности, ведь ссылка на гитхаб хардкодится почти в каждом файле.
394 1726147
>>26127
По ситуации.
395 1726210
>>25871

>Переменная


Объект

> которая хранит в себе несколько переменных


объектов
396 1726239
>>26210
Кстати где у статического массива длина хранится?
397 1726253
>>26239
Нигде. На этапе компиляции sizeof об этом знает и усё
Screenshot2.png58 Кб, 650x638
398 1726351
Помогите со сборкой OpenCV для андроид, у меня получилось нормально собрать на винду, но на андроид какая-то хуйня и ошибки линковки. Собирал с помощью MinGW. И вот что получил на выходе, так и должно быть? Qt Creator не хочет линковать.

CONFIG += opencv
PATH = C:\Android\x64\mingw\lib
LIBS += $$PATH\libopencv_core430.dll.a
LIBS += $$PATH\libopencv_highgui430.dll.a
LIBS += $$PATH\libopencv_tracking430.dll.a

undefined reference to 'cv::VideoCapture::VideoCapture(int, int)'
399 1726385
Почему не работает a если vector<int>* a?
400 1726387
>>26385
там a скобка квадратная 0 скобка квадратная
401 1726402
>>26387
нихуя непонятно.
402 1726408
>>26402
Я разобрался. Я пытался передать указатель на вектор и при попытке обратится по индексу выходила ошибка. Я не знал что если написать vector<int>& a и vector<int>⛧ a это разные вещи
image.png81 Кб, 1366x768
403 1726409
Че не так?
404 1726410
>>26409
вернее вопрос не в этом. Все будет ок, ессли так и оставить?
405 1726412
>>26410
Кстати оцените.
https://pastebin.com/Edet7kVe
Стоит ли добавлять возможность написать произвольный компаратор, добавить шаблоны? Или и так сойдет в образовательных целях?
406 1726418
>>26410

> Все будет ок, ессли так и оставить?


Да, если у тебя меньше 2^32-1 элементов
407 1726419
>>26418
Вопрос из интереса. Сортировка из стандарта имеет ограничение на размер контейнера? Если нет, то как это сделали?
408 1726423
>>26419
Не думаю, что в какой-либо стандартный контейнер можно засунуть больше чем 2^64-1 элементов (максималка size_t для 64битной компиляции, для 32хбитной соотвн-но 2^32-1).
409 1726427
>>26423
Ну ок. Тогда поменяю int на long long. Спасибо
410 1726428
>>26427
uint64_t ты хотел сказать
411 1726431
>>26428
Я в некоторых местах писал unsigned int. Хотел поменять на unsigned long long. Он же 64 бита
412 1726435
>>26412
Используй size_type.
413 1726437
Да что за ебаная хуйня-то? Печатаю содержимое массива - все ок, данные именно такие, что и должны. Использую их - начинает пидорасить. В цикле модификации точно нигде не происходит.
Я может где-то при перегрузке оператора обосрался и он переписывает текущие значения?
414 1726439
>>26428
>>26435
Я даже не знаю разницы между этими двумя и unsigned long long
415 1726457
>>26437

>Я может где-то при перегрузке оператора обосрался


да
416 1726464
>>26457
Разобрался, спасибо. Иногда бывает полезно тупо высказаться и спросить, а когда сообщение уже отправил - вдруг понимаешь, в чем проблема.
417 1726467
>>19888 (OP)
Аноняне, возник вопрос. Могу ли я научиться С++ до олимпиады на достаточно серьезном уровне, если буду заниматься им упорно и читать много литературы. (Не секундная мотивация, занимался до этого немного другим и тут узнал что это наиболее скоростной язык из возможных, хоть и сложный).
Если что олимпиада в начале осени
418 1726469
>>26428
Если размер вектора size_type, то его и надо использовать.
Просто для декларативности.
64-битный тип посоёт на 32-битниках.
419 1726476
>>26469

> 64-битный тип посоёт на 32-битниках.


2020 год, какое х32 нахуй?
420 1726482
>>26431

> unsigned int


Говнокод. Ты либо пишешь uint32_t, если тебе нужно именно четыре байта, либо size_t, если это просто индекс из стандартной библиотеки.

Напоминаю, size_t - это архитектурная ошибка стандартной библиотеки
421 1726485
>>26467
Я вкатился в олимпиады на С в 13 лет за две недели без литературы (но с небольшим клубом таких же задротов). Правда потом еще два года не понимал тех кто писал на С++ и зачем он нужен, если все равно точно так же ебёшь байты и указатели.

Тащемта для вката литература таки нужна, но не по цпп, а по алгоритмам и структурам данных. А для решения задач достаточно умелого владения операторами if и while.
422 1726487
>>26482
Да кто эти ваши uint32_t? Я о них не читал
423 1726488
>>26467
Для олимпиады язык учится за день. На олимпиадах обычно дрочат алгоритмы, от языка максимум нужны функции и ввод-вывод.
424 1726489
>>26482

> Напоминаю, size_t - это архитектурная ошибка стандартной библиотеки


Почему ошибка? Из за отсутствия определенного в стандарте размера?
425 1726491
>>26464
Где была ошибка?
426 1726492
>>26476
A R M
R
M
427 1726496
>>19956
В целом нихуя не понятно без кода. Вообще, в таких замерах может быть много нюансов: кэширование, выравнивание, контекст свитчине твой случай и т.д.
428 1726499
>>26489

> Почему ошибка? Из за отсутствия определенного в стандарте размера?


Дело не совсем в размерах. Скорее в том, что тип беззнаковый. Только представь, сколько багов это породило.
>>26487

> Да кто эти ваши uint32_t? Я о них не читал


Ну так почитай
429 1726500
>>26499
А зачем этому типу знаковость? Размер отрицательным быть не может
430 1726507
>>26500

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


(size_t(0) - 1) — это не -1
431 1726508
Анонсы, подскажите какие-нибудь редко используемые фитчи вроде свертки, чтобы я казался дохуя крутым программистом.
432 1726509
>>26500
В прошлом треде скидывали ссылку и таймкоды вопросов на интервью с комитетом, посмотри
433 1726513
>>21823
>>21737
Де юре шаблоны плюсов != дженерикам джабы, но ты этой разницы не заметишь
434 1726516
>>26485
>>26488
Спасибо большое за советы
435 1726569
>>26513
Ну, зачастую они используются для одной цели, хоть и работают совершенно по-разному.
436 1726655
Я правильно понимаю, что если мне нужно использовать SSE, то тут только ассемблерные вставки, никакого интерфейса под плюсы нет?
438 1726669
>>20923
Двачую адеквата.
439 1726670
>>20471
Когда джуны или стажеры приходят к нам, они начинают выебываться подобной хуйней. Стоишь и думаешь "Ты че, дyрaк блять?"
440 1726671
>>20692
GCC юзать будешь, хуя пососешь.
441 1726696
>>26509
А точнее, в позапрошлом -> >>1707686 →
442 1726718
>>26499
Поделом тем дебилам, которые вычитают индексы и оффсеты.
443 1726720
>>26655
Да. Ебанная куча SIMD библиотек на все случаи жизни сделана не для долбоебов с двача.
444 1726723
>>26655
Как нету, когда есть, ты что там делать собрался?
Просто пишешь код, а компилятор его оптимизирует в том числе и для SSE.
445 1726764
>>26723

>Просто пишешь код, а компилятор его оптимизирует в том числе и для SSE.



Угу, только он как тот еж, пока не пнешь его всеми возможными прагмами и нон-портабл макросами про "тут SIMD пидор, По буквам - В Ы Р О В Н Е Н О, А Л И Ж Н 8, К О Н С Т"
446 1726890
>>26467
Дрочи не языки, а матчасть и понимание. Язык это инструмент, его не нужно выдрачивать ради него самого, а только в той мере, в которой он нужен тебе для решения задачи.

Когда я еще учился в шкалке, я думал, что выучу С++ и стану прогромистом, и по итогу, на 1 курсе универа я уже прочитал почти всю литературу в шапке про stl, метапрограммирование на шб и про др. ахуительные практики, сейчас благополучно всё забыл,думаю лучше бы qt изучил, хоть польза была бы какая-то
447 1726899
>>26764
This. Проще и быстрее интринсиками бахнуть, чем ждать что-то от компилятора.
448 1726901
>>26764
Выравненность добавили в коробку в семнадцатых плюсах вроде
449 1727101
Друзья, очень нужна ваша помощь. Вот тут с 58 строчки https://pastebin.com/JFMqC85Q нужно как-то передалать алгоритм поиска седловой точки матрицы на итераторах. Я сделал на итераторах ввод матрицы, но вот никак не пойму как передалть алгоритм. Там буквально 2 минуты если вы понимаете итераторы, очень прошу помочь. Заранее большое спасибо.
450 1727178

> читай у Мейерса "Эффективное использование С++" и "Наиболее эффективное использование С++". Потом "Эффективное использование STL"



> "effective modern c++" нужно читать только когда начнешь хорошо разбираться в C++11



Это то что мне нужно, если я не знаю разницы между void f(int★ x) и void f(int& x)?
451 1727185
Плюсаны, инсайдерская инфа: 2гис активно ищет разрабов на плюсах, вот одна из вакансий - https://novosibirsk.hh.ru/vacancy/36850803
Берут как на удаленочку, так и в офис в нск.
452 1727187
>>19923
А нахера тогда вообще класс? Можно все методы сделать функциями, опционально обернуть в namespace.
453 1727193
>>27178

> Это то что мне нужно, если я не знаю разницы между void f(int★ x) и void f(int& x)?


Достаточно знать, что первое не надо использовать в коде c++
454 1727196
>>27185
Эх, жаль не берут студентов без опыта...
455 1727198
>>27193
Я не знаю этого
456 1727206
>>27196
Хз, взяли в тостеры в этот отдел без опыта. Не считая полгода формошлепства на жсе. У них прям пиздец горит, новые проекты запускают, можешь попробовать отклик кинуть.
457 1727219
>>27178
Считай, что ссылка это указатель, который по умолчанию разыменован.
458 1727232
>>27219
А может сначала прочитать кригу где все это объяснят?
459 1727333
>>27232
Страуструп
460 1727417
>>27185
Охуеть, именно эту вакансию неделю назад зачем-то добавил в избранные, ещё подумал: "блин, клёво у них походу", но я уже и так работаю..

>инсайдерская


дашь телегу?
461 1727437
>>27333
А какую именно книгу?
462 1727469
>>27437
Их очень много. Я не могу выбрать
463 1727473
>>27469
Шизик
464 1727480
>>27473
Всмысле?
465 1727490
>>27417
@gungneer
466 1727508
Да какую книгу читать то?
467 1727546
Ребят, вы чего? Какую книгу читать?
468 1727549
>>27546
C++ для чайников, без шуток. Я даже помню там как раз об этом был пример. Джефф Кент автор.
469 1727556
>>27546
Липпмана. Хорошая подача материала, есть почти всё кроме многопоточности
470 1727563
>>27556
Ок. Спасибо. А что после него?
471 1727575
Здорова низкоуровневые. Извините за перепост, но мне кажется в ИТТ мне тоже могут подсказать ответ на этот пост >>1727564 →
1592506442260.jpg125 Кб, 1032x774
472 1727602
Что можете сказать по поводу пикрилов?
image.jpg134 Кб, 460x650
473 1727639
Лучше пикрил читайте.
474 1727642
>>27639

> технологии BDE, ADO, DDE, MIDAS


Одна технология релевантнее другой
475 1727646
>>27642
охуенно было
накидываешь мышкой на флрму и все робит))
476 1727648
>>27646
ты тоже самое в кутекреаторе можешь делать?
477 1727671
Почему при вызове

>std::cout << str << "\n";


строка отображает мусор в конце? При этом строке было выделено ровно столько байтов, сколько она содержит полезной информации. От куда лишнее дерьмо в конце?

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

char *str = new [3];

str[0] = 'a';
str[1] = 'b';
str[2] = 'c';

std::cout << str << "\n";

> abc1g!

478 1727674
>>27185
Эх, блядь, почему я пишу в банке на sql. Попробовал бы на эту вакансию вкатиться.
479 1727676
>>27671
Батюшки. А нуль-терминатор кто будет ставить?
480 1727677
>>27676
Ты вообще читал, что я писал? Перечитай.
481 1727680
>>27677
Подумой как работает оператор вывода сишной строки в поток. Можешь даже свой написать. Поймешь.
482 1727682
>>27680
Чел, хуйню пишешь. В си нет операторов ввода-вывода. Это первое. Второе, с такими советами можешь сразу идти на хуй.
483 1727684
Анончики, как писать свой аллокатор, сам пишу учусь на QT, но с написанием подобного не сталкивался. На степике не очень хорошо объяснено я тупой просто. Что почитать чтобы реализовать Buddy и SLAB аллокаторы.
484 1727686
>>27680
Компилятор автоматом доставит нуль в конец. Так что тут проблем в другом.
485 1727697
>>27682

> Чел, хуйню пишешь. В си нет операторов ввода-вывода. Это первое. Второе, с такими советами можешь сразу идти на хуй.


Я не тот анон, которому ты отвечал, но нахуй идёшь ты, т.к. в изначальном посте код на плюсах.
>>27686
Просто схуяли?
486 1727698
>>27671

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


Не содержит, функция печати печатает символы по очереди, пока не дойдёт до \0, она уже давно вышла за пределы строки и пошла куда-то дальше по памяти.
487 1727701
Тут есть аноны которые пишут какую-нибудь матешу на плюсах? На спеце в моей шараге очень понравилось ускорять код уравнения волнового процесса, метод Якоби 9-ти точечного шаблона и вот это вот всё.
Пол стал вакансии в моём ДС-3 есть вакансии для студентов связанные с подобной деятельностью. Стоит пытаться вкатится, если знания линала, ангема и вычей так себе?
488 1727712
>>27686

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


И по какому индексу компилятор должен, по твоим словам, вставить нуль?
489 1727731
>>27671
Выводится все, до нуль терминатора.
Т.к. у тебя нультерминатора нет - выводится мусор хранящийся в памяти за твоей выделенной, пока там не найдется нуль терминатор. Ехал UB через UB.
490 1727733
>>27682
>>27686
Кокие агрессивные дебилы
15901542783221.jpg27 Кб, 650x456
491 1727745
>>27697

> т.к. в изначальном посте код на плюсах


И? Нахуй ты это высрал вообще?

>Я не тот анон


>это не я говорю тебе это не я сру в штаны

492 1727791
>>27546
У меня первая была "borland c++ 5.0 за 21 день".

В общем, не стесняйся и первую книгу спокойно бери "для чайников", "за 21 день" и тому подобные. Вот такую осилишь, потом уже берись за Страуструпа.
493 1727924
>>27677
Блядь, какой же ты тупой.
Ты выделил 3 символа в строке - столько памяти тебе доступно для модифицирования.
cout(и printf тоже, к твоему сведению) выводит строку до первого '\0' символа, ничего не зная о ее размере.
Вызови для своей строки сишный же strlen и завали ебало.
494 1727930
>>27924
Чё ругаешься, типичная ошибка новичка.

>>27671
Тебе надо размер массива 4, а не 3, чтобы ноль влазил. Ну и в последний элемент поместить этот самый '\0' .
495 1727956
>>27924
Да иди ты на хуй, омежка озлобленная. Поссал тебе на голову, чмо.

>>27930
Да знаю я про это. Я не мог логически сопоставить тезис: выделение памяти для хранения. Ведь, если существует понятие такое, логически, оно подразумевает - выделять и хранить столько, сколько было указано компилятору. Но я уже понял, что это такая особенность работы оператора вывода.
496 1727961
>>27956
Нет, это ты никак не въедешь, а не оператор ввода-вывода работает не так.
Почитай, как хранится в памяти строка, что такое указатель и как происходит работа с массивами, а потом уже огрызайся.
497 1727973
>>27575
Бамп же, ну вы че, плюсаны. Что про байтоебство почитать?
498 1727981
>>27973
Эм, учебник по информатике?.. Это же байты, самая основная вещь в компьютере.
499 1728124
зачем нужны разные контейнеры вроде std::list?
500 1728131
>>28124
У них разная сложность для разных операций. Например, лист лучше юзать для добавления в начало или конец или последовательного прохода итератором, а если нужны частые обращения по произволтным индексам, но размер изменяется редко, лучше брать вектор.
изображение.png524 Кб, 566x816
501 1728159
Стоит ли читать пикрил?
502 1728160
>>28124
Чтобы не изобретать велосипед.
503 1728189
>>27973
Брукшир "информатика и ВТ"
504 1728203
>>28124
Иногда нужно, чтобы итераторы не инвалидировались. Потребовалось 1 раз за всю мою карьеру, но этот 1 раз был.
505 1728220
>>28159
Очень плохо пишет, канцелярит сплошной, глаза вытекают.
506 1728252
>>28220
Есть какие-нибудь проблемы именно по части содержания?
507 1728293
>>28159
Норм, но мало тем затрагивается. Лучше сразу с Липпмана & Лажойе(англ версии) начинай, чтобы несколько раз одно и тоже не перечитывать.
508 1728297
Запилить перекат, или можно только в полночь?
509 1728299
>>28297
Пили★☆☀⚛✱✬⛧ ✭ ✮ ✯ ✰ ✡⛥ ⋆ ✢ ✣ ✤ ✥ ❋ ✦ ✧ ✩ ✪ ✫ ★
510 1728301
>>28297
Только в полнолуние
511 1728319
512 1729061
Объясните мне на пальцах, что такое линковка, и почему при смене abi все пойдет по пизде
513 1729363
Хуле вы так часто катаетесь, вы че блять, дегенераты? Вы сами еще не запутались какой тред легитимный, какой нет?
514 1730177
>>29363
Да.
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 29 ноября 2020 года.

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

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