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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
2 1099275
Надеюсь на то, что concepts are adjectives таки протащат.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0791r0.pdf
3 1099277
>>099275
Хз, имхо надо уже делать третью надстройку, как в свое время кресты в си транслировались, пора что-то подобное на базе концептов пилить. Как есть выходит слишком сложная билеберда.
4 1099282
>>099277
Хуй с ним, гулять так гулять. Вангую, что в какой-то момент кто-нибудь форкнет и запилит поддержку нового диалекта в крупный компилятор, интересно будет.
5 1099285
А С++17 няшный же
6 1099287
>>099285
Не, че в нем няшного? Разве что folding.
7 1099292
Олсо, нахуй делать только string_view вместо какого-то более универсального решения для всех контейнеров? "Взгляд" же не только для строк нужен.
9 1099344
>>1098993
Зависит от длины строки, а так по дефолту на стеке.
Снимок.PNG12 Кб, 1008x151
10 1099351
Так ли это?
11 1099354
Image 1.png32 Кб, 759x473
12 1099388
Кто-то посоветовал, мол, сравни свою реализацию примитивных функций вроде "посчитать длину строки" с библиотечной реализацией.

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

И как такое вообще понять

_Check_return_
size_t __cdecl strlen(
_In_z_ char const* _Str
);
Что за _In_z_ ?
Причем это уже реализация, которая должна быть прямо в хедере, я нажал f12.
но я не вижу никакой реализации, только объявление
13 1099392
Интересует разработка под VR и разработка десктоп приложений, подскажите как с этим справляется c++, есть ли вакансии и много ли их, рассматриваю не только Россию но и возможность фрилансить или вообще завестри трактор.
Слышал что плюсы не нужны и юзают только на заводах
14 1099393
>>099392
завести*
15 1099410
>>099388
Боже какой- же говнод пиздец.
За такое стрелять мало.
16 1099415
>>099302
Да, но только span не используется в STL, в этом разница.
>>099344
Кому ты пиздишь? new создаёт объект на куче.
>>099388
Не должна она быть в хедере, она должна быть в библиотеке языка, которая скомпилирована и линкуется. Смотри исходники: libcrt у GCC, crt у Visual Studio.
strelen.PNG68 Кб, 596x1266
17 1099422
>>099388
стрлен там с байтоёбством еще тем
19 1099430
>>099410
Ты про левую часть картинки?
20 1099432
Дядьки, модули-то опробовали? Я хуй ево знает, вроде в любом языке же используются, а тут как-то нетак смотрится лол
21 1099433
>>099415

>crt у Visual Studio.


И как её открыть?Или посмотреть
22 1099434
>>099430
Да. Хотя для микроговнософа это еще нормально.
strlenasm.PNG71 Кб, 787x881
23 1099443
>>099433
Она вроде на асме под х86 где-то в недрах винды\студии\кита заебашена, поищи strlen.asm. Там чето похожее на глибц >>099422

Но есть и портабельная версия strlen.c, которая выглядит ровно как твоя
24 1099512
>>099388
твой strlen не использует SSE инструкции
25 1099535
>>099392
Компилируемые языки сейчас уже никому не нужны, а в будущем от них совсем откажутся.
Будущее за скриптовыми языками.
hqdefault.jpg14 Кб, 480x360
26 1099536
>>099535
Все так. Го в дотку.
27 1099538
>>099535
Ведь рантайм эррор это так весело )))
28 1099545
>>099538
В современных IDE есть анализаторы кода, которые тебе сразу же подсвечивают ошибку, если что-то не так. Зато не надо уйму сил, чтобы писать код, и ждать несколько часов, пока твой код скомпилируется или выдаст ошибку.
29 1099546
>>099545
Подсвети мне пуфон или lua, маня
30 1099548
>>099546
Зайди в pycharm и посмотри. Подсветка ошибок работает великолепно)
31 1099553
>>099548
Полтора вызова подсвечивает, а внутри метода с аргументом что будешь делать? А с kwargs?
32 1099554
>>099535
тогда какой язык можешь посоветовать для разработки десктоп приложении и что бы без проблем можно было найти РАБоту
33 1099558
>>099554

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


C#. Но сейчас уже от десктоп приложений отказались в пользу веба.

>что бы без проблем можно было найти РАБоту


Java (правда умирает), C#, js, php, 1C
34 1099567
>>099545
Очень смешно. Ну и как твой анализатор определит, что вместо числа передали строку?
35 1099578
Что означает подобная конструкция?
https://pastebin.com/uM958Qb1
В гугл не могу, потому что он воспринимает крышечки и скобки фигурные, как шаблон.
36 1099579
>>099578
Простите, немного обосрался из-за непривычного стиля
https://pastebin.com/iTgFnEg7
37 1099601
>>099579
Погугли возврат каретки и перевод строки.
38 1099606
>>099579
Если ты про ^M, то это просто кодировка слетела. Это перевод строки.
39 1099610
>>099606
>>099601
А, ну да, точно. Все, спасибо.
40 1099631
>>099578
фубля напомнил c++ cli
41 1099692
>>099535

>Компилируемые языки сейчас уже никому не нужны


>Будущее за скриптовыми языками.


Которые в 99% случаев тоже компилируются, в байт-код.
42 1099698
>>099425
Ещё раз, SSO хранит данные строки НЕ НА СТЕКЕ. SSO хранит данные строки в самом объекте строки, а объект строки может быть и на стеке, и в куче.
>>099433
google://microsoft+crt+sources , чуть ли не первая ссылка. Сложно?
>>099567
Ясен фиг, можно в коде спрятать тип так, что анализатор его не найдёт. Во множестве программ определить динамический тип с помощью анализа возможно.
15118713940540.jpg60 Кб, 480x360
43 1099705
>>099535

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


>Будущее за скриптовыми языками.

Безымянный.PNG86 Кб, 757x304
44 1099713
>>099705
Какой ещё жипег дкебич? PNG - не, не слышал?
15118713940540.jpg60 Кб, 480x360
45 1099714
>>099713

>Какой ещё жипег дкебич? PNG - не, не слышал?

ViPDfaudOoU.jpg155 Кб, 1116x675
46 1099719
Помогите решить, господа /pr/ограмисты
47 1099728
>>099535

>t.retard

48 1099740
>>099719
там по теореме сосницкого вроде решается, гугли
49 1099768
>>099535
JIT? Не, не слышал.
>>099719
динахуй
50 1099778
Как работает битовый сдвиг влево?

У меня есть Int. Он занимает 32 бита. Что будет в первой ситуации мне понятно, но вот что будет во второй? Где-то пишут, что увеличится, а где-то, что уменьшится.

Ситуация № 1:
0000000000000000000000000000011 -> 0000000000000000000000000001100

Ситуация № 2:
10110010110100000101111000000000 (32 бита) -> 0000000000000000000000000000001011001011010000010111100000000000 (64 бита, но тогда это уже не Int)
или
10110010110100000101111000000000 -> 11001011010000010111100000000000
51 1099779
>>099778
это был сдвиг на 2 бита, если что.
52 1099781
>>099778
лолштоблядь
Ты считаешь, что операция сдвига зависит от содержимого сдвигаемого операнда? Охуеть.
http://eel.is/c++draft/expr.shift#:operator,left_shift
53 1099790
>>099781
Я не думаю, что операция сдвига зависит от содержимого. Я спрашиваю, что будет с первыми битами, когда предел этого типа уже достигнут.

"E1 × 2E2 is representable in the corresponding unsigned type of the result type, then that value, converted to the result type, is the resulting value; otherwise, the behavior is undefined."

" the behavior is undefined" - это и наступит?
sage 54 1099799
Двач, сап. Устроился погромистом на полставки на C++ пока учусь на 3ем курсе. Работаю уже почти 2 месяца. Я не особо фанат C++, если что. Не надо на меня гнать "ОХ УЖЕ ЭТИ ВКАТЫВАЛЬЩИКИ В КРЕСТЫ" и тд. Мне так-то пофиг на язык, я больше в сторону C#/Java глядел. К нам в универ пришли и предлагали работу, окей? В нашем мухосранске это чуть ли не единственный вариант на полставки работать.

Так вот, чё почитать по крестам?
У нас на работе очень-очень много bind'оф, ламбд, каллбеков, фабрик...
В общем это всё бьёт по мозгам очень сильно. Я вроде постигаю, но медленно.

В общем, посоветуйте книг почтать умных по C++. Но чтоб не учили всяким ПЕРЕМЕННЫМ И МАССИВАМ. Или там ООП в стиле

class Car : public veichle
{
private:
Wheel wheels[4];
public:
void move() override;
}

Ну и тд. А чтоб поближе к реальности. Для интермидиатов.
55 1099808
Сажа приклеилась
56 1099846
>>099799

>Устроился погромистом на полставки на C++ пока учусь на 3ем курсе


У меня побежала слеза по щеке.
3 курс мехмата, приходится работать репетитором
57 1099847
>>099799
Скотт Майерс - Effective Modern C++
58 1099853
59 1099973
>>099142 (OP)
Чому пидоры из intellij не включили с++ в ультимейт сборку? Куда предъявить?
60 1099977
Поясните, плиз, за отличие C++ и Visual C++
62 1099987
>>099982
Ну рили
63 1100011
А поясни за com плез, анон
Я что-то смутно помню из далекого прошлого, оно сейчас нужно вообще для чего-то?
64 1100017
>>099987
Да, и в 1993-1997 гг. было очень много поросячьего визга, особенно в России. Они все на кладбище
65 1100018
>>100011
Google, vendor lock
66 1100030
>>099790
Прочитай тот параграф полностью, там говорится отдельно о знаковых и беззнаковых.
>>099977
Visual C++ - это древняя среда разработки, которая превратилась в Visual Studio. Отличия - сам понимаешь, хер с авоськой сравнил.
67 1100034
А если ты имеешь ввиду соответствие компилятора студии стандарту, то нагугли сам, там куча приколов.
68 1100041
>>100030
А среда для разработки Cpp. Ну Ок, превратилась, и как стала называться? Просто я смотрю курсы кое-где по Visual C++ до сих пор предлагают -- что это?
69 1100048
>>100041
Это малоизвестная и устаревшая Visual Studio
70 1100051
>>100048
Стоп, это вот оно https://www.visualstudio.com/ru/ устаревшее и малоизвестное? Ты не трал?

Олсо, поясните за различия C++ и C#, что в них общего, кроме буквы C в названии?
71 1100073
При создании объекта компилятор выделяет память для кода inline или не inline методов??
72 1100083
>>100051
Анон имел в виду что visual c++ была до VS. И она устарела.

> что общего


Схожий синтаксис. Алсо до-диез "потомок" крестов
73 1100104
>>099142 (OP)
>>1095677 (OP)
Анон, как сишкоблядине с двумя годами опыта быстро осилить С++? Книги Трупа страуса вроде бы довольно фундаментальны и слишком большие или нет?, т.е. читать их долго и неинтересно если уже знаешь многие вещи. Может быть просто втупую учить по cppreference?
74 1100107
>>100104
Недавно кто-то рекомендовал Accelerated C++ в таком же случае как твой. Не знаю правда как оно, не читал
75 1100113
>>100030
Меня интересует этот случай: "if E1 has a signed type and non-negative value". И все вытекает в "the behavior is undefined".

2147483647 << 1 уже не влезает в int и выдает -2. Но где-то пишут, что при сдвиге такого числа (2147483647) первый бит "отбросится", а к концу присоединится 0.

Я спрашиваю про конкретное поведение, котрое будет происходить после сдвига влево числа, которое уже предел своего типа. Я не верю, что вместо определенного поведения происходит "the behavior is undefined".
76 1100119
>>100104
Очевидный Стенли Липпман очевиден.
77 1100120
>>100104
Эккель свою книгу писал как раз для тех кто С знает, но хз годно ли. Да и устарело поди.
a387f39d72deba176cbd887c0a97e7c4.jpg35 Кб, 452x543
78 1100123
>>100113

>после сдвига влево числа, которое уже предел своего типа


Ассемблер это уже, нахер не надо это всё.
79 1100124
>>100120
Указатели надо чтобы современные были там собеседование иначе не пройдёт он.
80 1100132
>>100124
Еба, а в плюсах средства работы с указателями до сих пор не устаканились?
Вообще язык нужен для специфических целей - пилить хуйню для андроида которую я бы с радостью на Си сделал, но ASOP едва ли не на половину состоит из говна на C++ с непонятными закорючками. В будущем ебал заниматься С++, хоть и лычку в резюме напишу, лол.
81 1100141
>>100132

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


Устаканились в 2011 году, и более того: Липпман идёт от простого к сложному, в книге разобран и синтаксис языка, и то, где и как используются ссылки (а не только указатели), и там даже есть современные приёмы вроде безымянных функций (они же лямбды).
82 1100150
>>100141
Хорошо, почитаю. Спасибо
83 1100166
>>099781
Собственно, я смеюсь, а результат операции сдвига знакового числа на самом деле зависит от содержимого.
>>100113
Для беззнакового типа никакого undefined.

> Я не верю, что вместо определенного поведения происходит "the behavior is undefined".


Стандарт языка (единственный источник такой информации) для тебя не аргумент? Язык - это не определение инструкций процессора, которые будут использованы, это определение языка. Хочешь иметь гарантии - прочитай инстракшн мэньюал к своему ЦП и сделай ассемблерную вставку.
84 1100175
>>100166

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


А результат суммы — от содержимого слагаемых. Охуеть, да?
image.png358 Кб, 600x470
85 1100180
>>100113

>Я не верю, что вместо определенного поведения происходит "the behavior is undefined".

original.jpg57 Кб, 604x400
86 1100194
>>100123

>Ассемблер это уже, нахер не надо это всё.


>>100166

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



Я что-то пропустил, но разве C++ не СИСТЕМНЫЙ язык программирования?

Тащемто даже на C# можно все эти битовые операции делать спокойно с вполне себе определенным поведением.
87 1100207
Анон, помоги мне пожалуйста. Я что-то очень сильно не понимаю, настолько что даже не понимаю как правильно загуглить.
В процессе решения поставленной мною передо мной задачи я наткнулся на какую-то адскую фигню, которую начал упрощать, чтобы понять в чём я ошибаюсь и в конце-концов пришёл к 4 пикрилейтедам - коду который вызывает ошибку, если его модифицировать.
Стоит сделать активной строчку кода на втором пике (в С1.h) #include "QtGuiApplication3.h" как тут же при следующей отладке я получаю ошибку "С1: не определён базовый класс", которая вызывается из "С2.h"
Почему так происходит? Как мне тогда (если я захочу этого) передать указатель на QtGuiApplication3 в объект класса С1 или С2?
88 1100208
>>099351
ещё отличается дефолтное наследование
ну, если связываешь плюсы с какой-нибудь скрипто-парашей, то скорее всего, с классами у тебя ничего не получится
89 1100212
>>100207
подожи
а зачем тебе в C1.h хедер подключать, если ты указатель собрался пользовать? forward declaration вот это всё
5.png59 Кб, 1154x844
90 1100214
>>100212
Ну в общем случае для пикрилейтед.
91 1100215
>>100214
дык в C1.h расскоментируй же //class ...
а в С1.cpp заинклудь
92 1100216
>>100215
Большое спасибо! Интересно, из какого учебника в моей голове поселилась мысль о том, что все .h нужно подключать в .h?
93 1100217
>>100175
Иногда полезно предположить, что собеседник не идиот.
>>100194
Ага, и ассемблерных вставок и implementation-defined-поведения в сисярпе нет. Остальсь только рассказать о том, зачем тебе нужно сдвигать отрицательно знаковое число.
>>100207
Ты не то инклудишь, походу. Смотри доки.
http://doc.qt.io/qt-5/qmainwindow.html
94 1100219
Плюсач, как правильно организовать сетевую архитектуру на udp сокетах? У меня есть один сокет на прием данных, с фиксированным портом, один случайно генерирующийся, на отсылку информации, и один с фиксированным портом для броадкаст сообщений.
95 1100225
>>100217

>Остальсь только рассказать о том, зачем тебе нужно сдвигать отрицательно знаковое число.


Мне, незачем.
96 1100228
>>100083
Спасибо!
Не могу понять, то есть, это http://www.specialist.ru/course/sipp старая фигня?
97 1100230
>>099142 (OP)
Анон, как напечатать параметры ЗНАЧЕНИЯ шаблона?

https://ideone.com/6SRjch
98 1100243
>>100228
Там же написано, "одним из вариантов с++ является visual c++".
Так же называлась IDE для этого языка. Читай линк: https://ru.m.wikipedia.org/wiki/Microsoft_Visual_C++
IDE устарела, язык актуален. Курс, соответственно, тоже.
99 1100250
>>100217

>Иногда полезно предположить, что собеседник не идиот.


Прочитав, что результат операции сдвига вызывает смех, я так и не смог это сделать. Хотя очень старался. Честно.
100 1100253
>>100230
Если совсем по-быстрому фиксануть, то так https://ideone.com/BZFxxz
101 1100257
>>100253

>std::enable_if_t<(sizeof...(Rest) > 0)>



А что это за костыль?
102 1100264
>>100250

>Прочитав, что результат операции сдвига вызывает смех


На заборе прочитал? Русский язык, ду ю спик ит?
>>100228

>Одним из вариантов С++ является Visual С++ - продукт корпорации Microsoft, являющийся частью комплекта Microsoft Visual Studio.


Майкрософт никогда не называла свой диалект С++ визуалом. Была ли IDE под названием Visual C++ часть студии хоть когда-нибудь - нагугли сам, не было такого. Писал это какой-нибудь секретарь, который не знает нихуя.
>>100230
http://coliru.stacked-crooked.com/a/28da7966de495986
>>100253
Накатал порнятнку про то, что такое сделать нельзя, а тут ты. Пришлось стереть.
103 1100267
>>100264
https://msdn.microsoft.com/en-us/library/w4ddyt9h.aspx?f=255&MSPPError=-2147217396
In versions of Visual C++ and Microsoft C/C++ before Visual C++ 2005, time_t was a long int (32 bits) and hence could not be used for dates past 3:14:07 January 19, 2038, UTC. time_t is now equivalent to __time64_t by default, but defining _USE_32BIT_TIME_T changes time_t to __time32_t and forces many time functions to call versions that take the 32-bit time_t. For more information, see Standard Types and comments in the documentation for the individual time functions.
104 1100290
>>100264
>>100243
Спасибо. Что спросить у них, чтобы не проебаться?
105 1100294
>>100290
ток без шуток про хуи и и бочку
106 1100321
>>099142 (OP)
Пишу прогу использующую интовые пары координат. Можно ли запилить что-то типа
coords a;
a = {0,0};
107 1100334
>>100321
Можно.
108 1100355
>>100290
Можешь спросить "Какие программы я смогу писать, пройдя ваш курс" и "Будем ли мы изучать теорию языка".
Потому что умение что-то написать на C++ - это не умение найти проблему.
>>100321
Можно, только ногу себе не отстрели.
http://coliru.stacked-crooked.com/a/89bda233c9ae90b3
То есть, если есть недефолтный конструктор, то аггегатная инициализация (так это называется) не может быть использована, и список значений в фигурных скобках становится списком аргументов конструктора.
109 1100360
>>100219
Бамп. Мне кажется, что с таким построением системы я готовлюсь к выстрелу в ногу.
110 1100363
>>100257
Сам спросил, сам ответил: это костыль.
http://en.cppreference.com/w/cpp/types/enable_if
http://en.cppreference.com/w/cpp/language/sfinae
Язык допускает некоторые ошибки в шаблонах для того, чтобы увеличить сферу их применения. Сфера применения увеличилась настолько, что с помощью намеренного внесения этих ошибок можно влиять на код предсказуемым образом. Если в момент инстатциирования шаблона возникает ошибка, компилятор пропускает шаблон и переходит к следующему. Это называется SFINAE.

template< bool B, class T = void >
using enable_if_t = typename enable_if<B,T>::type;

template<bool B, class T = void>
struct enable_if {};

template<class T>
struct enable_if<true, T> { typedef T type; };

То есть, выражение enable_if_t<0> - заведомо ошибка, если оно использовано вне дедукции параметров шаблона. Далее: вместо нуля можешь подставить любое выражение этапа компиляции, и теперь ты получил ошибку, которая генерируется только при невыполнении условия, а когда условие выполнено, то параметр шаблона просто не используется.

Ну а дальше ты и сам поймёшь: вместо 0 в том куске кода подставлен размер списка параметров.

https://ideone.com/sTlxER - кроме того, из-за правил языка ты не можешь этот тип передать - если есть многоточие, то вест хвост параметров должен упихаться в него, или будет substitution failure.

Короче: в конце списка параметров пишешь тип-параметр с дефолтным значением, присваиваешь ему enable_if_t, в параметры к энаблифт пихаешь условие и делаешь другой шаблон, который должен быть использован, если это условие не выполнено - это один из вариантов использования.
111 1100364
>>100360
Система чего? Архитектура чего?
112 1100365
>>100364
Сколько сокетов нужно иметь в приложении для оптимальной работы, и какие должны быть у них роли? С одним сокетом приложение получает также и свои отправленные датаграммы, поэтому это не вариант.
113 1100368
>>100363
Для кого ты это капитанство накатал?
114 1100369
>>100365
Твоё предложение никакими недостатками не обладает, пока ты не описал задачу точнее. Не вижу никаких проблем, ты ещё и шагу не сделал.
>>100368
Для того, кто спрашивал.
1511175846455.jpg25 Кб, 300x300
115 1100371
>>100363

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



>Это называется INSANE.


I N S A N E
N
S
A
N
E


Ебнутый язык, поехавший.
116 1100379
>>100369

>Для того, кто спрашивал.


Ты сам и спрашивал.

Ты спутал /pr/ со своим бложиком.
117 1100390
>>100264

>Накатал порнятнку про то, что такое сделать нельзя, а тут ты. Пришлось стереть.


Вот видишь. Ещё одна причина не предполагать, что мой собеседник не идиот.
118 1100396
>>100379
Будто твой говнопост в этом коллективном бложике нужен, поэтому залезь под шконку, вахтер.
119 1100401
>>100371
Чем это отличается от выбора перегрузки функции? Никто же не говорит, что компилятор пытается скомпилировать foo(string) когда ей передают int, обламывается, после чего переходит к следующей перегрузке foo(int). Обычный паттерн матчинг
120 1100512
>>100401
Тем, что выбор перегрузки хотя бы не содержит стрёмного синтаксиса. В перегрузках свои приколы с ICS, но в шаблонах этот "выбор" сделан с помощью граматического элемента, который не для этого нуэен вообще-то.
121 1100527
Анон, есть маленький вопрос по QT.
Есть новая форма, в которую я передаю из основной формы данные через сигнал-слот.
Объект новой формы объявлен в .h основной формы
dataForm *mainData;
У меня всё работает, если я соединяю сигнал-слот уже после реального создания формы, т.е код выполняющийся по клику на кнопке

mainData = new dataForm();
QObject::connect(this, SIGNAL(sendData(std::vector <mydata>)), mainData, SLOT(receiveData(std::vector <mydata>)));

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

void MyTestApp::connectSlots() {
connect(ui.pushButton, SIGNAL(clicked()), SLOT(slotMessage()));
connect(ui.b_dataload, SIGNAL(clicked()), SLOT(loadinitseq()));
connect(ui.firstseed, SIGNAL(clicked()), SLOT(firstcharge()));
... etc
// QObject::connect(this, SIGNAL(sendData(std::vector <mydata>)), mainData, SLOT(receiveData(std::vector <mydata>)));
}

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

Моё желание вообще имеет смысл? Реализуемо ли оно? Если да, то куда копать?
122 1100528
>>100527
И сразу вдогонку.
Имеет ли смысл создавать отдельный класс и объект DataStore, в котором хранить большую часть данных для работы с ними? Или данные лучше хранить в основной форме?
123 1100539
>>100527

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


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

124 1100544
>>100539
Ну я просто подумал что проблема очевидна - объект объявлен, но ещё не существует.
Если интересует точный текст то -
"Вызвано исключение: нарушение доступа для чтения."
"receiver-> было nullptr."

Уточню. Меня не интересует почему не работает - это мне понятно. Меня интересует - можно ли каким либо образом соединить сигнал существующего объекта со слотом ещё не существующего объекта (если класс уже существует и известен)
125 1100555
>>100544
Тогда отвечаю.

>Моё желание вообще имеет смысл?


Нет, так как ты пытаешься отказаться от существования других объектов типа dataForm. Ты нарушаешь абстракцию.

>Реализуемо ли оно?


Да - сделай dataForm частью основной формы.
Ещё можешь в конструкторе dataForm соединять слоты/сигналы, а информацию о владельце брать из parent().
http://doc.qt.io/qt-5/qobject.html

Только если ты не к владельцу подсоединяешься, то ты какой-то пиздец делаешь, лапшу накручиваешь, и в таком случае тебе совершенно точно нужно эту твою сраную форму встроить, а не обосабливать.
126 1100564
>>099142 (OP)
Изучаю шаблонные шаблонные параметры. Как написать функцию, которая принимает произвольный контейнер и печатает его размер?

https://ideone.com/rhDv3Y
127 1100576
>>100564
Просто берешь и без задней мысли пишешь
https://ideone.com/hjTofk
128 1100581
>>100555
Спасибо! Ты - няша.
129 1100583
>>100576
не представляю, где бы мог пригодится template<template<> >
131 1100590
>>100589

>шаблонные шаблонные параметры

132 1100591
>>100590

>функцию, которая принимает произвольный контейнер и печатает его размер


Попробуй сунуть в >>100576 std::map и сообщи нам о результатах.
Потом попробуй в >>100589
133 1100599
>>100589
Деревенский простолюдин, неспособный постичь красоту шаблонных конструкций ебанул обычную шаблонную функцию и рад. Слишком просто, нам ведь не сделать, нам заебаться надо

>>100564
https://ideone.com/dElGUO
Вариант с частичной специализацией, без шаблонных параметром, но с копипастом.
134 1100602
>>100576
б-х ты мой нахуй так делать то блядь вот же написал человек >>100589
>>100599
ты что приколист я сегодня хотел спокойно заснуть вообще-то
135 1100603
>>100564
Вот, короче https://wandbox.org/permlink/YYVJ0E5tqxn54UBe

деревенский простолюдин (>>100589
)
136 1100609
Как можно написать метафункцию ICons, которая добавляет число в голову списка IntList?

https://ideone.com/1uYIMt
137 1100611
>>100609
template <int Head, typename IL>
struct ICons;
вместо
template <int Head, int... Tail>
struct ICons;
138 1100653
>>100599

>нам ведь не сделать, нам заебаться надо


Я чего-то этот fizzbuzz вспомнил https://ideone.com/6QN2Ef
139 1100668
>>100603
хуль ты делаешь то блядь расслабься самый простой код - самый рабочий
https://ideone.com/4ycTj2
Контейнеры - это не только шаблоны.
>>100609
Так, ладно я не буду спрашивать тебя о том, зачем тебе static const.
http://coliru.stacked-crooked.com/a/6b10a97723bd2ca5
Обрати внимание на то, что результат ICons не будет иметь тип IntList. Содержимое идентично, а вот тип другой.
Олсо, можно сделать так, чтобы и типы совпадали, но нужно заморочиться.
140 1100720
Как построить аффинное многообразие V(x^4 - xz)? Я прав, что оно равно V(x(x^3 - z)) и равно объединению многообразий V(x) и V(x^3 - z)?
141 1100721
>>100720
Не туда. (Wrong hole)
142 1100759
Помогите вкатиться в с++, плесс
tg @kaminaggs
143 1100796
>>100759
динахуй
144 1100850
Ребят, а что почитать, чтобы понять, как написать обработчик прерываний, чтобы try-catch работали на нестандартном процессоре?
145 1100871
>>100850
Давай поточнее. У тебя компилятор для этого процессора есть?
146 1100880
>>100871

Компилятор есть. Но при возникновении исключений проц слетает на адрес указанный в векторе прерываний.
Программа компилится при использовании try-catch, но в итоге они не оказывают никакого влияния. Что есть они, что нет, всегда уходим на вектор прерываний и даже не понятно, что за прерывание и в каком месте оно возникло.
147 1100902
>>100880
Что это за платформа, где исключения C++ прямо транслируются в прерывания?
И зачем?
148 1100905
>>100902

Это процессор на архитектуре Riscv.
Я хочу работать на чистом c++, но когда я спросил у сообщества насчёт вот таких вещей, мне ответили: пиши их сам.
149 1100938
>>100905
Ох блет.
Надо больше информации - ОС/метал, какой компилятор, параметры компилятора.
150 1100943
>>100938

На самой машине никакой оси.
Компилятор gcc/g++ из тулзов riscv, собранные под линуксом.
Из параметров компилятора точно помню, что стоит без оптимизации и 64-разрядная архитектура.
151 1100965
>>100668

>ладно я не буду спрашивать тебя о том, зачем тебе static const


А что не так со static const?
Вместо него следует использовать constexpr? Я попробовал - не компилируется.
image.png307 Кб, 1920x1080
152 1100967
double andron(double number, int stepen)
{
double value = number;
if (stepen == 1)
{

}
if (stepen >= 2)
{
for (int i = 0; i < stepen; i++)
{
value = value * number;
}

}
if (stepen < 1)
{
for (int i = 0; i < -stepen; i++)
{
value = value / number;
}

}
return value;
}

Антоны, обоосыте, прошу, помогите. Почему эта функция возведения в степень дает охуеть какие огромные значения?
image.png307 Кб, 1920x1080
152 1100967
double andron(double number, int stepen)
{
double value = number;
if (stepen == 1)
{

}
if (stepen >= 2)
{
for (int i = 0; i < stepen; i++)
{
value = value * number;
}

}
if (stepen < 1)
{
for (int i = 0; i < -stepen; i++)
{
value = value / number;
}

}
return value;
}

Антоны, обоосыте, прошу, помогите. Почему эта функция возведения в степень дает охуеть какие огромные значения?
153 1101009
>>100967
Осиль уже пошаговую отладку.
154 1101016
>>100965
Кому ты пиздишь? Ты сообщения компилятора читаешь хоть иногда?
http://coliru.stacked-crooked.com/a/5d2ba5fb29997899
>>100943
Дело так, значит: исключения C++ обеспечиваются с помощью exception model (SJLJ, SEH, DWARF для x86): соглашения о том, как хранится информация о раскрутке стека (вызове деструкторов в обратном порядке). Самому G++ эти исключения не нужны, и вполне может быть так, что для RISC-V модель исключений ещё не определили, и компилятор тебя об этом никак не предупредит.
Больше ничего сказать не могу, так как не в курсе, кроме того, что в исходниках этой твоей тулзы и исходниках поддержки других архитектур ты найдёшь ответы на любые вопросы.
>>100967

>double number, int stepen


Пользоваться только одним языком не дано?
Проверь свою программу по шагам для СТЕПЕН=2.
155 1101024
>>099142 (OP)
Как я могу определить шаблон, принимающий тип, и его специализацию, принимающую число?

https://ideone.com/IdWbDo
156 1101038
>>101024
Никак. Ты не можешь иметь константу или тип на одном и том же месте, это невозможно. Ты можешь сделать шаблон с двумя параметрами - число и тип - и специализация будет иметь только параметр-число, например.
Если ты не заметил, твоё определение специализации противоречит твоему определению шаблона.

>template <>


>struct Foo<size_t i>


Что ты за хуйню написал? В фигруный скобки около Foo ты пишешь известные параметры.
157 1101101
как стать СУПЕРБАТЕЙ языка программирования С++?
158 1101103
>>101101
Обмазаться книгами Саттера.
159 1101104
>>101103
Понял, принял
начал обмазываться
ptr.png54 Кб, 944x793
160 1101108
Двач, сегодня меня унизили на собеседовании. Пришел на собес к знакомому (С/C++).

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

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

Было 2 структуры и указатели на них, он взял указатель с одного типа структуры и присвоил ему адрес другой структуры и спросил будет ли выведено то что он запросил через де-референсинг указателя (т.е поля оригинальной структуры)

Я стоял как мудак и не смог ответить. Ну нахуй такую жизнь, ебись все конем, забиваю на программирование
161 1101116
>>101108
молодой?
162 1101121
>>101108
съеби в си тред, чухан
163 1101123
>>101116

Ога.
164 1101134
>>100943

>На самой машине никакой оси.


>Компилятор gcc/g++ из тулзов riscv


Для поддержки исключений нужны действия со стороны компилятора и нужен некоторый рантайм. Для bare metal окружения рантайма может не быть.
Покажи ассемблерный листинг для функций, содержащих throw и try/catch.
165 1101143
>>101108
Если вопрос о языке, а не о конкретной реализации, то ответ - такая операция не определена.
http://eel.is/c++draft/basic.lval#11
В сях скорее всего то же самое, там тоже strict aliasing rule есть.
166 1101161
>>101143
Двачую этого.
167 1101184
Господа. Подскажите утилиту для дебагина мультипоточных программ. Хочу видеть, сколько цпу жрёт каждый поток и т.д
Видел утилиту, но никак не могу вспомнить название.
168 1101196
>>101184
procexp тебе всё покажет, только информацию о потоках нужно будет из проги вывести, у них же имён нет
169 1101286
А есть годный обзор\книга за буст? Или прост документации читать и пох. Хочется в голове держать, чего умеет
171 1101360
>>101286
Есть, но не помню как называется
172 1101380
>>101286
Demming, R., Duffy, D.J. Introduction to the Boost C++ Libraries
174 1101387
>>101380
пасибо!
image.png1 Кб, 252x78
175 1101435
Как это понимать?
176 1101437
>>101435
У comma operator низший приоритет, поэтому (c = a), b;
177 1101505
>>101437
а что такое d = (a, b); ?
178 1101511
>>101505
d = (a), (b); => (d = a), b;
179 1101514
>>101511
но d становится равно 2 после d = (a, b);
180 1101519
>>101514
Тогда вообще похуй, кто вообще использует оператор запятой, кроме моментов когда нужно выебнутся что ты знаешь ебанутую семантику?
181 1101526
>>101511
Кому ты пиздишь? Скобки - это не оператор, и приоритет у них наивысший.
182 1101527
>>101435
Запятая - это, с одной стороны, оператор оценки двух выражений и возврата значения второго, причём на месте запятой есть sequence point (в новом стандарте это по-другому назывется).
А с другой стороны его можно переорпределять для классов, и это пиздец.
183 1101528
>>101519
Цикл с двумя счётчиками же?.. матрицы, вот это вот всё.
184 1101529
>>101527

>T2& T::operator,(T2 &b);



>vector<int> v;


>v += 1,2,3,4,5,6,7,8,9;



:OO е ба нись
185 1101532
>>101505
Ну смотри.
Допиши еще
int e = (c = a, b);
int f = (d = (a, b));
Может тогда понятней станет.
186 1101533
>>101519
Видел пару моментов
while(cin >> str, str != "STOP") { / ... / }

В бусте где-то есть красивая конструкция
symbols<> logicalOperators = "AND", "OR", "NOT";
Что разворачивается в
logicalOperators.operator =("AND").operator ,("OR").operator ,("NOT");
187 1101534
Или так

int a;
int b = (a = 2, a++);
188 1101535
>>101534
Ваще пушка

(i > 0) ? (i--, doIf()) : doElse();
189 1101536
О, отлично, как лучше выстрелить в ногу дуплетом? Правильно, сочетать это с МАКРОСАМИ.
#define MACRO(A) ( perform_heavy_work(A), std::cout<<"done", modify(A) )
190 1101560
>>101532
Топ трал.
>>101533
Не понял.

>while(cin >> str, str != "STOP") { / ... / }


Должно же быть
while(cin >> str && str != "STOP") { / ... / }
В чём прикол?
191 1101563
>>101560
Не должно, операция >> вовсе не бул возвращает.
А в чем ты узрел траллинг?
192 1101569
>>101563

>А в чем ты узрел траллинг?


В том, что усложнение вопроса вызывает понимание.

>Не должно, операция >> вовсе не бул возвращает.


Операция >> возвращает истрим, у которого есть оператор бул().
Так что если ты прям на 100% уверен в том, что СТОП у тебя есть - ну ок, пожалуйста.
http://coliru.stacked-crooked.com/a/665b52cac213ad5f
193 1101706
>>099142 (OP)
Что можно почитать о написании юнит-тестов на C++?
194 1101721
Аноны,

>3.1.2 Таблица замен – матрица из восьми строк и шестнадцати столбцов, в дальнейшем – Hij. Каждый элемент на пересечении строки i и столбца j занимает 4 бита.



Как можно определить элемент матрицы размером 4 бита? Просто использовать частично заполненный char?
197 1101800
А в какой индустрии, где С++ используют, больше всего заколачивают? Какие-нибудь кванты на волстрит небось, хай фрикуенси трейдшопы?
198 1101806
>>101741
Все равно эти штуки выравниваются в памяти.
199 1101834
Пацаны, замена локальной переменной внутри функции на статическую ускорит работу?
long_array большой и имеет один и тот же размер, то есть resize обычно ничего не делает.

Вариант 1.
void foo(vector<double>& long_array) {
vector<double> temp(long_array.size());
...
}

Вариант 2.
void foo(vector<double>& long_array) {
static vector<double> temp;
temp.resize(long_array.size());
...
}
200 1101851
>>101834
Хз, зачем я спрашивал, проверить же недолго.

Если кому интересно, то при размере long_array 10-100 тысяч и частом вызове функции, второй вариант примерно на 15-20% быстрее. Неплохая оптимизация так-то.
201 1101862
>>101721
vector<bool> - гарантирована специализация с плотной упаковкой. "Элемент" определи самостоятельно. Ещё есть bitset, но у него размер фиксированный.
original[1].jpg50 Кб, 400x500
202 1101867
>>101108
чувак, несмотря на весь мой профессиональный скепсис ко вкатывальщикам -- человеческий совет: не принимай близко к сердцу мнения любых других людей
203 1101877
>>101721
class Hij {
char data[8]{};
const int pack(int i) { return (i % 2 ? 0 : 4); }
public:
Hij(std::initializer_list<int> il) { int i = 0; for (const auto& v : il) data[(i++) >> 1] |= v << pack(i); }
int operator[](int i) { return (data[i >> 1] & (0x0F << pack(i)) ) >> pack(i); };
};

int main() {
Hij hij{ 1,3,2,4,5,7,6,8,9,10,11,12,15,14,13,12 };
for(int i = 0; i < 16; i++)
std::cout << hij << std::endl;
}

Немного доработать, добавить прокси тип, ссылку на второе измерение и готово.
204 1101881
>>101877
Что-то проиграл. Четыре бита занимают элементы таблицы замен в шифре российский ГОСТ. Мне для этого.
205 1101884
Сап, кто может помочь написать программу, раскладывающую число (с кол-вом знаком более 11) на простые множители. Хотя б идею подкиньте, понимаю что можно проверять числа от 2 до корня из числа, но как проверить делиться ли оно и получить остаток?
206 1101947
>>101881
Нахуй ты тогда нам мозги пудришь?

>Все равно эти штуки выравниваются в памяти.


Храни в байтах и отсекай при вычислениях.
>>101884
У тебя проблема с размером типа? uint64_t есть. Мало? Пишешь свою реализацию длинной арифметики или берёшь
http://www.boost.org/doc/libs/1_65_1/libs/multiprecision/doc/html/index.html
207 1101966
>>100290
Если совсем нуб, то сходи.. учат они добротно, за скобками ничего не оставляют.
Проблема личности в программировании,, что у каждого свое видение, как у дизайнеров, поэтому без собственного видения на кодинг не вкатиться.
Т. К.. Стандартов уже столько что их можно всю жизнь изучать и ни разу не написать программу.
208 1101967
>>101966

>Т. К.. Стандартов уже столько что их можно всю жизнь изучать и ни разу не написать программу.


Ещё один неосилятор
209 1102423
>>101967
Не языка стандартов, дебич.
210 1102605
>>102423
И что? Всё равно неосилятор
211 1102656
>>102605
Сделай развёрнутое утверждение, верность и полезность которого верифицируема хотя бы косвенно.
212 1102711
Сап. Хочу собрать проект, которого пока нет, clang'ом. Суть такова: мне нужно заинклудить cstddef (для size_t). При попытке собрать вываливается с ошибкой support for type '__float128' is not yet implemented. При добавлении флага -stdlib=libc++, как советуют в инете, начинает вываливаться с ошибкой fatal error: 'cstddef' file not found. Что делать?
213 1102716
>>101884
//Инициализация твоего числа Number
vector<int> Result;
for(int i=0;i<sqrt(Number) + 1; i++)
{
while(Number%i == 0)
{
Number /= i;
Result.push_back(i);
}
}

// В Result теперь лежат все простые делители числа в порядке возрастания
214 1102720
>>101884
>>102716
Ну и да, код с пометкой Так делать не нужно, это плохо.
215 1102741
>>102711
блядь нихуя не понятно
216 1102742
>>102711
хоть бы ОС назвал
217 1102745
>>102742
Debian 4.13.13-1 (2017-11-16) x86_64 GNU/Linux
>>102741
clang не хочеть инклудить cstddef ни с флагом, ни без него.
218 1102762
>>102711
https://apt.llvm.org/
накатывай clang-5 или даже 6
Безымянный.png63 Кб, 614x594
219 1102841
Анон, помоги мне, я новичок в программировании. В общем задача звучит так: "В одномерном массиве из 12 элементов определить максимальный среди отрицательных и минимальный среди положительных элементов". Так вот, как сделать так, чтобы из чисел, например, {-1, -2, -3, -4} максимальный был -1 а не -4
Помогите плиз, не хочу быть отчисленным после первой сессии
220 1102846
>>102841
1) пусть первый встреченный отрицательный элемент и есть искомый элемент, а первый встреченный положительный элемент и есть искомый элемент
2) с каждым новым элементом выполнить проверки: если он отрицательный и при этом он... и т.д.

Алсо, добавь пустые строки вокруг операторов условий и циклов, читать невозможно же.
221 1102847
222 1102855
>>102841
Так ты вроде почти все сделал. Просто нарисуй числовую ось и найдешь ошибку. Ты же не модули чисел сравниваешь. -2 реально меньше, чем -1.
 .png269 Кб, 1276x1218
223 1102862
>>102841
Если ты не можешь решить такую задачу после первого курса, зачем вообще в спутники и погромисты пошел?
224 1102875
>>102862
Найс троллинг
225 1102880
>>102862
можно было бы и std::array тогдауш
226 1102884
>>102880
Сказано же было в одномерном целочисленном массиве, а это именно int*, std::array по факту это уже структура.
227 1102889
>>102875
Это называется С++, что-то не нравится? – С-тред двумя блоками ниже
228 1102891
>>102875
Где ты троллинг увидел? Единственное что рандомизатор выглядит монструозно.
229 1102903
>>102889
Однако, аргумент
230 1102966
>>102841
Нахуй ты в программирование пошел, дебич?
231 1103052
Никсокрестовики, а вы какой сетап используете? Идеши нетбинсы\эклипсы, чи вимы\емаксы надроченые? Гдб питоном скриптуете?

Я все время как-то теряюсь под линухом, то одно то другое
232 1103054
>>102966
прогер 200к в секунду треды в бэ, я думаю
233 1103055
>>103052
использую вим только как редактор, остальное в консоли
234 1103068
>>103052
А что там, CLion не работает?
235 1103150
>>102745
А всё остальное он инклудит?
236 1103153
>>102841

> Так вот, как сделать так, чтобы из чисел, например, {-1, -2, -3, -4} максимальный был -1 а не -4


>Помогите плиз, не хочу быть отчисленным после первой сессии


блядь не помогайте этому дауну
237 1103158
>>102884
array - это массив в переводе с английского. Когда говорят "массив" в разговоре о С++ имеют ввиду либо вектор, либо аррай, а обычные массивы называют C-массивы.
>>103052
Мне кутэкректор по душе, можно убрать все панельки, места на экране съедает минимум, нативный кросплатформенный код, компилятор цепляет чуть ли не любой (особенно на линуксах).
238 1103159
>>102862
массив создается через устаревший new вместо православного make_unique. Незачет
239 1103674
ДОЖДАЛИСЬ
https://www.iso.org/standard/68564.html

> ISO/IEC 14882:2017


> 1488

240 1103723
>>103674
Стандарты нативной сишечки вдвое короче.

В плюсах есть какие-то приятные улучшения, кроме шаблонов и обработки ошибок?
241 1103747
>>103723

>Стандарты нативной сишечки вдвое короче.


И в два раза более размытые по формулировкам.
242 1103785
Не вдцпляю вообще, ребят, помогите. Есть строка text[], например, там надо перед каждым опрежеленным символом вставить другую строку. Как это реализовать? Сижу щас на лабе, застрял на этом моменте конкретно.
243 1103797
>>103785
Посчитай сколько в строке опрежелкнных символов, создай новую на столько байт больше, и копируй туда в цикле, добавляя по ходу.
244 1103799
>>103723

>В плюсах есть какие-то приятные улучшения, кроме шаблонов и обработки ошибок?


Лямбды ещё, люблю лямбды.
Ты так говоришь "кроме шаблонов", как будто это мало (это если ты про STL).
Ещё есть range for.
Ну и самое главное - RAII. Можно писать код вообще без утечек памяти, используя несколько простых правил.

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

>Есть строка text[]


Это не строка. Строка - это string text.

>Как это реализовать?


Если тебя по ладоням бьют за STL и плюсы - писать с помощью memcpy в память, выделенную malloc-ом, лол. Препода тормоши, он деньги получает за это.
Аноним 245 1103816
>>103799

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


как там в 2003ем ?
246 1103841
>>103799
Напиши перегрузку, принимающую на вход контейнер.
247 1103845
>>103799
А че за правила то?
2k03+14.PNG49 Кб, 893x637
249 1103877
>>103816
Как в 2017, только нету лямбд и констекспров.
>>103841
Не буду же я писать на каждую функцию STL перегрузку.
>>103845
Не использовать new, не использовать malloc/calloc, использовать только shared_ptr/unique_ptr и make_shared/make_unique
250 1103879
>>103723
Олсо, structured bindings и поддержка параллельных алгоритмов (ExecutionPolicy).
251 1103887
>>103158

>Когда говорят "массив" в разговоре о С++ имеют ввиду либо вектор, либо аррай, а обычные массивы называют C-массивы.


>>103799

>text[] Это не строка. Строка - это string text.


Как же я проигрываю с дегенератов в этом треде.
252 1103889
>>103887
Тред высокоуровнего ассемблера в каталоге сам найди.
253 1103891
>>103889
А это здесь причем? Массив не перестает называться массивом, хоть в каком хаскеле его пиши.
254 1103902
>>103891
Вот именно, массив не перестаёт называться массивом, это ты вот этому - >>102884 - ассемблероребёнку напиши.
255 1103908
>>103902
Если ты не способен в байтоебство то иди на яве или шарпе пиши даунич
256 1103913
>>103902
Какой же ты тугой.
257 1103994
qt creator на винде в фоне жрёт процессорное время. Даже если ничего не открывать, ни одного файла - всё-равно в фоне выжирает одно ядро почти полностью.

Погуглил, говорят это оно индексирует какие-то файлы то ли справки, то ли ещё какого мусора и через некоторое время должно пройти. Где-то часов через семь-восемь это в самом деле заканчивается и процессор больше не нагружается. Только после перезапуска он заново начинает.
Можно это как-то отключить? С моей стороны оно просто так жгёт процессор, а работа самой среды не изменяется вообще никак, ни в процессе, ни после завершения.
258 1103999
>>103799

>Строка - это string text.


wtf? eto chto za pokemon?
259 1104080
>>103999
Видимо он имеет в виду std::string
111.png54 Кб, 1100x920
260 1104082
Анонас, подскажи, плиз. Пытаюсь использовать вот этот код https://github.com/alexeylysenko/CryptFileDevice в своей недопрограммке.
Ему требуется openSSL. Ок, скачал openssl.v120.dyn-rt.static через Nuget, поставил.
Но всё равно проект не собирается, пикрилейтед. MVS 2015. Как фиксить?
inb4: Определи выражение константой
261 1104095
>>104082
keyLength и ivLengtn – это не константные целочисленные переменные, ими нельзя инициализировать размерность статические массивов (по крайней мере не во всех компиляторах). Используй unsigned char key = new unsigned char[keyLength]
262 1104096
>>104095
Звездочку проебал, ну ты понял
263 1104099
>>103908
Название треда прочитал? Прочитай ещё раз.
>>103913
Повторяю для долбоёбов: это сипласплас-тред и в этом треде массивом называется НЕ ТОЛЬКО указатель на тип. Если у тебя массив - это только указатель на тип, то вали из треда.
>>103994
1) Напиши багрепорт.
2) После того, как написал багрепорт, удали все файлы справки, там в настройках есть список.
>>104082
Поздравляю, ты стал жертвой похуизма микрософта по отношению к стандарту языка. Работало в 2012 - перестало работать в 2015. Замени на оператор new и допиши в конце скопа delete.
264 1104100
Точнее, не сами файлы удали, а список этот очисть.
265 1104103
>>104099
Повторяю для дебилов: это сипласплас-тред и в этом треде массивом называется В ТОМ ЧИСЛЕ плейн массив. В отличии от того утверждения, где С-массив это не массив.
266 1104104
>>104099

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


Поздравляю, это не С-тред, по стандарту у майкрософта все, VLA - не стандарт.
77764.png90 Кб, 1356x922
267 1104108
>>104095
>>104099
Спасибо. Не помогло Но всё равно - спасибо.
268 1104132
>>104108
Это уже другое. Ты же качал OpenSSL, а либы под MSVS бывают, грубо говоря, 4-х видов: MT (статическая), MD (dll), MTd (статическая дебаг) и MDd (dll debug).
269 1104137
>>104132
Данке. Поставил через нугет динамическую openSSL и по крайней мере теперь компилируется.
270 1104156
Почему в этом тренде не унижают вижуал студио-даунов?
271 1104165
>>104156
Что ты имеешь против самой популярной среды разработки, которую поддерживает одна из самых технологичных компаний мира?
272 1104167
>>104165
Против XCode ничего против не имею
273 1104168
>>104103

> В отличии от того утверждения, где С-массив это не массив.


Покажи мне это утверждение. Пока что я вижу только обиду на то, что крестобоярин посмел считать array массивом.
>>104104
Я не писал, что VLA есть в стандарте. Но ладно, ты подебил, в студии всё по стандарту.
274 1104170
>>104165
Мне неудобно ей пользоваться, у меня на ней иногда не компилируются простейшие программы со сторонними библиотеками, какой-то текстовый редактор с небольшими дополнениями занимает несколько гигабайт места, слишком сильно вшивается в систему, воспоминание о vs 2008 - код на 151 строчку компилировался 2.5 минут после каждой правки и ещё всякие такие мелкие неприятности.
Субъективщина сплошная. Это примерно как сравнивать фотошоп и sai. Может быть в первом и больше возможностей, но вторым намного проще, приятнее и удобнее пользоваться в рамках того, что он умеет.
275 1104209
>>104156
Зачем? Нормальная штука, особенно как добавили возможность clang использовать.
276 1104222
>>104108

> 2k18


> new/delete

277 1104225
>>104222
Да, да уже поправил на unique_ptr
278 1104227
>>104222

>OpenSSL


>считать что это не легаси

14671424499800.jpg33 Кб, 502x339
279 1104229
>>104225
А что не QByteArray?
>>104227
<-
280 1104239
>>104227
што
281 1104256
>>104209

> clang


Есть интоловский компилятор. Все профессора в моем нии текут от него.
282 1104265
>>104256
А вне твоего НИИ мир, которому поебать на +5% перформанса в арифметике (кроме других НИИ, лол), и узкие места можно поправить руками, а не супердорогущим пропиетарным закрытым компилятором, в который ещё и новые стандарты неспешно завозят.
283 1104293
у Праты вышло что-то новое?
284 1104350
Есть чего хорошего почитать по STL?
285 1104352
>>104350
А, всё. Чекнул шапку
286 1104425
>>099351
А разве там и там не паблик ли?
287 1104433
>>104425
Нет.
288 1104686
Ещё вопрос по cmake и qt creator. Хрен с ней со справкой и загрузкой процессора.

Как сделать переносимый-портабл проект? Типа, папку с файлами перенёс куда-угодно и всё работает.
А то он создаёт файл CMakeLists.txt.user с некоторыми настройками и прописывает там абсолютные пути к директориям. При переносе пишет Failed to activate protocol version: "CMAKE_HOME_DIRECTORY" is set but incompatible with configured source directory value.
Там всего в нескольких местах подменить, конечно, и в общем-то можно костыль сделать для этого, но это как-то совсем некрасиво.
289 1104701
>>104686
Удали этот файл, будет ок. Я использую Qmake, удаляю файл .pro.user, эффект тот же. Он генерируется Креактором во время конфигурации проекта.
290 1104731
>>104701
Он его каждый раз создаёт же. Причём если написать относительные пути - всё-равно замещает на абсолютные. Может быть есть где какой флаг это отключающий.

К тому же, там некоторые настройки запуска по мелочи сбиваются. Проще заменить пути в файле, чем отыскивать эту фигню в настройках и менюшках потом.
291 1105049
>>104731
Хуй знает тогда. Топорный вариант - найти в файлах проекта и исправить на относительные. Правильный вариант: открыть мануал Креактора и прочитать.
292 1105056
Ананасы, реквестирую вашей помощи, заебался сегодня. В общем, есть ли какой-нибудь способ (без использования sstream) скрестить boost::archive::binary_input и сырой массив данных?
То есть, в 1.65 буст нихуя не умеет использовать boost::iostreams вместо стандартных, есть варианты, кроме использования std::sstream (он же deprecated :( )
sage 293 1105123
>>105056

>std::sstream (он же deprecated


Что ещё за std::sstream? sstream это хедер.
Давно он deprecated?
Пиздец.
294 1105208
>>099142 (OP)
Есть такая функция перекодировки: https://ideone.com/iepDlP
Как она работает, если аргумент не найден в хэш-мапе? Метод find получает несуществующий символ и возвращает end(). Попытка обращения к end() - неопределенное поведение. Почему код все равно работает?
295 1105211
>>105208
Тебе показалось. У меня падает со std::alloc. Проверь, может у тебя UB форматирует винчестер в фоне.
296 1105227
Для лабы нужно простенькое параллельное программирование, а методичка написана про C. Где почитать как реализовывать потоки, треды на плюсах?
298 1105234
>>105232

>/thread


>/thread

299 1105237
>>105234
/std::thread
300 1105240
>>105232
А не на ангельском? Я, конечно, могу, но это потребует больших усилий.
Я нашел книжку в шапке, но там 600 страниц.
301 1105241
302 1105242
>>105240
Мудила, там определения функций и конструктора достаточно посмотреть что бы понять как оно работает, это тебе QThread с наследованиям или переопределениями.
303 1105296
>>105123
блять, ошибка strstream
304 1105367
Аноны, подскажите пожалуйста, что я делаю не так. Суть: 2 класса (для одномерного и двумерного массива), в которых надо перегрузить операторы декрементации и инкрементации (должны уменьшать/увеличивать числа в массиве). Сделал все, как расписано в примерах на Хабре, искал примеры еще, но в итоге, после вызова оператора ++/-- имеющийся объект дропается, причем если вызов постфиксный - успевает вернуть старое значение, а после цикла с увеличением/уменьшением выпиливается. При попытке вывести - выводит пустую строку. Через дебаг во время вывода пишет, что чтение памяти невозможно.
image.png244 Кб, 1920x1080
305 1105375
Антоны, пишу крестики и нолики и почему-то нихрена не работает. Уже день голову ломаю, не могу понять в чем ошибка. Обоссыте, но если можете, то помогите.
https://ideone.com/FBaBG9
306 1105396
>>105367
Более знающие поправят, но ты создаешь внутри функции временный объект oldValuе и возвращаешь ссылку на него, а по выходу из функции память освобождается и возвращенная ссылка указывает на мусор.
307 1105404
>>105367
в пизду иди со своими картинками блядь
нахуй нам твоя лаба со всем дерьмом? Задай изолированный вопрос, на который можно ответить, не пытаясь сделать лабу за тебя
>>105375

>#include <conio.h>


Обоссал. Тряси препода, он за это зарплату получает.
308 1105405
>>105396
Неа, он копию возвращает.
309 1105408
>>105375
And: identifier not found
Замени на &&
Во-вторых, ну ок, ты проверяешь, и если Y >0 продолжаешь гнать его в плюс. Надо же минус.
Потом ты перевод строки после трех символов не выводишь.
Но так то полный треш, это не починить.
изображение.png8 Кб, 704x248
310 1105423
>>105404

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


Извини, если сократить, то почему инкремент/декремент выпиливает объект, хотя должен просто его увеличить/уменьшить его?
311 1105429
>>105396
oldValuе - копия через конструктор копирования, в постфиксных операторах же должно возвращаться старое значение. Выходит так, что перегрузка вроде работает, т.к. первая строка создает копию как и должна, но сам объект, для которого был вызван инкремент - удаляется, хотя просто должен был увеличиться.
Снимок.PNG12 Кб, 434x384
312 1105441
Нужно посчитать кол-во слов в тексте, начинающихся на определённую букву. Сам текст находится в текстовом файле (1.txt).
Всё работает, но какого-то хуя не считывается самое первое слово. В чём проблема?
313 1105599
>>105423
Ответ: эти строчки кода ничего не "выпиливают" (лолштоблядь). Ошибка находится в другом месте. Если бы ты хотя бы код запостил, я бы ещё порылся.
>>105441
На кой ляд тебе char[64] вместо std::string? Олсо, зря ты на eof проверяешь - он возникакет только тогда, когда считано на один символ больше, чем есть в потоке.
http://coliru.stacked-crooked.com/a/1f6b8cb5f2efd7d3
Вот так правильно.

>но какого-то хуя не считывается самое первое слово.


Слова-то, блядь, у тебя как записаны?
314 1105618
>>105599

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



Просто именно после перегруженных операторов объект "перестает существовать". Я пробовал делать инкрементацию просто как обычную функцию, и она работала, но при попытке сделать так же в операторе ситуация повторялась.
http://coliru.stacked-crooked.com/a/6461ce653362870b
315 1105625
>>105618
Чудес не бывает. Ходи в отладчике, ставь брейкпойнты в конструкторах-деструкторах.
316 1105665
Котаны, чет туплю.
Использую tesseract, на распознавание в него подаю изображение "Pixs" загруженное leptonica.

>tesseract.SetImage(Pixs);


leptonica принимает (FILE ) ( тобишь файл на диске)
Этот файл за мгновение до этого я загружаю и сохраняю Curl-ом:

>FILE fp;


>fp = fopen(outfilename,"wb");


>curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);


Есть способ выкинуть этап сохранения/загрузки с диска?
Что-то типа: Curl-ом писать в "виртуальный файл" (FILE *), а потом этот виртуальный файл подсовывать leptonica.
Прога под Windows если что.
Есть вариант конечно создавать небольшой RAM диск и писать/читать оттуда, но это сильно бьет по переносимости проги.
317 1105707
>>103723
Олсо, КОНЕЧНО ЖЕ, ссылки и рвалью-ссылки, благодаря которым стало более добно писать в функиональном стиле.
>>105618
ааааааазаааааааъхххааааъъъъъъазаззхзааааааааааа ёбаааа

>Vector* copy = ++vec;


Попробуй предположить, что делает эта строчка? Пару раз не угадаешь - расскажу.>>105665

>Есть способ выкинуть этап сохранения/загрузки с диска?


>leptonica принимает (FILE


Нет. Как вариант - поищи что-нибудь в Бусте, мемори маппед файл какой-нибудь с ленивым сливом буфера записи.
318 1105710
>>105707

>Попробуй предположить, что делает эта строчка?


Создает указатель на инкрементированный объект класса?
319 1105737
>>105710
Не угадал. Ещё раз: что такое vec? Прочти определение vec.
320 1105754
>>105737
Vec - указатель на объект, т.е. в copy я пытаюсь создать указатель на указатель, который я инкрементирую без разыменования, т.е. вместо того, чтобы увеличить значения по адресу, увеличиваю сам адрес?
321 1105842
>>105754
Бинго! Ну а дальше сам, по шагам: продумай, что нделает каждый символ.
Сразу говорю: для того, чтобы присвоить вектор вектору, тебе не хватает конструктора копирования (дефолтный есть, но при определении любых конструкторов он удаляется).
322 1105846
>>105754
Точнее, ты не указатель на указатель создаёшь, ты только инкрементируешь указатель и говоришь что это указатель новый вектор. Если тебе прям до жопы нужно именно с указателями трахаться, то делается это вот так:
http://coliru.stacked-crooked.com/a/722b1939961b68de
Но опять же, тебе не хватает конструктора копирования как минимум, как бы ты не изворачивался.

Сделать указатель на указатель тебе не даст статическая типизация.
323 1105863
>>105842
>>105846
Спасибо, анон!
324 1105869
Есть план местности, разделённой на квадраты, заданный матрицей. Ячейка матрицы - высота этого квадрата над нулевым уровнем. Нужно найти кратчайший путь из (х0,у0) в (х1,у1). Длина перемещения из квадрата в квадрат = k, длина спуска/подъёма при переходе в соседний квадрат = модулю разности высот квадратов. Двигаться можно только между центрами квадратов и параллельно осям Ох, Оу.

Хочу ебануть алгоритм Дейкстры, но нужна матрица с весом рёбер графа. Как её получить из "плана местности" я не ебу. Хелп, аноны.

бтв, stl юзать низя
325 1105871
>>105869

>бтв, stl юзать низя


Ну тогда и пиздуй в C-тред, хули тут то забыл?
326 1105873
>>105871
Ну приоритетную очередь я написал, а дальше stl-то зачем? Вся трабла тут

> Хочу ебануть алгоритм Дейкстры, но нужна матрица с весом рёбер графа. Как её получить из "плана местности" я не ебу. Хелп, аноны.

327 1105875
>>105873
Сделай структуру дерева, переведи матрицу в дерево и ебани по ней рекурсивно алгоритм Дейкстры
328 1105877
>>105875
Нужно приоритетной очередью. Поэтому, собственно, и нужна матрица веса рёбер
329 1105889
>>105869
Что такое матрица весов рёбер графа? Что такое вес ребра графа? Если ты не можешь ответить на эти вопросы - иди нахуй. Если ты можешь ответить на этив вопросы, то дальше ты и сам сможешь.
330 1106016
Господа, в шапке Липман допотопный лежит( 2007) года.
Там Вводный курс, а необходим базовый.
2chan.PNG65 Кб, 668x171
331 1106105
Привет аноны, такое дело очень стараюсь делать все задания в Программирование. Принципы и практика использования C++, сложно конечно но получается и вот напоролся на задания -чтобы сделать поток ввода стал явным параметром.
Делаю все по гайду в 8.5.8, в параметры функций - Token_stream& ts a в main строку - Token_stream ts;
Все работает и я был очень рад что избавился от глобального, да только с istream& этот способ не работает! конечно я не дебил и начал искать где только можно. Я сразу увидел что ничего нет и это шаблон класса и мне это ничего не сказало потому что я только вкатился. Так как это сделать ядрён батон? объясните пожалуйста ньюфагу
332 1106173
>>106105
Запость хоть какой-нибудь код, мы тут ванги штоле?
333 1106203
>>106173
class Token_stream {
public:
Token_stream();
void foo2(istream& is);
void foo1(Token_stream& ts);
};
void Token_stream::foo2(istream& is)
{
}
void foo1(
Token_stream& ts)
{
}
int main(){
Token_stream ts;
foo1(ts);//работает
istream is;
foo(is);//не работает
}
в 8.5.8 на примере Token_stream это работает а по заданию требует istream, я хрен знает как это сделать
334 1106204
>>106203
если еще короче, я не понимаю как просто передать istream в параметр функции
istream is;
foo(is);//не работает
335 1106314
>>106203

>не работает


Ты ему зарплату что ли платишь, уёбок? Почему из вас, пидорасов, надо клешнями всю информацию вытягивать? Если я тебе покажу код и скажу "не работает", тебя это устроит?
336 1106316
>>106173

>Запость хоть какой-нибудь код


int main() {}
337 1106332
Пытался вот месяц вкатиться в Java. И вот, что, хуи сосет ваша Java. Ничего лучше плюсов не найти.
338 1106462
Парни, норм тема взять макпук 12 дюймов? Задача портировать с винды пару легких десктопных приложений на крестах с qt, а потом просто носить его с собой - ну там открыть документ в люстре/индизе, ворд-эксель, браузер. С хакинтошем и виртуалками пердолиться не хочу. Потянет или надо прошку брать?
339 1106476
>>106462
Ясен хуй, потянет. Я не знаю, какой там в макоси планировщик - быть может, там такая же жопа, как в винде, когда одна из программ начинает слишком много вычислять, и приоритет активного приложения не повышается. Если это не так, меня эти 1,2/3 ГГц не смущают никак - ну подождёшь ты немного в паре мест, ну и хуй с ним.

Прямо сейчас сижу с селероном x86 1,5 ГГц - вполне терпимо. Открыть пидиэфку и текстмейкер и несколько вкладок (штуки четыре) в браузере я точно могу. Хорошее видео не декодируется, максимум - какое-нибудь 102460030.
image.png64 Кб, 567x601
340 1106477
>>106476

>1024х600х30


Проигрыватель плохой или шибко сложный кодек. Вот такое чудо проигрывает на старом the kmp 1920х1080 в mp4. Там можно в настройках видеодрайвера включить разрешение экрана вплоть до 2560х..., так что когда мышку к краю экрана подводишь - отображаемая область передвигается.
341 1106482
>>106477
Данунахуй! Скинь любой пример, сравним. Я использую MPC-HC.
342 1106490
>>106482
Едва нашёл флешку, которую тот ноутбук прочитал, лол, чтобы точно убедится. Там проблема с usb портами (только один из трёх работает) и аккумулятором (10+ лет из которых шесть лет я его ежедневно использовал) - ни один внешний хард не раскручивается, всем питания мало.
У меня нет видео в таком разрешении, потому не долго думая я скачал что-то с ютуба. (Можешь напрямую с меня цепануть -
http://95.27.236.250/45/ )

https://www.youtube.com/watch?v=MAUsbFti6fo
1280х720х30 (3.2Мб/с) - без каких-либо лагов, загрузка цп прыгает 40-60.
1280х720х60 (3.6Мб/с) - пару раз за минуту зафризился на полсекунды, загрузка цп прыгает около сотни. Вот тут я сейчас вообще офигел увидев такое плавное воспроизведение. Прям надо брать камеру и записывать, как эта штука из каменного века выдаёт такую плавную картинку.
1920х1080х60 (5.6Мб/с) - со скоростью вполовину меньше нормальной показывает, загрузка цп стабильная сотка.
https://www.youtube.com/watch?v=Ij6AFF8lbOs
1920х1072х24 (3.1Мб/с) - без каких-либо лагов, прыгает около сотни.
Возможно ещё хард подводит (он совсем громко трещит что-то), просто не успевает высокий битрейт считывать - его я тоже ни разу не менял и из-за баловства с магнитом на нём громадная царапина на 10ГБ, при обращении к которым система падает с бсодом.
343 1106534
Анон, можешь подтвердить что я правильно работаю с QThread?
Цель - останавливать новый поток при помощи отправки данных из основного потока.
Всё сделал правильно? Что-то добавить-убрать?
344 1106553
Аноны, вы на чем пилите графический дизайн приложений?
345 1106554
>>106490

>Едва нашёл флешку, которую тот ноутбук прочитал, лол, чтобы точно убедится. Там проблема с usb портами (только один из трёх работает) и аккумулятором (10+ лет из которых шесть лет я его ежедневно использовал) - ни один внешний хард не раскручивается, всем питания мало.


Вычислим по IP.
346 1106556
>>106553
Я сейчас вкатываюсь в QT. Раньше MFC
347 1106560
>>106556
В чем преимущества у MFC или Qt? Что проще для усвоения?
348 1106562
>>106560
QT ессно. Возможная кроссплатформенность и адекватный механизм сигнал-слотов.
MFC - адок.
349 1106566
>>106562
Спасибо. Кроссплатформенность на производительность влияет?
350 1106567
>>106566
Ну ты можешь не заниматься кроссплатформенностью, а писать под конкретную ОС. Но а вообще всё зависит от скилла.
351 1106568
>>106567
Спасибо большое. Бэхэтле бул.
352 1106599
>>106562

>QT


>адекватный механизм сигнал-слотов.


>#define signals public


>#define slots

353 1106647
>>106599
MOC? Не, не слышал.
354 1106666
>>106566
Нет, если это не boost или Qt (если вы понимаете о чем я)
355 1106670
>>106647
Щас бы костыль как преимущество приводить...
356 1106684
>>099142 (OP)
Вопрос по разработке через тестирование. Если есть класс в файлах .h и .cpp, в каких файлах писать для него тесты? Где вы размещаете свои тесты?
357 1106691
>>106684
Тесты - для тех кто не умеет писать нормальный код.
358 1106692
>>106691
Старпер, плес.
359 1106705
>>106684
В отдельных файлах.
360 1106723
Хочу обмазать свой проект на Qt тестами GoogleMock. На этапе линковки получаю ошибку: обнаружено несоответствие для "RuntimeLibrary": значение "MTd_StaticDebug" не соответствует значению "MDd_DynamicDebug" в db.obj

Что я делаю не так? Как исправить?
361 1106736
>>106723
Не тот типа библиотеки подключаешь или наебланил в настройках. Проще поставить линукс.
362 1106738
>>106736
Не получается скомпилировать GoogleMock как DLL.
363 1106741
>>106738
Ну вот собираешь не тот тип debug/release static/dynamic.
364 1106742
ОС может отбирать память у приложения? Она шлет там типа сообщения какие-то, или еще как-то надо проверять не стал ли указатель нулем? Тот же вопрос про видеопамять, в связке с OpenGL.
365 1106743
>>100011
поясняю. нужно. для овердохуя чего. если не физический, то виртуальный абсолютли
366 1106745
>>106691
и для тех, у кого овердохуя свободного времени, имхо
367 1106750
>>106745
Это у тех, кто не пишет тесты, овердохуя свободного времени, чтобы потом тратить 10х время на ловлю багов.
368 1106751
>>106750
лол, за 10 лет коддинга ни разу не искал баг более 10 минут. сука, рили тесты для рукожопов
369 1106752
>>106751
Видимо у тебя одни хеллоу ворлды. Алсо не искал != что их у тебя нет.
370 1106753
>>106751
Ты даже в исходники библиотек никогда не лез искать ошибку?
371 1106754
>>106753
лез, даже на багтрекер писал. фиксили. но это блять никак к тестам не относится. это уже рукожопость разработчиков фреймворка
372 1106755
>>106753
лез, даже на багтрекер писал. фиксили. но это блять никак к тестам не относится. это уже рукожопость разработчиков фреймворка
373 1106756
>>106754
Не больше 10 минут, да?
374 1106758
>>106756
хуйна. при чем тут исходник библиотеки и тест?
375 1106760
>>106758
При том.
376 1106767
Пишу проект расчета зарплаты. Приложение работает с базой SQLite. Где хранить процедуры общения с бд типа "получить базовую ставку работника" и "получить опыт работы в годах"? Дублировать код в каждом подклассе типа работника или группировать в классе запросов?
377 1106771
>>106767
Я бы хранил "рыбу" в функции "по клику на кнопку "Сформировать"" куда динамически подтягивал параметры из ui. Но я не специалист.
378 1106828
>>106670
Я привожу, как преимущество, то, что я знаю, как это работает, и что слова "signal" и "slot" обозначает, и подразумеваю, что ты идиот, так как не умеешь абстрагироваться от деталей реализации, которые ты специально отрыл, хуй знает, зачем.
>>106742
Открой документацию к своей ОС и прочти сам.
379 1106856
>>099142 (OP)
В очередной раз пытаюсь вкатиться в Qt ради GUI. В этот раз поставил на вижак плагин, и столкнулся с той же проблемой, что и в прошлый раз - при компиляции в целевой папке есть только .exe файл, никаких Qt'шных либ там нет. Вопрос - как можно настроить компиляцию, чтобы я на выходе получал папку со всеми необходимыми бинарниками, вот прям чтобы взял и запустил на другом ПК? Или в опенсорсной версии Qt хуй мне на рыло с такими запросами и запускать только локально из IDE? В прошлый раз единственное решение, которое я нашел - добавлять ВСЕ Qt'шные либы в папку с .exe и запускать .exe, убирая либы по одной, чтобы узнать, какие нужны. Но это же блять не серьезно. Есть какие нибудь решения?
380 1106862
>>106856
Запускаешь бинаргик на чистой виртуальной машине и добавляешь по одной запрашиваемве библиотеки. По-другому никак.
381 1106863
>>106856
$QTDIR/bin/windeployqt.exe
382 1106865
>>106863
Хуя до чего техника дошла.
image.png106 Кб, 1093x402
383 1106904
Посоны, раньше писал на нормальных языках, сейчас решил изучить С++, читаю книжки из шапки, вот в одной из книг смущает строка пикрелейтед - n < hexdigits.size(); Я так понимаю, каждую итерацию вызывается метод size()? Это на С++ нормально? Зачем каждый раз вызывать метод, если можно один раз его узнать?
384 1106912
>>106904
Сейчас компиляторы умные и сами вынесут результат метода из цикла если в нем вызывались только константные методы, ну так то да такую хуйню писать это плохой тон.
385 1106924
>>106904

> Зачем каждый раз вызывать метод, если можно один раз его узнать?


Затем, чтобы код был читаем. Ты ещё спросил "зачем цин>> каждый раз вызывать" (вызов которого на порядок затратнее). Сайз - это метод, который целиком определён в хедере, так что компилятор будет инлайнить его, если ты не запретишь, так что от вызова метода объекта, сохранённого на стеке, вообще нихуя не остаётся - ни передачи указателя, ни джампа, нихуя, так как функция size() - это только обращение к переменной. Уберёшь флаг оптимизации - вызов появляется.
https://godbolt.org/g/Co8q7N
https://godbolt.org/g/JVCPNd
Что там за нормальные языки у тебя были, лол?
386 1106946
>>106924

>Что там за нормальные языки у тебя были, лол?


Те, в которых не надо писать лишние скобочки рядом с константами или свойствами?
387 1106953
>>099142 (OP)
Анон, есть такой класс для расчета зарплаты сотрудника: https://ideone.com/LLLzKF

Не лучше ли следовать принципу единой ответственности и выделить весь код, отвечающие за расчет зарплаты, в отдельный класс Salary? Для разных типов сотрудников зарплата рассчитывается по-разному, но формулы допускают обобщение.
388 1106956
Котяры помогите нубу. Есть допустим указатель int *a = new int[10];
Я могу получить адрес этого указателя: cout << &a;
Но что за число я получаю когда ввожу cout << a? Без звездчоки. Там тоже какое-то число шестнадцатиричное, но куда оно указывает?
389 1106960
>>100967
Прочёл как Степан.
390 1106998
>>106956
Сам же написал уже всё.
a - указатель, как ты сам и написал. Он указывает на первый из твоих десяти int. &a - адрес указателя а, то есть оно указывает на а.

&a -> a -> int[10]
Реально в памяти существуют только а - явная переменная типа int* и int[10] - выделенная при помощи new память.
391 1107001
>>106956
&a - адрес переменной a в памятьи
a - адрес, на который указывает указатель a, то есть адрес массива int[10] в куче памяти.
392 1107004
>>106953
Мне кажется, логичнее оставить в классе, только сделать функцию виртуальной, чтобы можно было для каждого дочернего класса вызывать свою версию getBaseRate();
393 1107021
>>107004

>getBaseRate();


Для всех одинаковая. Различие в том, что у Manager и Sales есть надбавка за подчиненных.
394 1107038
Почему статические методы считаются злом? Как писать без них?
395 1107042
>>107001
спасибо анон
396 1107051
>>107004

>Мне кажется, логичнее оставить в классе


Ну хорошо. А как пишут юнит-тесты для приватных методов?
397 1107062
>>107051
Унаследуйся от класса и импортируй все методы в публичную область видимости с использованием using, или сделай объект доступа к методам касса через friend или #define private public лол
Screenshot2017-12-1317-47-58.png77 Кб, 742x669
398 1107068
Есть B+ дерево, которое в общем выглядит как на пике. Вопрос, нужно ли писать конструкторы для InnerNode и LeafNode и прописывать в них new для выделения памяти под масссивы (тогда и соответствующий деструктор нужен) или можно так оставить? Просто оно и так компилируется, хотя я подозреваю, что если в DEGREE передавать переменную, то оно не должно так просто заработать. Как лучше всего выделять память по массивы в структурах?
399 1107074
>>107038
ООП
О
П
400 1107076
>>106863
Билять анон спасибо! Ты вернул мне мотивацию изучать Qt.
401 1107080
>>107038
Лень расписывать, ну короч считай так: объект-бог это всегда плохо, потому что у него много связей с остальными объедками, и если что-то поменяется, придется разгребать весь этот фарш, вместо четкой иерархии объектов. Второй момент это скрытое состояние, которое наверняка где-то неявно будет меняться при вызовах. А если хранить состояние в статических переменных, можно нарваться на то, что они могут инициализироваться в произвольном порядке.
402 1107083
>>107038

>Почему статические методы считаются злом?


Потому что есть свободные функции.

> Как писать без них?


Замени на свободные функции.
403 1107087
>>107083
Святая толстота.
404 1107111
>>107087
Ты просто ООП-сектант. А free functions — это best practices.
Читай, быдло http://www.drdobbs.com/cpp/how-non-member-functions-improve-encapsu/184401197
405 1107120
>>107111
Ну ок, подменяем класс на неймспейс.
406 1107129
>>107120
Нахуя вообще нужны классы, когда есть неймспейсы? Ведь класс это просто неймспейс+тип.
407 1107134
>>107120
>>107129
Сектанты, классы могут быть шаблонными, а неймспейсы — нет.
408 1107141
>>107134
Навернуть макросов или как там в Кьютии, препроцессор какой.
409 1107142
>>107141
Наверни говнеца лучше.
410 1107154
>>106946
Какими ещё свойствами? Ты обдолбался?

>лишние скобочки рядом с константами


штоблядь
>>107068

> (тогда и соответствующий деструктор нужен)


shared_ptr

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


Прочитай определение шаблона.
>>107129
Хочу пять одинаковых неймспессов в рантайме. Надо создать пять процессов?
411 1107156
>>107154

>Какими ещё свойствами?


Такими, какими было бы поле size в нормальном языке.

>писать на каждый() чих() скобочки()


>читаемо

412 1107162
>>107156

>size


>константа


Микроконтроллеропидор закукарекал.
413 1107257
>>107154

>shared_ptr


Почитал про него. Нормальная тема, спасибо.

>Прочитай определение шаблона


Да, уже успел глянуть. Знатно опозорился. Решил итого не трахаться с динамичсеской памятью, всё равно всего лишь курсач.
414 1107432
@
УСТРОИЛСЯ В НОВУЮ КОНТОРУ
@
КУЧА ЛЕГАСИ КРУГОМ
@
C++11 - НЕ, НЕ СЛЫШАЛИ
@
СТИЛЬ НЕ ЕДИНООБРАЗНЫЙ, КУЧА ПЛАТФОРМЕННОГО КОДА ТОРЧИТ НАРУЖУ
@
ВЕДУЩИЙ ПРОГРАММИСТ ГОВНОКОДЕР
415 1107433
>>107432
@
ПЫТАЕТСЯ ДОКАЗАТЬ ТЕБЕ, ЧТО ДЕСТРУКТОРЫ ЧЛЕНОВ-ДАННЫХ ВЫЗЫВАЮТСЯ В РАНДОМНОМ ПОРЯДКЕ
416 1107438
>>107433
@
не знает про rvalue, auto, array


Кстати, где можно нажраться всякой теорией алгоритмов кроме дорогих книг Кнута?
417 1107441
А ещё бугурт скажу.
Мне тут на днях сказали, что c++ это теперь low-level язык, так как есть божественный Ruby, python!

@
ПИШЕШЬ КОД НА ++
@
ПЫТАЕШЬСЯ ДОКАЗАТЬ ЧТО ОН БЕЗОПАСНЕЕ
@
ГОВОРЯТ ЧТО НИХУЯ, ТАК КАК СТРОЧЕК БОЛЬШЕ!
418 1107449
>>107438
Я по седжвику изучал. Объявняет сжато и без лишней патематики. Кнута трудно читать, как по мне.
419 1107450
>>107449
А по цене как? Я просто заебусь его в pdf читать.
Томик Кнута 3к примерно.
420 1107455
>>107450
хз, там особо не надо зачитываться, лучше с собой тетрадку иметь, чтобы представлять как это "в пространстве". Если бы без тетрадки сидел, ебанулся бы думать, как patricia дерево работает.А так с PDF читал.
421 1107478
Аноны, я вкатился недавно в программирование, но так и не понял смысл ссылок. Зачем они нужны?
422 1107482
>>107478
Вкратце, чтобы не трахаться с указателями, когда в этом нет нужды. В анлийской википедии неплохо описаны отличия ссылок от указателей.
423 1107484
>>107482
Обоссыте меня, но какой смысл в указателях?
424 1107486
>>107478
Чтобы не пользоваться указателями
425 1107487
>>107441
@
СТАТИЧЕСКАЯ ТИПИЗАЦИЯ? У МЕНЯ ИЗЗА НЕЁ НЕ КОПМИЛИЯЕТ, ЗАЧЕМ ОНА?
>>107478
С точки зрения приципа работы - отличий от указателя нет.
С точки зрения C++: передать указатель на временное значение нельзя, а передать временное значение по конст-ссылке или рвалью-ссылке можно. Сдвигать ссылку нельзя, а указатель можно.
То есть, ссылки в C++ нужны для улучшения читаемости кода (меньше стрелок, звёзд и амперсандов), расширения сферы применения функций, соблюдения безопасности кода (но отхуячить ногу повисшей ссылкой ты всё равно сможешь, так что тут бабка надвое сказала. Пока перегрузку "оператор." не завезли, умных ссылок не будет, а без них и безопасности нормальной не будет).
>>107484
лиспоблядь закукарекала
426 1107488
>>107486
Ок... Можно как-то без них программировать нормально?
427 1107490
>>107488
Без кого?

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

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

Без ссылок и указателей - да, это будет неоптимально и рано или поздно ты упрешься в ограничения размера стека, но это вроде как настроить можно
428 1107491
>>107488
на другом языке
429 1107492
>>107488
на другом языке
430 1107493
>>107488
например, чтобы не засирать память.
Ну, ты в любом случае со временем поймёшь.
И например есть такая весёлая тема, что ты делаешь указатель на переменную в функции, ретурнишь, а оно возвращает хуй, так как функция умерла
431 1107494
>>107488
Конечно можно, только копирований будет дохуя (инбифо в моих задачах не будет) и производительность просядет. Чтобы функциональный код быстро работал (а код без указателей и ссылок - это чаще всего код в функциональном стиле), компиляторы и интерпретаторы функциональных языков используют кучу трюков, которые эквивалентны работе с указателями в плюсах, но разница всё равно есть. Даже в плюсах есть трюки для устранения лишнего копирования.
432 1107499
>>107484
Представь себе, что ты рисуешь кнопку с картинкой, что быстрее при вызове нескольких функций, копировать всю 10мегабайтную картинку или передавать только один указатель на память?
image.png127 Кб, 1024x768
433 1107545
Я студент, вчера писал лабу смысл задачи был такой:
пользователь вводит массив чисел а дальше с ними происходят некие действия и затем выводится массив. Только массив для этого должен быть динамический. Я решил не спрашивать у пользователя какой массив он хочет, а решил увеличивать массив путём копирования во 2 удаления, 1 созданием, но уже увеличенным в объёме, копирования в 1 , удалением 2 что бы в следующий раз если пользователь захочет увеличить объём, то
опять создатся 2 массив увеличинный и произойдёт всё что я описал выше. Но там возникла проблемма массивы не копировались друг в друга. Я решил написать программу дома и здесь тоже возникла проблема , но уже другая.Выдаёт вызвано исключение: нарушение доступа для записи.
arr_one было 0x1118239. Вот я пришёл сюда за помощью. Подскажите пожалуйста что я не так сделал.
Вот код:
https://ideone.com/0Y8IU1
434 1107560
>>107545
Дождись когда будете на лекциях проходить стандартную библиотеку C++ - STL. Там уже есть готовые динамические массивы vector. Расширение массива на один элемент решается в одну строчку:

// пустой массив целых чисел
vector<int> vv; // сейчас размер 0
// добавить элемент
vv.push_back(22); // сейчас размер 1
435 1107569
>>107560
Ну а моя затея чем плоха?
436 1107575
>>107569
Плоха она тем, что происходит ОЧЕНЬ много бессмысленных выделений-освобождений памяти и операций копирования. А если по твоему коду - то меня очень напрягло то, что в одной функции у тебя ДВА раза объявляется переменная с одним и тем же именем int *arr_one. Если ты удалил область памяти, на которую указывал arr_one, то это не значит что сам указатель пропал.
437 1107576
>>107545
Off by 1 ошибка.
Ну прогони в голове у себя одну итерацию цикла. Индексы в массивах идут с нуля, выделаешь память ты индексом. new int[1] это ровно 1 инт
438 1107586
>>107545
Ну и ты 2 раза копируешь зачем-то, можно же один раз копировать.
0. у тебя есть массив
1. выделяешь память под новый массив (с новым размером)
2. копируешь из старого массива в новый и освобождаешь память старого массива
3. заменяешь указатель на старый массив указателем на новый.

Кроме того, на практике это реализуется хитрее: когда структура данных растёт, но новый массив можно делать размером не размер_старого + 1, а размер_старого + 1/2 * размер_старого, например (увеличивать размер только когда в старом место кончилось). Это так реализовано везде и каждый раз не нужно выделять память и копировать (обе операции сравнительно медленны)
439 1107600
>>107545
Если хочешь делать динамической, быстро расширяемое хранилище то делай что-то типа односвязного списка.
https://ideone.com/OGrqrF
440 1107698
>>099142 (OP)
Анон, как правильно определять константы типа double, используемые в классе?
441 1107700
>>107586
ну так я копирую во временное хранилеще. Что бы увеличить старое , сохранить в него а затем удалить временное хранилеще. Не знаю как тебе, но мне эта идея кажется очень логичной.
442 1107703
>>107700
То есть два раза копируешь?
443 1107704
444 1107706
>>107698
Тащемта ничего сложного нет. Просто объявляешь и определяешь.
445 1107741
>>107698
Хочешь const (инициализируется только в конструкторе), хочешь - static constexpr.
>>107704
Нахуя.
1513351633511.jpg64 Кб, 1280x719
446 1108034
Суп. Пикрил проблема. Она меня уже заебала. Качал разные версии, щелкал по настройкам по ссылке, гуглил, нихуя не помогло. Как исправить?
447 1108047
>>108034
Переходи на MSVS
448 1108049
>>108034
первый раз такое вижу
кутгосподин
449 1108058
>>108047
Лол, а походу я угадал пальцем в небо
https://forum.qt.io/topic/66109/missing-kits
И анон, пользуйся инглишем хотя бы для поиска сообщений об ошипках, первая ссылка же про qt missing kits
450 1108059
>>108047

> Переходи на MSVS


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

>>108049
Ну охуеть.
451 1108061
>>108058

>Лол, а походу я угадал пальцем в небо


ставить кутиде чтобы кодить на мспараше? охлол
452 1108075
>>108058

> https://forum.qt.io/topic/66109/missing-kits


Не понял. Мне нужно пути к проектам сделать без пробелов и спецсимволов? Это не помогло. К тому же, он написал что у него работает Qt Widget, а у меня на пике именно он. Что тогда?
453 1108081
>>108061
Наоборот же, там написано ставить студию и подключать компилер к твоей кьюти.
454 1108082
>>108034
Собственно, даже если при скачивании дистрибутива с креактором и запуска креактора из того бистрибутива такая проблема, то нужно сделать следующее:
- сделать то, что написано над пустым списком
- написать багрепорт
>>108075

>Мне нужно пути к проектам сделать без пробелов и спецсимволов?


И пути к файлам КуТэ тоже.
455 1108083
>>108081

> ставить студию и подключать компилер к твоей кьюти


так, а зачем пик с креатора? он к либам никакого отношения не имеет

анон же хочет компилить из креатора конпелаятором мс?
456 1108084
>>108081
Кому ты пиздишь? От студии только компилятор нужен, взять его можно либо из студии, либо из SDK соотв. версии.
457 1108085
>>108084
Это ровно то что я и написал.
458 1108087
>>108082

> - сделать то, что написано над пустым списком


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

> - написать багрепорт


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

> И пути к файлам КуТэ тоже.


Да вроде там все без пробелов. D:\Programs\Qt.
Пиздец какой-то, короче. Какие альтернативы для Qt? Такие, чтобы код был мой, а не высираемый автоматически.
459 1108088
>>108083
Не знаю о чем ты, я кинул ссыль на тред, там английским по белому написано:
In a nutshell, a "kit" is a combination of one compiler + one version of Qt that are compatible. Note that a "kit" is a concept specific to Qt Creator.
460 1108089
>>108059

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


>



Ты настолько необучаемый, что не можешь создать пустой проект?
461 1108099
>>108034
Переходи на линукс, сможешь выбрать гцц. Иначе ебись со студией или мингв.
462 1108131
>>108087

>Какой багрепорт?


В компанию Qt, блядь. Не должно быть так, что ты скачал дистрибутив, поставил, запустил, и не можешь программу собрать, это баг.
Я только одно могу предположить: ты скачал дистрибутив для MinGW.
>>108089
А ты попробуй сам создать пустой проект, придурок, когда от тебя требуют выбрать кит и отключают кнопку "далее".
463 1108134
>>108131

>Я только одно могу предположить: ты скачал дистрибутив для MinGW.


Но даже в этом случае у тебя будет хотя бы кит для мингв в списке, если ты его не удалил.
464 1108141
>>108131

>MinGW


все там заебись ставится, просто школотрон хочет привентить туда пидерскийканпилятор
465 1108184
>>108141
Ну дык так тоже можно и должно работать, сам так делал. Если не работает - вперёд в Жиру Куты.
466 1108448
Аноны, а можно сделать так, чтобы переменные распологались в памяти без пробелов?
467 1108456
>>108448
Какие именно переменные-то? Зачем?
pragma pack для структур + свой менеджер памяти ничего не выравнивающий, только по перформансу ты обосрёшься.
Безымянный.png68 Кб, 1920x1040
468 1108458
При создании проекта появляется вот такая хуйня. Сбрасывал настройки через /resetuserdata - нихуя не дало. До этого пытался поставить библиотеку OpenCV. Что я сделал не так?
469 1108469
>>108458
Ты походу даже стандартные пути заголовков сбил, вася.
Совету изучить CMake и делать проект для спермостудии через него (куда проще и не будешь привязываться к одной платформе). Всё равно его используют все, и тебе так или иначе придётся.
470 1108481
>>108469
И что мне сейчас делать? Как мне эти стандартные пути вернуть? я их блять даже не трогал
471 1108729
>>108481
Проект новый создать, очевидно. И ещё очевидно что делать его стоит сразу на cmake как советовал антоша выше.
472 1108848
>>108131

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


Я же говорю, я качал разные версии, ты хочешь сказать это именно на моей пеке оно?

> Я только одно могу предположить: ты скачал дистрибутив для MinGW.


Да я блядж много чего качал, и с разными компонентами(с начала дефолтная папка tools, потом еще выбирал дополнительно верхние папки). А с чего вы вообще взяли, что я туда компилятор из студии присобачить хочу? Моя цель - наоборот от нее отгородиться. Я когда древнюю версию Qt скачивал, даже отдельно компилятор mingw туда скачал.
473 1108872
>>099142 (OP)
Есть вопрос ребята. Всегда ли 'a' = 'A', и всегда ли 'a' < 'b'?
474 1108874
>>108872
Нет, да.
475 1108876
>>108874
А можно объяснить, почему?
476 1108883
>>108876
Открой таблицу символов ASCII. Тип char в Си это просто интерпретация численного кода в букву или символ в более общем случае.
Поэтому 'a' непросто не равно 'A', а никогда не равно. Потому что 'а' имеет код 97, в то время как 'A' имеет код 65.
Твой вопрос сводится к вопросу, пацаны а 65 равно 97 ?

Касательно 'a' < 'b', тоже самое. Ты можешь пойти дальше и задать вопрос, а почему, допустим "a" < "aa", ответ: лексикографическое сравнение. Сравнение происходит в соответствии с цифровой комбинацией символов и понятно, что условное 97 будет меньше чем комбинация двух а.

другой анон
477 1108884
>>108876
Потому что 'A' – это 0x41, а 'a' – 0x61 поэтому 'A' =/= 'a'.
'b' – это 0x62, 0x61 < 0x62 всегда выполняется.
478 1108888
>>108884
>>108883
Cпасибо ребзи!
479 1108903
>>108883
>>108884
Еще 1 вопрос знатокам. Почему в VS если задать: char x1 = 'a', x2 = 'A' и сравнить их через if, то они равны?
480 1108935
>>108903
Сравниваешь как =, заместо ==, лол? Нет идей.
481 1108940
>>108903
>>108935

Присоединяюсь к вопросу, как происходит сравнение ?

если что то вида :

char x1 = 'a';
char x2 = 'A';

if(x1 = x2)
конечно выдаст true

Что происходит:
ты присваиваешь х1 значение х2, потом х2 отправляется в оператор if , где преобраз. к типу bool, если х2 не равно 0, то ответ будет true.

if (x1 == x2) то все будет в порядке, выдаст false как и должно быть.

Стоит почитать/ освежить в памяти главу про условные операторы. Посмотри, что понравится в книгах из шапки.
С++ и Си не те языки, которые можно выучить шароебясь по форумам и задавая вопросы.
482 1108941
>>108940
Естественно х1 отправляется в оператор if, самофикс
483 1108965
>>108940
>>108935
да, через = сравнивал, спасибо за разъяснение. Добра вам.
484 1109010
>>108883
>>108884
Стандарт не гарантирует, что basics character set это ASCII.

Что он гарантирует — что '0', '1', ..., '9' идут подря, так что
d == 'd' - '0'
для d = 0, 1, ..., 9 всегда выполняется, в любом basic character set.
485 1109160
>>108848
Спутал тебя с кем-то из треда.
>>108872

>Всегда ли 'a' == 'A'


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

>и всегда ли 'a' < 'b'?


Скорее всего ты не найдёшь ни одной платформы, на которой это было бы не так, но C++ такое соответствие не задаёт.
>>109010

>Что он гарантирует — что '0', '1', ..., '9' идут подря


Ссылку дашь?
486 1109163
>>108448
new с размещением
487 1109229
Поясните дауну, в чем разница между обычными объектами, и new объектами? Человеческим языком. Все говорят, что это типа "выделение памяти". Блядь, а обычная переменная это не выделение памяти?
488 1109233
>>109229
аналог malloc
489 1109243
>>109229
Обычный объект или обычные переменные на неком стеке размещаются. Во-первых, размер стека ограничен, и он не сильно шибко большой, по умолчанию. Во-вторых, они там сами занимают и освобождают память. А через new ты можешь выделять сколько угодно памяти и по своей воле по мере необходимости в произвольном порядке её освобождать.


А вот чего realloc не завезли - понять не могу. Он же быстрее работает. Если кусок выделенной памяти был больше запрошенной, то он не будет перевыделять память вообще. А через new-delete придётся в любом случае выделять временный кусок и копировать какой-то мусор. И потому приходится делать костыли, что размер вектора удваивается при добавлении элементов, чтоб менеджер памяти не мучить, так что программе для работы требуется ощутимо больше памяти, чем ей реально необходимо.
490 1109291
Занялся изучением C и вразу же возникла проблема. При выполнении программы вывод отстаёт ровно на один цикл. Я просто не понимаю в чём проблема. Разхясните для дауна пожалуйста

[code]#include <stdio.h>
#include <stdlib.h>

int main() {
int A = 0, Num = 312, i = 0;
srand(58);
Num = 0 + rand() %1000;
printf("enter num\r\n");
scanf("%d\n",&A);

for (;;) {

if (A > Num) {
printf("Your number is bigger then %d\r\n", Num);
}
if (A < Num){
printf("Your number is lesser then %d\r\n", Num);
}
if (A == Num){
printf("You win!");
return 0;
}
}

}[/code]
490 1109291
Занялся изучением C и вразу же возникла проблема. При выполнении программы вывод отстаёт ровно на один цикл. Я просто не понимаю в чём проблема. Разхясните для дауна пожалуйста

[code]#include <stdio.h>
#include <stdlib.h>

int main() {
int A = 0, Num = 312, i = 0;
srand(58);
Num = 0 + rand() %1000;
printf("enter num\r\n");
scanf("%d\n",&A);

for (;;) {

if (A > Num) {
printf("Your number is bigger then %d\r\n", Num);
}
if (A < Num){
printf("Your number is lesser then %d\r\n", Num);
}
if (A == Num){
printf("You win!");
return 0;
}
}

}[/code]
491 1109300
>>109291

> Занялся изучением C


ну так и проследуй в С-петушатню-треадх
492 1109305
>>109300
Там молчат
493 1109310
>>109243
realloc тоже небыстр, и реаллок делают так же - увеличивают размер памяти в геометрической прогрессии.
494 1109313
>>109291
Это нерабочий код, так как ты считываешь число лишь однажды. Скинь работающий код на ideone.
495 1109315
>>109313
Я считываю число каждый раз как по новой захожу в цикл
https://ideone.com/xK5W3S
496 1109321
>>109310
Угу. Но если самому писать самый тупой массив, то через new-delete он будет тормознее, так как он всегда в любом случае дублирует массив и производит копирование. Realloc же где-то внутри сохраняет размер выделенного куска, и без нужны не копирует.

Не знаю как там в подробностях работает выделение памяти, кучи и прочее но с дивана выглядит так, что можно конечно это сделать за пределами менеджера памяти вручную, так что new-delete код будет работать по тому же принципу, но в таком случае размер выделенного куска хранится как на уровне менеджера, так и на уровне программы.
А если же такая функция есть в самом менеджере (что было бы весьма логично, так как у него и так есть доступ к размерам выделенных кусков), то вот всего этого можно было бы избежать без лишних функций обратной связи возвращающих размер выделенных кусков, лишних переменных хранящих эти размеры или ещё чего-либо в этом духе.
497 1109331
>>109321
А если не изобретать велосипед и взять класс vector из стандартной еблеотеки — он будет работать и ещё быстрее! Чудны дела твои хосспаде...
498 1109332
>>099142 (OP)
Как в visual studio 2005 объявить строковую переменную, если на string x; оно начинает ругаться?
499 1109333
>>109315
Кому ты пиздишь? Где там отставание?
https://ideone.com/lGWN1d
На входе там три числа, результат в точности соответствует вводу.
>>109321
Хуиту несёшь. Посыл не понял.

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


new-delete никак не помогает тебе избежать хранения рамера выделенной памяти в менеджере, так как delete не принимает на вход размер массива. Так что если ты захочешь сделать интрузивный конструктор - в котором будет эксклюзивно хранится размер полученной памяти - то тебе придётся делать это без new/delete, и в итоге ты получишь зонный аллокатор, так как более экономного способа учёта памяти нет (оверхед - по 1 биту на каждую единицу памяти), тогда ты будешь хранить размеры памяти в объектах, а таблицы выделения в менеджере (если ты хочешь хоть какой-то абстракции менеджера от конструктора). Любые другие варианты обязательно повлекут за собой указатели/индексы либо в сторону объектов, либо в сторону менеджера.

Отсутствие аналога реаллока для new/delete вызвано тем, что тогда придётся иметь шестой конструктор - конструктор для изменения адреса объекта. Его просто не придумали во времена первого стандарта, так что живём без него и без ресайза. И НЕТ, это не связано с тем, что new/delete не хранят размеры, они их хранят.
500 1109338
>>109331
Вектор может использовать malloc/realloc только для trivially-copyable-типов. Указатели на объекты в общем случае могут где-то храниться, и если в случае с копированием в массив большего размера этим занимается мув-конструктор, то для изменения адреса объекта конструктора просто нет, языком не предусмотрено.
>>109332
Матом ругается?
501 1109339
>>109333

>new-delete никак не помогает тебе избежать хранения рамера выделенной памяти в менеджере


Вот потому их и хейчу помаленьку, что они там всё хранят, а толку никакого.
Забей, никакого посыла, просто ворчу. Мол от менеджера памяти требуется лишь работа с памятью, а эти автоматические конструкторы new-delete не нужны.
502 1109341
>>109333

>И НЕТ, это не связано с тем, что new/delete не хранят размеры, они их хранят.


Но информацию о том, где располагается переменная с указателем, не хранят.
503 1109351
>>109339
Да ладно, в С++ Смысла особого в realloc нет. Можешь попробовать написать аналог вектора использующего realloc/malloc/free вместо new/delete - не забудь только поделиться результатами
504 1109355
>>109351
Скорее даже так - идеологически правильный realloc в С++ - это std::vector. Отдельный realloc у плюсового аллокатор не нужен.
505 1109367
>>109341
Какая ещё переменная с указателем, блядь?
>>109355
С таким же успехом можно сказать, что реаллока для не trivially-copyable-типов нет. Убери свой вектор обратно в штаны, долбоёб.
506 1109368
>>109351
Ага, и пусть не забудет про шестой конструктор.
507 1109370
Точнее, не про шестой конструктор, а про шестой метод в дополнение к пяти (конструктор, - копирования, - перемещения, деструктор и ещё что-то пятое, забыл).
508 1109407
>>109370
Если ты про методы ,которые компилятор генерирует по умолчанию, если они требуются, то их 7.

1. Конструктор по умолчанию.
2. Дестр по умолчанию.
3. Конструктор копирования
4. Операция присваивания.
5. операция взятия адреса (this)
6. Конструктор переноса.
7. операция присваивания с переносом
509 1109411
>>109407
Да, я про это, а точнее - про "правило пяти".
510 1109496
А можно из под линукс писать приложение для виндовс?
511 1109505
>>109496
Пиши портабл код и он будет собираться везде.
Если тебе компилятор нужен, то это MinGW.
5656565.png25 Кб, 1202x410
512 1109513
Анон, а как лучше проверять время на соответствие?

Есть программа, которая каждую секунду сверяет текущее время с заданым интервалом и если текущее время входит в интервал, то выполняется работа.
Но возникли проблемы.
Время задаётся в формате (HH:MM) для начальной точки и так же для конечной и соответственно сначала получаются интервалы или от beginTime->HH до endTime->HH или от beginTime->HH до 0 и от 0 до endTime->HH. Т.е. может быть время от 07:42 до 12:22 или от 12:27 до 02:26 следующего дня
Затем проводится та же проверка на минуты. Затем проводится проверка currentTime->HH на соответствие интервалу. Затем проводится проверка currentTime->MM на соответствие интервалу.
Всё это превращается в безумную лестницу из if...else ветвлений, что делает код абсолютно нечитаемым.

Есть ли какой-то более адекватный вариант сравнения времени?
513 1109519
>>109513
Конвертируешь время в С++-время (заголовок chrono)
Пишешь
if(время2<время1) время2+= сутки

А дальше используешь функции сравнения времени из chrono.
http://en.cppreference.com/w/cpp/chrono/time_point
514 1109522
>>109519
Двачую. Chrono единственно верный путь.
515 1109525
>>109513

>время2+= сутки


А тут не возникнет проблем при переходе 31(30)(29)->1?
516 1109526
517 1109565
>>109525
Запиленная поддержка времени именно для этого и нужна. Будут ли там коррекционные секунды учитываться - сам нагугли, если хочешь.
518 1109567
И если ты не понял, когда я говорю "сутки", я имею ввиду std::duration с соотв. значением.
http://en.cppreference.com/w/cpp/chrono/duration
12e21e.png29 Кб, 1094x652
519 1109580
>>109567
>>109519
>>109522
Большое спасибо. У меня получилось как-то так.
Сначала проверяю больше ли начальное время конечного.
Если начальное время больше, то тогда работа производится всегда вне периода начало-конец.
Если начальное время меньше, то работа производится внутри периода начало-конец.
520 1109635
>>109580
Всё-таки лучше бы сутки прибавлял по условию, тогда было бы два ифа вместо трёх.
521 1109649
>>109635
Сутки не учитывают ситуацию вида
Сейчас 12:00. Процесс начинается в 16:00 а заканчивается в 13:00.
С сутками процесс сработает завтра, но не сработает сегодня. Да такой сценарий маловероятен, но, как говорится, а хули?
522 1109661
>>109580
Мне кажется это глупо немного, почему бы просто не упорядочить сразу begin и end.
523 1109681
>>109649

>С сутками процесс сработает завтра, но не сработает сегодня.


1) У тебя процесс должен в прошлом остановиться, штоле?
2) То, что ты не хочешь написать свой код правильно, не означает то, что это невозможно. Ссылку на документацию я уже дал тебе.
2) Нахуя тебе from_time_t, если ты можешь получить то же самое с помощью ::now и прочих функций?
3) А ещё ты про auto забыл.
123321.png19 Кб, 744x622
524 1109705
>>109681

>1) У тебя процесс должен в прошлом остановиться, штоле?


В настоящем же.
Вот есть период времени от 15:00 до 09:00 когда нужно работать.
Если прибавить сутки к конечному времени, то работа будет производиться с 15:00 этого дня до 09:00 следующего дня.
Но если мы сейчас находимся в точке времени 08:00, то эта логика не сработает и работа не начнётся, хотя 08:00 входит в интервал от 15:00 до 09:00 но сегодняшнего дня.

>2) Нахуя тебе from_time_t, если ты можешь получить то же самое с помощью ::now и прочих функций?


Инерция мышления - раньше же я пытался через <time.h> решить этот вопрос.

>3) А ещё ты про auto забыл.


Ага.
Подправил вобщем.
525 1109715
>>109705

>то эта логика не сработает


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

А ещё я не могу понять, как твои макароны работают. time_t - это абсолютное время, а не суточное, так что ты уже где-то что-то вычисляешь, просто мне не показываешь. Ебись сам, короч. :3
526 1109720
>>109715

>Логика есть только одна, и ты не можешь в неё.


Первый пик специально для тебя.

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


А если перевод системных часов?

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


А-то. На втором пике показано откуда всё. Я понимаю как сконструировать time_point на базе time_t с заданными параметрами. Но как сконструировать правильный time_point на базе имеющихся std::string?
527 1109721
>>109720
Алсо, сейчас понял что не захватываю следующий день.
528 1109726
>>109720
Теперь более-менее понятно. Тогда сделать меньше сравнений не получится. Про смену времени - ты прав.

Ну и ещё код вида if(cond ){ return true;} это интересно само по себе. Писать надо return cond вместо этого.
>>109721
В коде из >>109705-то? Я на условия только сецчас посмотрел, они у тебя там ебанутые какие-то, присмотрись.
529 1109750
Помогите, пожалуйста! Что не так с функцией, которая должна нод двух чисел находить?

int nod (int n, int m) {

if ( m !=0 && n!=0) {
if (m>n) {
for (int i=2; i<m; i++) {
if( m % i == 0 && n%i== 0) return i; }}
else if (m<n) {
for (int i=2; i<n; i++) {
if( m % i == 0 && n%i== 0) return i; } }

else if (m==0) return n;
else if (n==0) return m;
}
}
Безымянный.png5 Кб, 434x224
530 1109752
>>109750
Блядь, я умственно отсталый
531 1109763
>>109752
>>109750
Я тупой и все понял наконец! Вопрос снимается
532 1109769
>>109752

>проверяет четность целочисленной переменной через сравнение остатка от деления


Ты не просто умственно отсталый, ты дегенерат – пиздуй на JS писать отсюда
533 1109785
Интересует вопрос: если я вообще хуёво общаюсь с математикой, сильно ли мне это помешает писать на с++?
534 1109790
>>109785
Миллион раз было сказано - математика нахуй не сдалась если ты не программист 3Д графики и не какой-нибудь ЧСВшный мудак с ЗП в 80к из яндекса.
535 1109819
>>109790
Благодарю, а расскажи пожалуйста в каких областях с++ наиболее эффективен, прост геймдев в беларуси невозможен, совсем, а других и не знаю
536 1109831
>>109819

>прост геймдев в беларуси невозможен


Крч пили помесь танков и майнкрафта.
537 1109843
Ну, с утра это стало выглядеть так. В конструкторе, oldday = 100
Идеи, предложения?
538 1109860
>>109769
Где ты там проверку чётности увидел, лолик?
>>109843
Прочти последний ответ тебе, он до сих пор актуален.
77777777.png21 Кб, 804x628
539 1109869
>>109860
Return поправил. А что ты имеешь в виду под

>условия только сецчас посмотрел, они у тебя там ебанутые какие-то, присмотрись


?
Условия мне кажутся понятными
if (Начало > конца) {
Проверка на нахождение текущего момента до или после обозначенного периода
} else {
Проверка на нахождение текущего момента внутри обозначенного периода
}
540 1109878
>>109869
Я уж не знаю, что полезнее: разжевать всё это для тебя сейчас, или сделать так, чтобы ты сам напоролся.

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

Сравни эти ждве таблицы, и ты увидишь, что ты родил пиздец.
541 1109881
>>109831
ага в соло, с бюджетом степуха = 1к
76767676767.png7 Кб, 572x256
542 1109912
>>109878

>Сравни эти ждве таблицы, и ты увидишь, что ты родил пиздец.


Сначала я подумал что ты меня троллируешь, но потом я понял, что ты видимо не учитываешь условие
if (begintp > endtp)
которое производит проверку на то какой из *tp стоит первым
И соответственно, если endtp по временной шкале после begintp, то мы начинаем работу в первой точке - begintp и заканчиваем во второй точке - endtp.
А если endtp по временной шкале стоит до begintp, то мы начинаем работу в любой момент до первой точки - endtp и после второй точки - begintp.
Можно конечно переписать код пикрилейтед, и это наверное будет правильно. Но разве это ошибка?
543 1109924
>>109912
Я всё учитываю, я умею читать. Когда будешь это дерьмо дебужить, вспомни меня, удачи.
ggggggggg.png22 Кб, 1320x392
544 1109928
>>109924
Ну я, к сожалению, тоже не телепат возможно ты имеешь в виду что нужно учитывать двое суток? Не нужно, при смене суток begintp и endtp тоже соответственно смещаются и код работает.
545 1109938
>>109928
О, всё, теперь допедрил. Да, всё верно.
return false; лишний только, он никогда не выполняется.
546 1109955
Анон,
по новому стандарту я вот так:
auto_ptr<int> p;
уже не могу писать?
auto_ptr больше не существует??
547 1109970
>>109955
Читай про shared_ptr и unique_ptr. auto_ptr признан кривой забагованной нинужно.
548 1109971
Анон, помоги с программой: В массиве В, содержащем 16 элементов, определить среднее геометрическое отрицательных элементов, расположенных между минимальным и максимальным элементами данного массива.
учусь на экономе, не понимаю нахуя нам программирование, никогда не изучал его, но допуск к зачету нужен.
549 1109975
>>109970

> unique_ptr.


эту тему тоже походу прикрыли.
550 1109998
>>109971
Пиздуй в ньюфаготред.
551 1109999
>>109971
А ещё тряси препода, блядь.
552 1110000
>>109975
Схуяли?
http://en.cppreference.com/w/cpp/memory/unique_ptr
Даже слова "deprecated" нигде нет.
sage 553 1110131
>>109971

>учусь на экономе, не понимаю нахуя нам программирование


Как же толсто.
run-fools15822340orig.jpeg35 Кб, 740x348
554 1110503
Перекатывайте, глупцы
555 1110567
556 1110749
>>109819
Различное системное программирование (Я писал прошивки для роутеров, сейчас пишу драйвер).

+Веб-бэкенды (Яндекс).
557 1110812
>>110749
ну вообще занимательно? или лучше выбрать другую сферу и другой язык? На самом деле язык вообще похуй, просто сферу ищу наиболее нормальную, вообще хз есть 4 года а на что их пустить не знаю.
558 1111011
>>110812
Сейчас работаю в конторе около 100 рыл, контора занимается разработкой программного обеспечения для промышленной автоматизации. Ебать тут легаси... Еб твою мать, но кроме этого моя жопа особенно горит от того, что нет общего стиля кода и каждый петух топчет, как хочет. Просто глаза покрываются кровью когда я смотрю на хэдер-онли класс в 5000 строк или "гармоничное" сочетание CamelCase с all_lowers_with_underscores. Или охуенный подход замешинвания private, public и protected в одну кучу.
Легаси - это пиздец. Хотя и платят 70к в моем мухосранске, но, блять, удовольствия работать с этим дерьмом никакого, увы...
559 1111052
>>110812
1110749-анон на связи. Я бы не рекомендовал. Вкатывайся в питон, веб, и прочую хуету. Денег плюс-минус столько же, зато возможностей и вакансий больше. С++ надо действительно любить, и без страданий в нем никуда. Как никак - самый сложный мейнстримовый язык из существующих
560 1111105
>>111052
ну я и думал в веб, потому что epam в городе только, но бля, там же и так дохера народу, куда мне то ещё лезть, там любая обезьяна в веб лезет, или не так? а плюсы какие то родные стали, вот когда делать нечего, на них алгоритмы смотрю, это точно пригодится)
561 1111321
>>100967
Присвой вэлью начальное значение 1))
zlVaaEoG400x400[1].jpg7 Кб, 400x400
562 1114283
Можно поинтересоваться у уважаемых господ, какую IDE рекомендуете?

Мнения вкатывальщиков менее 5 лет не учитываются.
563 1114323
>>114283
ту самую, которая у тебя на пике.
Мимо-профессиональный-С++-программист.
564 1114428
>>114323
подписку обязательно сразу покупать?
565 1114581
>>114428
Community Edition бесплатна для домашнего использования, и ее за глаза.
566 1114638
Объясните, почему куча материалов по машинному обучению внезапно на пистоне, и практически не вижу на быстром С++, как это вообще? Мб не там смотрю?
Тред утонул или удален.
Это копия, сохраненная 4 февраля 2018 года.

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

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