Главная Настройка Mobile Контакты NSFW Каталог Пожертвования Купить пасскод Pics Adult Pics API Архив Реквест доски Каталог стикеров Реклама
Доски


[Ответить в тред] Ответить в тред

Check this out!


[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 565 | 52 | 177
Назад Вниз Каталог Обновить

C++ #63 Аноним 27/11/17 Пнд 21:47:18  1099142  
cppyandexconfmi[...].png (41Кб, 770x270)
timeline.Funkti[...].png (22Кб, 952x454)
Вместо шапки — https://github.com/sosachbot/cppthreadhat/wiki
Ответы на все вопросы:
- http://en.cppreference.com/w/
- http://www.cplusplus.com/reference/
Прошлый:
- https://2ch.hk/pr/res/1085579.html
Аноним 28/11/17 Втр 01:32:37  1099275
Надеюсь на то, что concepts are adjectives таки протащат.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0791r0.pdf
Аноним 28/11/17 Втр 01:34:22  1099277
>>1099275
Хз, имхо надо уже делать третью надстройку, как в свое время кресты в си транслировались, пора что-то подобное на базе концептов пилить. Как есть выходит слишком сложная билеберда.
Аноним 28/11/17 Втр 01:46:14  1099282
>>1099277
Хуй с ним, гулять так гулять. Вангую, что в какой-то момент кто-нибудь форкнет и запилит поддержку нового диалекта в крупный компилятор, интересно будет.
Аноним 28/11/17 Втр 01:57:44  1099285
А С++17 няшный же
Аноним 28/11/17 Втр 01:59:20  1099287
>>1099285
Не, че в нем няшного? Разве что folding.
Аноним 28/11/17 Втр 02:14:06  1099292
Олсо, нахуй делать только string_view вместо какого-то более универсального решения для всех контейнеров? "Взгляд" же не только для строк нужен.
Аноним 28/11/17 Втр 02:50:31  1099302
>>1099292
типа такого?

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#SS-views

Аноним 28/11/17 Втр 07:25:11  1099344
>>1098993
Зависит от длины строки, а так по дефолту на стеке.
Аноним 28/11/17 Втр 07:44:56  1099351
Снимок.PNG (12Кб, 1008x151)
Так ли это?
Аноним 28/11/17 Втр 07:57:55  1099354
>>1099351
да
Аноним 28/11/17 Втр 10:02:15  1099388
Image 1.png (32Кб, 759x473)
Кто-то посоветовал, мол, сравни свою реализацию примитивных функций вроде "посчитать длину строки" с библиотечной реализацией.

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

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

_Check_return_
size_t __cdecl strlen(
_In_z_ char const* _Str
);
Что за _In_z_ ?
Причем это уже реализация, которая должна быть прямо в хедере, я нажал f12.
но я не вижу никакой реализации, только объявление
Аноним 28/11/17 Втр 10:12:21  1099392
Интересует разработка под VR и разработка десктоп приложений, подскажите как с этим справляется c++, есть ли вакансии и много ли их, рассматриваю не только Россию но и возможность фрилансить или вообще завестри трактор.
Слышал что плюсы не нужны и юзают только на заводах
Аноним 28/11/17 Втр 10:13:16  1099393
>>1099392
завести*
Аноним 28/11/17 Втр 11:06:02  1099410
>>1099388
Боже какой- же говнод пиздец.
За такое стрелять мало.
Аноним 28/11/17 Втр 11:23:07  1099415
>>1099302
Да, но только span не используется в STL, в этом разница.
>>1099344
Кому ты пиздишь? new создаёт объект на куче.
>>1099388
Не должна она быть в хедере, она должна быть в библиотеке языка, которая скомпилирована и линкуется. Смотри исходники: libcrt у GCC, crt у Visual Studio.
Аноним 28/11/17 Втр 11:55:54  1099422
strelen.PNG (68Кб, 596x1266)
>>1099388
стрлен там с байтоёбством еще тем
Аноним 28/11/17 Втр 12:00:07  1099425
>>1099415
а sso как же

https://blogs.msmvps.com/gdicanio/2016/11/17/the-small-string-optimization/
Аноним 28/11/17 Втр 12:05:45  1099430
>>1099410
Ты про левую часть картинки?
Аноним 28/11/17 Втр 12:10:13  1099432
Дядьки, модули-то опробовали? Я хуй ево знает, вроде в любом языке же используются, а тут как-то нетак смотрится лол
Аноним 28/11/17 Втр 12:11:27  1099433
>>1099415
>crt у Visual Studio.
И как её открыть?Или посмотреть
Аноним 28/11/17 Втр 12:12:19  1099434
>>1099430
Да. Хотя для микроговнософа это еще нормально.
Аноним 28/11/17 Втр 12:37:46  1099443
strlenasm.PNG (71Кб, 787x881)
>>1099433
Она вроде на асме под х86 где-то в недрах винды\студии\кита заебашена, поищи strlen.asm. Там чето похожее на глибц >>1099422

Но есть и портабельная версия strlen.c, которая выглядит ровно как твоя
Аноним 28/11/17 Втр 14:46:01  1099512
>>1099388
твой strlen не использует SSE инструкции
Аноним 28/11/17 Втр 15:13:00  1099535
>>1099392
Компилируемые языки сейчас уже никому не нужны, а в будущем от них совсем откажутся.
Будущее за скриптовыми языками.
Аноним 28/11/17 Втр 15:16:33  1099536
hqdefault.jpg (14Кб, 480x360)
>>1099535
Все так. Го в дотку.
Аноним 28/11/17 Втр 15:20:47  1099538
>>1099535
Ведь рантайм эррор это так весело )))
Аноним 28/11/17 Втр 15:32:29  1099545
>>1099538
В современных IDE есть анализаторы кода, которые тебе сразу же подсвечивают ошибку, если что-то не так. Зато не надо уйму сил, чтобы писать код, и ждать несколько часов, пока твой код скомпилируется или выдаст ошибку.
Аноним 28/11/17 Втр 15:36:16  1099546
>>1099545
Подсвети мне пуфон или lua, маня
Аноним 28/11/17 Втр 15:40:49  1099548
>>1099546
Зайди в pycharm и посмотри. Подсветка ошибок работает великолепно)
Аноним 28/11/17 Втр 15:52:41  1099553
>>1099548
Полтора вызова подсвечивает, а внутри метода с аргументом что будешь делать? А с kwargs?
Аноним 28/11/17 Втр 15:53:03  1099554
>>1099535
тогда какой язык можешь посоветовать для разработки десктоп приложении и что бы без проблем можно было найти РАБоту
Аноним 28/11/17 Втр 16:01:38  1099558
>>1099554
>какой язык можешь посоветовать для разработки десктоп приложении
C#. Но сейчас уже от десктоп приложений отказались в пользу веба.
>что бы без проблем можно было найти РАБоту
Java (правда умирает), C#, js, php, 1C
Аноним 28/11/17 Втр 16:27:13  1099567
>>1099545
Очень смешно. Ну и как твой анализатор определит, что вместо числа передали строку?
Аноним 28/11/17 Втр 16:48:12  1099578
Что означает подобная конструкция?
https://pastebin.com/uM958Qb1
В гугл не могу, потому что он воспринимает крышечки и скобки фигурные, как шаблон.
Аноним 28/11/17 Втр 16:49:38  1099579
>>1099578
Простите, немного обосрался из-за непривычного стиля
https://pastebin.com/iTgFnEg7
Аноним 28/11/17 Втр 17:06:53  1099601
>>1099579
Погугли возврат каретки и перевод строки.
Аноним 28/11/17 Втр 17:10:23  1099606
>>1099579
Если ты про ^M, то это просто кодировка слетела. Это перевод строки.
Аноним 28/11/17 Втр 17:18:38  1099610
>>1099606
>>1099601
А, ну да, точно. Все, спасибо.
Аноним 28/11/17 Втр 17:46:35  1099631
>>1099578
фубля напомнил c++ cli
Аноним 28/11/17 Втр 19:50:35  1099692
>>1099535
>Компилируемые языки сейчас уже никому не нужны
>Будущее за скриптовыми языками.
Которые в 99% случаев тоже компилируются, в байт-код.
Аноним 28/11/17 Втр 19:55:56  1099698
>>1099425
Ещё раз, SSO хранит данные строки НЕ НА СТЕКЕ. SSO хранит данные строки в самом объекте строки, а объект строки может быть и на стеке, и в куче.
>>1099433
google://microsoft+crt+sources , чуть ли не первая ссылка. Сложно?
>>1099567
Ясен фиг, можно в коде спрятать тип так, что анализатор его не найдёт. Во множестве программ определить динамический тип с помощью анализа возможно.
Аноним 28/11/17 Втр 20:02:14  1099705
15118713940540.jpg (60Кб, 480x360)
>>1099535
>Компилируемые языки сейчас уже никому не нужны, а в будущем от них совсем откажутся.
>Будущее за скриптовыми языками.
Аноним 28/11/17 Втр 20:10:03  1099713
Безымянный.PNG (86Кб, 757x304)
>>1099705
Какой ещё жипег дкебич? PNG - не, не слышал?
Аноним 28/11/17 Втр 20:10:28  1099714
15118713940540.jpg (60Кб, 480x360)
>>1099713
>Какой ещё жипег дкебич? PNG - не, не слышал?
Аноним 28/11/17 Втр 20:19:31  1099719
ViPDfaudOoU.jpg (155Кб, 1116x675)
Помогите решить, господа /pr/ограмисты
Аноним 28/11/17 Втр 20:44:16  1099728
>>1099535
>t.retard
Аноним 28/11/17 Втр 21:18:00  1099740
>>1099719
там по теореме сосницкого вроде решается, гугли
Аноним 28/11/17 Втр 22:15:37  1099768
>>1099535
JIT? Не, не слышал.
>>1099719
динахуй
Аноним 28/11/17 Втр 22:37:32  1099778
Как работает битовый сдвиг влево?

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

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

Ситуация № 2:
10110010110100000101111000000000 (32 бита) -> 0000000000000000000000000000001011001011010000010111100000000000 (64 бита, но тогда это уже не Int)
или
10110010110100000101111000000000 -> 11001011010000010111100000000000
Аноним 28/11/17 Втр 22:39:10  1099779
>>1099778
это был сдвиг на 2 бита, если что.
Аноним 28/11/17 Втр 22:45:47  1099781
>>1099778
лолштоблядь
Ты считаешь, что операция сдвига зависит от содержимого сдвигаемого операнда? Охуеть.
http://eel.is/c++draft/expr.shift#:operator,left_shift
Аноним 28/11/17 Втр 22:59:42  1099790
>>1099781
Я не думаю, что операция сдвига зависит от содержимого. Я спрашиваю, что будет с первыми битами, когда предел этого типа уже достигнут.

"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" - это и наступит?
Аноним 28/11/17 Втр 23:13:49  1099799
Двач, сап. Устроился погромистом на полставки на C++ пока учусь на 3ем курсе. Работаю уже почти 2 месяца. Я не особо фанат C++, если что. Не надо на меня гнать "ОХ УЖЕ ЭТИ ВКАТЫВАЛЬЩИКИ В КРЕСТЫ" и тд. Мне так-то пофиг на язык, я больше в сторону C#/Java глядел. К нам в универ пришли и предлагали работу, окей? В нашем мухосранске это чуть ли не единственный вариант на полставки работать.

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

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

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

Ну и тд. А чтоб поближе к реальности. Для интермидиатов.
Аноним 28/11/17 Втр 23:16:54  1099808
Сажа приклеилась
Аноним 29/11/17 Срд 00:11:35  1099846
>>1099799
>Устроился погромистом на полставки на C++ пока учусь на 3ем курсе
У меня побежала слеза по щеке.
3 курс мехмата, приходится работать репетитором
Аноним 29/11/17 Срд 00:19:23  1099847
>>1099799
Скотт Майерс - Effective Modern C++
Аноним 29/11/17 Срд 00:38:21  1099853
>>1099790
Да.
Аноним 29/11/17 Срд 09:38:52  1099973
>>1099142 (OP)
Чому пидоры из intellij не включили с++ в ультимейт сборку? Куда предъявить?
Аноним 29/11/17 Срд 09:55:29  1099977
Поясните, плиз, за отличие C++ и Visual C++
Аноним 29/11/17 Срд 10:05:37  1099982
Winblows.jpg (17Кб, 300x257)
>>1099977
>Visual C++
Аноним 29/11/17 Срд 10:14:45  1099987
>>1099982
Ну рили
Аноним 29/11/17 Срд 12:10:27  1100011
А поясни за com плез, анон
Я что-то смутно помню из далекого прошлого, оно сейчас нужно вообще для чего-то?
Аноним 29/11/17 Срд 12:32:43  1100017
>>1099987
Да, и в 1993-1997 гг. было очень много поросячьего визга, особенно в России. Они все на кладбище
Аноним 29/11/17 Срд 12:33:20  1100018
>>1100011
Google, vendor lock
Аноним 29/11/17 Срд 13:32:40  1100030
>>1099790
Прочитай тот параграф полностью, там говорится отдельно о знаковых и беззнаковых.
>>1099977
Visual C++ - это древняя среда разработки, которая превратилась в Visual Studio. Отличия - сам понимаешь, хер с авоськой сравнил.
Аноним 29/11/17 Срд 13:44:12  1100034
А если ты имеешь ввиду соответствие компилятора студии стандарту, то нагугли сам, там куча приколов.
Аноним 29/11/17 Срд 13:51:28  1100041
>>1100030
А среда для разработки Cpp. Ну Ок, превратилась, и как стала называться? Просто я смотрю курсы кое-где по Visual C++ до сих пор предлагают -- что это?
Аноним 29/11/17 Срд 13:59:34  1100048
>>1100041
Это малоизвестная и устаревшая Visual Studio
Аноним 29/11/17 Срд 14:08:52  1100051
>>1100048
Стоп, это вот оно https://www.visualstudio.com/ru/ устаревшее и малоизвестное? Ты не трал?

Олсо, поясните за различия C++ и C#, что в них общего, кроме буквы C в названии?
Аноним 29/11/17 Срд 14:58:17  1100073
При создании объекта компилятор выделяет память для кода inline или не inline методов??
Аноним 29/11/17 Срд 15:32:18  1100083
>>1100051
Анон имел в виду что visual c++ была до VS. И она устарела.
> что общего
Схожий синтаксис. Алсо до-диез "потомок" крестов
Аноним 29/11/17 Срд 16:39:15  1100104
>>1099142 (OP)
>>1095677 (OP)
Анон, как сишкоблядине с двумя годами опыта быстро осилить С++? Книги Трупа страуса вроде бы довольно фундаментальны и слишком большие или нет?, т.е. читать их долго и неинтересно если уже знаешь многие вещи. Может быть просто втупую учить по cppreference?
Аноним 29/11/17 Срд 16:43:42  1100107
>>1100104
Недавно кто-то рекомендовал Accelerated C++ в таком же случае как твой. Не знаю правда как оно, не читал

Аноним 29/11/17 Срд 16:50:16  1100113
>>1100030
Меня интересует этот случай: "if E1 has a signed type and non-negative value". И все вытекает в "the behavior is undefined".

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

Я спрашиваю про конкретное поведение, котрое будет происходить после сдвига влево числа, которое уже предел своего типа. Я не верю, что вместо определенного поведения происходит "the behavior is undefined".
Аноним 29/11/17 Срд 16:59:10  1100119
>>1100104
Очевидный Стенли Липпман очевиден.
Аноним 29/11/17 Срд 16:59:50  1100120
>>1100104
Эккель свою книгу писал как раз для тех кто С знает, но хз годно ли. Да и устарело поди.
Аноним 29/11/17 Срд 17:01:43  1100123
a387f39d72deba1[...].jpg (35Кб, 452x543)
>>1100113
>после сдвига влево числа, которое уже предел своего типа
Ассемблер это уже, нахер не надо это всё.
Аноним 29/11/17 Срд 17:02:53  1100124
>>1100120
Указатели надо чтобы современные были там собеседование иначе не пройдёт он.
Аноним 29/11/17 Срд 17:15:28  1100132
>>1100124
Еба, а в плюсах средства работы с указателями до сих пор не устаканились?
Вообще язык нужен для специфических целей - пилить хуйню для андроида которую я бы с радостью на Си сделал, но ASOP едва ли не на половину состоит из говна на C++ с непонятными закорючками. В будущем ебал заниматься С++, хоть и лычку в резюме напишу, лол.
Аноним 29/11/17 Срд 17:32:23  1100141
Captured0.png (250Кб, 717x1023)
Captured1.png (241Кб, 717x1021)
>>1100132
>Еба, а в плюсах средства работы с указателями до сих пор не устаканились?
Устаканились в 2011 году, и более того: Липпман идёт от простого к сложному, в книге разобран и синтаксис языка, и то, где и как используются ссылки (а не только указатели), и там даже есть современные приёмы вроде безымянных функций (они же лямбды).
Аноним 29/11/17 Срд 17:51:29  1100150
>>1100141
Хорошо, почитаю. Спасибо
Аноним 29/11/17 Срд 18:39:29  1100166
>>1099781
Собственно, я смеюсь, а результат операции сдвига знакового числа на самом деле зависит от содержимого.
>>1100113
Для беззнакового типа никакого undefined.
> Я не верю, что вместо определенного поведения происходит "the behavior is undefined".
Стандарт языка (единственный источник такой информации) для тебя не аргумент? Язык - это не определение инструкций процессора, которые будут использованы, это определение языка. Хочешь иметь гарантии - прочитай инстракшн мэньюал к своему ЦП и сделай ассемблерную вставку.
Аноним 29/11/17 Срд 18:59:04  1100175
>>1100166
>Собственно, я смеюсь, а результат операции сдвига знакового числа на самом деле зависит от содержимого.
А результат суммы — от содержимого слагаемых. Охуеть, да?
Аноним 29/11/17 Срд 19:03:54  1100180
image.png (358Кб, 600x470)
>>1100113
>Я не верю, что вместо определенного поведения происходит "the behavior is undefined".
Аноним 29/11/17 Срд 19:37:31  1100194
original.jpg (57Кб, 604x400)
>>1100123
>Ассемблер это уже, нахер не надо это всё.
>>1100166
>Язык - это не определение инструкций процессора, которые будут использованы, это определение языка. Хочешь иметь гарантии - прочитай инстракшн мэньюал к своему ЦП и сделай ассемблерную вставку.

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

Тащемто даже на C# можно все эти битовые операции делать спокойно с вполне себе определенным поведением.
Аноним 29/11/17 Срд 20:07:25  1100207
1.png (45Кб, 1640x636)
2.png (24Кб, 1046x420)
3.png (24Кб, 910x470)
4.png (52Кб, 1284x636)
Анон, помоги мне пожалуйста. Я что-то очень сильно не понимаю, настолько что даже не понимаю как правильно загуглить.
В процессе решения поставленной мною передо мной задачи я наткнулся на какую-то адскую фигню, которую начал упрощать, чтобы понять в чём я ошибаюсь и в конце-концов пришёл к 4 пикрилейтедам - коду который вызывает ошибку, если его модифицировать.
Стоит сделать активной строчку кода на втором пике (в С1.h) #include "QtGuiApplication3.h" как тут же при следующей отладке я получаю ошибку "С1: не определён базовый класс", которая вызывается из "С2.h"
Почему так происходит? Как мне тогда (если я захочу этого) передать указатель на QtGuiApplication3 в объект класса С1 или С2?
Аноним 29/11/17 Срд 20:12:09  1100208
>>1099351
ещё отличается дефолтное наследование
ну, если связываешь плюсы с какой-нибудь скрипто-парашей, то скорее всего, с классами у тебя ничего не получится
Аноним 29/11/17 Срд 20:21:33  1100212
>>1100207
подожи
а зачем тебе в C1.h хедер подключать, если ты указатель собрался пользовать? forward declaration вот это всё
Аноним 29/11/17 Срд 20:27:13  1100214
5.png (59Кб, 1154x844)
>>1100212
Ну в общем случае для пикрилейтед.
Аноним 29/11/17 Срд 20:30:01  1100215
>>1100214
дык в C1.h расскоментируй же //class ...
а в С1.cpp заинклудь
Аноним 29/11/17 Срд 20:37:30  1100216
>>1100215
Большое спасибо! Интересно, из какого учебника в моей голове поселилась мысль о том, что все .h нужно подключать в .h?
Аноним 29/11/17 Срд 20:43:05  1100217
>>1100175
Иногда полезно предположить, что собеседник не идиот.
>>1100194
Ага, и ассемблерных вставок и implementation-defined-поведения в сисярпе нет. Остальсь только рассказать о том, зачем тебе нужно сдвигать отрицательно знаковое число.
>>1100207
Ты не то инклудишь, походу. Смотри доки.
http://doc.qt.io/qt-5/qmainwindow.html
Аноним 29/11/17 Срд 20:53:57  1100219
Плюсач, как правильно организовать сетевую архитектуру на udp сокетах? У меня есть один сокет на прием данных, с фиксированным портом, один случайно генерирующийся, на отсылку информации, и один с фиксированным портом для броадкаст сообщений.
Аноним 29/11/17 Срд 21:06:41  1100225
>>1100217
>Остальсь только рассказать о том, зачем тебе нужно сдвигать отрицательно знаковое число.
Мне, незачем.
Аноним 29/11/17 Срд 21:10:21  1100228
>>1100083
Спасибо!
Не могу понять, то есть, это http://www.specialist.ru/course/sipp старая фигня?
Аноним 29/11/17 Срд 21:12:10  1100230
>>1099142 (OP)
Анон, как напечатать параметры ЗНАЧЕНИЯ шаблона?

https://ideone.com/6SRjch
Аноним 29/11/17 Срд 21:39:16  1100243
>>1100228
Там же написано, "одним из вариантов с++ является visual c++".
Так же называлась IDE для этого языка. Читай линк: https://ru.m.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B
IDE устарела, язык актуален. Курс, соответственно, тоже.
Аноним 29/11/17 Срд 22:02:32  1100250
>>1100217
>Иногда полезно предположить, что собеседник не идиот.
Прочитав, что результат операции сдвига вызывает смех, я так и не смог это сделать. Хотя очень старался. Честно.
Аноним 29/11/17 Срд 22:07:28  1100253
>>1100230
Если совсем по-быстрому фиксануть, то так https://ideone.com/BZFxxz
Аноним 29/11/17 Срд 22:18:29  1100257
>>1100253
>std::enable_if_t<(sizeof...(Rest) > 0)>

А что это за костыль?
Аноним 29/11/17 Срд 22:31:52  1100264
>>1100250
>Прочитав, что результат операции сдвига вызывает смех
На заборе прочитал? Русский язык, ду ю спик ит?
>>1100228
>Одним из вариантов С++ является Visual С++ - продукт корпорации Microsoft, являющийся частью комплекта Microsoft Visual Studio.
Майкрософт никогда не называла свой диалект С++ визуалом. Была ли IDE под названием Visual C++ часть студии хоть когда-нибудь - нагугли сам, не было такого. Писал это какой-нибудь секретарь, который не знает нихуя.
>>1100230
http://coliru.stacked-crooked.com/a/28da7966de495986
>>1100253
Накатал порнятнку про то, что такое сделать нельзя, а тут ты. Пришлось стереть.
Аноним 29/11/17 Срд 22:44:52  1100267
>>1100264
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.
Аноним 29/11/17 Срд 23:42:27  1100290
>>1100264
>>1100243
Спасибо. Что спросить у них, чтобы не проебаться?
Аноним 29/11/17 Срд 23:45:34  1100294
>>1100290
ток без шуток про хуи и и бочку
Аноним 30/11/17 Чтв 01:01:31  1100321
>>1099142 (OP)
Пишу прогу использующую интовые пары координат. Можно ли запилить что-то типа
coords a;
a = {0,0};
Аноним 30/11/17 Чтв 01:27:38  1100334
>>1100321
Можно.
Аноним 30/11/17 Чтв 02:37:43  1100355
>>1100290
Можешь спросить "Какие программы я смогу писать, пройдя ваш курс" и "Будем ли мы изучать теорию языка".
Потому что умение что-то написать на C++ - это не умение найти проблему.
>>1100321
Можно, только ногу себе не отстрели.
http://coliru.stacked-crooked.com/a/89bda233c9ae90b3
То есть, если есть недефолтный конструктор, то аггегатная инициализация (так это называется) не может быть использована, и список значений в фигурных скобках становится списком аргументов конструктора.
Аноним 30/11/17 Чтв 03:10:54  1100360
>>1100219
Бамп. Мне кажется, что с таким построением системы я готовлюсь к выстрелу в ногу.
Аноним 30/11/17 Чтв 03:16:45  1100363
>>1100257
Сам спросил, сам ответил: это костыль.
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, в параметры к энаблифт пихаешь условие и делаешь другой шаблон, который должен быть использован, если это условие не выполнено - это один из вариантов использования.
Аноним 30/11/17 Чтв 03:17:22  1100364
>>1100360
Система чего? Архитектура чего?
Аноним 30/11/17 Чтв 03:20:12  1100365
>>1100364
Сколько сокетов нужно иметь в приложении для оптимальной работы, и какие должны быть у них роли? С одним сокетом приложение получает также и свои отправленные датаграммы, поэтому это не вариант.
Аноним 30/11/17 Чтв 03:34:49  1100368
>>1100363
Для кого ты это капитанство накатал?
Аноним 30/11/17 Чтв 03:37:34  1100369
>>1100365
Твоё предложение никакими недостатками не обладает, пока ты не описал задачу точнее. Не вижу никаких проблем, ты ещё и шагу не сделал.
>>1100368
Для того, кто спрашивал.
Аноним 30/11/17 Чтв 03:50:34  1100371
1511175846455.jpg (25Кб, 300x300)
>>1100363
>Язык допускает некоторые ошибки в шаблонах для того, чтобы увеличить сферу их применения. Сфера применения увеличилась настолько, что с помощью намеренного внесения этих ошибок можно влиять на код предсказуемым образом. Если в момент инстатциирования шаблона возникает ошибка, компилятор пропускает шаблон и переходит к следующему. Это называется SFINAE.

>Это называется INSANE.
I N S A N E
N
S
A
N
E


Ебнутый язык, поехавший.
Аноним 30/11/17 Чтв 04:59:20  1100379
>>1100369
>Для того, кто спрашивал.
Ты сам и спрашивал.

Ты спутал /pr/ со своим бложиком.
Аноним 30/11/17 Чтв 06:38:35  1100390
>>1100264
>Накатал порнятнку про то, что такое сделать нельзя, а тут ты. Пришлось стереть.
Вот видишь. Ещё одна причина не предполагать, что мой собеседник не идиот.
Аноним 30/11/17 Чтв 07:35:44  1100396
>>1100379
Будто твой говнопост в этом коллективном бложике нужен, поэтому залезь под шконку, вахтер.
Аноним 30/11/17 Чтв 08:23:13  1100401
>>1100371
Чем это отличается от выбора перегрузки функции? Никто же не говорит, что компилятор пытается скомпилировать foo(string) когда ей передают int, обламывается, после чего переходит к следующей перегрузке foo(int). Обычный паттерн матчинг
Аноним 30/11/17 Чтв 15:10:32  1100512
>>1100401
Тем, что выбор перегрузки хотя бы не содержит стрёмного синтаксиса. В перегрузках свои приколы с ICS, но в шаблонах этот "выбор" сделан с помощью граматического элемента, который не для этого нуэен вообще-то.
Аноним 30/11/17 Чтв 15:46:09  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>)));
}

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

Моё желание вообще имеет смысл? Реализуемо ли оно? Если да, то куда копать?

Аноним 30/11/17 Чтв 15:50:40  1100528
>>1100527
И сразу вдогонку.
Имеет ли смысл создавать отдельный класс и объект DataStore, в котором хранить большую часть данных для работы с ними? Или данные лучше хранить в основной форме?
Аноним 30/11/17 Чтв 16:21:04  1100539
>>1100527
>то не компилируется.
>тут у миня не работает в чём проблема догадайтесь сами с помощью ваших оракулов
Аноним 30/11/17 Чтв 16:32:39  1100544
>>1100539
Ну я просто подумал что проблема очевидна - объект объявлен, но ещё не существует.
Если интересует точный текст то -
"Вызвано исключение: нарушение доступа для чтения."
"receiver-> было nullptr."

Уточню. Меня не интересует почему не работает - это мне понятно. Меня интересует - можно ли каким либо образом соединить сигнал существующего объекта со слотом ещё не существующего объекта (если класс уже существует и известен)
Аноним 30/11/17 Чтв 17:00:32  1100555
>>1100544
Тогда отвечаю.
>Моё желание вообще имеет смысл?
Нет, так как ты пытаешься отказаться от существования других объектов типа dataForm. Ты нарушаешь абстракцию.
>Реализуемо ли оно?
Да - сделай dataForm частью основной формы.
Ещё можешь в конструкторе dataForm соединять слоты/сигналы, а информацию о владельце брать из parent().
http://doc.qt.io/qt-5/qobject.html

Только если ты не к владельцу подсоединяешься, то ты какой-то пиздец делаешь, лапшу накручиваешь, и в таком случае тебе совершенно точно нужно эту твою сраную форму встроить, а не обосабливать.
Аноним 30/11/17 Чтв 17:17:59  1100564
>>1099142 (OP)
Изучаю шаблонные шаблонные параметры. Как написать функцию, которая принимает произвольный контейнер и печатает его размер?

https://ideone.com/rhDv3Y
Аноним 30/11/17 Чтв 17:37:49  1100576
>>1100564
Просто берешь и без задней мысли пишешь
https://ideone.com/hjTofk
Аноним 30/11/17 Чтв 17:56:52  1100581
>>1100555
Спасибо! Ты - няша.
Аноним 30/11/17 Чтв 17:58:17  1100583
>>1100576
не представляю, где бы мог пригодится template<template<> >
Аноним 30/11/17 Чтв 18:16:00  1100589
>>1100564
>>1100576
А ведь можно просто https://ideone.com/RHKj23
Аноним 30/11/17 Чтв 18:18:30  1100590
>>1100589
>шаблонные шаблонные параметры
Аноним 30/11/17 Чтв 18:21:14  1100591
>>1100590
>функцию, которая принимает произвольный контейнер и печатает его размер
Попробуй сунуть в >>1100576 std::map и сообщи нам о результатах.
Потом попробуй в >>1100589
Аноним 30/11/17 Чтв 18:37:20  1100599
>>1100589
Деревенский простолюдин, неспособный постичь красоту шаблонных конструкций ебанул обычную шаблонную функцию и рад. Слишком просто, нам ведь не сделать, нам заебаться надо

>>1100564
https://ideone.com/dElGUO
Вариант с частичной специализацией, без шаблонных параметром, но с копипастом.
Аноним 30/11/17 Чтв 18:48:14  1100602
>>1100576
б-х ты мой нахуй так делать то блядь вот же написал человек >>1100589
>>1100599
ты что приколист я сегодня хотел спокойно заснуть вообще-то
Аноним 30/11/17 Чтв 18:49:12  1100603
>>1100564
Вот, короче https://wandbox.org/permlink/YYVJ0E5tqxn54UBe

деревенский простолюдин (>>1100589
)
Аноним 30/11/17 Чтв 18:56:23  1100609
Как можно написать метафункцию ICons, которая добавляет число в голову списка IntList?

https://ideone.com/1uYIMt
Аноним 30/11/17 Чтв 19:03:28  1100611
>>1100609
template <int Head, typename IL>
struct ICons;
вместо
template <int Head, int... Tail>
struct ICons;
Аноним 30/11/17 Чтв 20:22:47  1100653
>>1100599
>нам ведь не сделать, нам заебаться надо
Я чего-то этот fizzbuzz вспомнил https://ideone.com/6QN2Ef
Аноним 30/11/17 Чтв 20:39:19  1100668
>>1100603
хуль ты делаешь то блядь расслабься самый простой код - самый рабочий
https://ideone.com/4ycTj2
Контейнеры - это не только шаблоны.
>>1100609
Так, ладно я не буду спрашивать тебя о том, зачем тебе static const.
http://coliru.stacked-crooked.com/a/6b10a97723bd2ca5
Обрати внимание на то, что результат ICons не будет иметь тип IntList. Содержимое идентично, а вот тип другой.
Олсо, можно сделать так, чтобы и типы совпадали, но нужно заморочиться.
Аноним 30/11/17 Чтв 22:33:12  1100720
Как построить аффинное многообразие V(x^4 - xz)? Я прав, что оно равно V(x(x^3 - z)) и равно объединению многообразий V(x) и V(x^3 - z)?
Аноним 30/11/17 Чтв 22:33:51  1100721
>>1100720
Не туда. (Wrong hole)
Аноним 30/11/17 Чтв 23:12:02  1100759
Помогите вкатиться в с++, плесс
tg @kaminaggs
Аноним 01/12/17 Птн 00:49:32  1100796
>>1100759
динахуй
Аноним 01/12/17 Птн 09:04:32  1100850
Ребят, а что почитать, чтобы понять, как написать обработчик прерываний, чтобы try-catch работали на нестандартном процессоре?
Аноним 01/12/17 Птн 10:26:18  1100871
>>1100850
Давай поточнее. У тебя компилятор для этого процессора есть?
Аноним 01/12/17 Птн 11:13:15  1100880
>>1100871

Компилятор есть. Но при возникновении исключений проц слетает на адрес указанный в векторе прерываний.
Программа компилится при использовании try-catch, но в итоге они не оказывают никакого влияния. Что есть они, что нет, всегда уходим на вектор прерываний и даже не понятно, что за прерывание и в каком месте оно возникло.
Аноним 01/12/17 Птн 11:44:48  1100902
>>1100880
Что это за платформа, где исключения C++ прямо транслируются в прерывания?
И зачем?
Аноним 01/12/17 Птн 11:49:21  1100905
>>1100902

Это процессор на архитектуре Riscv.
Я хочу работать на чистом c++, но когда я спросил у сообщества насчёт вот таких вещей, мне ответили: пиши их сам.
Аноним 01/12/17 Птн 13:24:37  1100938
>>1100905
Ох блет.
Надо больше информации - ОС/метал, какой компилятор, параметры компилятора.
Аноним 01/12/17 Птн 13:32:52  1100943
>>1100938

На самой машине никакой оси.
Компилятор gcc/g++ из тулзов riscv, собранные под линуксом.
Из параметров компилятора точно помню, что стоит без оптимизации и 64-разрядная архитектура.
Аноним 01/12/17 Птн 14:05:42  1100965
>>1100668
>ладно я не буду спрашивать тебя о том, зачем тебе static const
А что не так со static const?
Вместо него следует использовать constexpr? Я попробовал - не компилируется.
Аноним 01/12/17 Птн 14:14:05  1100967
image.png (307Кб, 1920x1080)
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;
}

Антоны, обоосыте, прошу, помогите. Почему эта функция возведения в степень дает охуеть какие огромные значения?
Аноним 01/12/17 Птн 15:16:24  1101009
>>1100967
Осиль уже пошаговую отладку.
Аноним 01/12/17 Птн 15:22:16  1101016
>>1100965
Кому ты пиздишь? Ты сообщения компилятора читаешь хоть иногда?
http://coliru.stacked-crooked.com/a/5d2ba5fb29997899
>>1100943
Дело так, значит: исключения C++ обеспечиваются с помощью exception model (SJLJ, SEH, DWARF для x86): соглашения о том, как хранится информация о раскрутке стека (вызове деструкторов в обратном порядке). Самому G++ эти исключения не нужны, и вполне может быть так, что для RISC-V модель исключений ещё не определили, и компилятор тебя об этом никак не предупредит.
Больше ничего сказать не могу, так как не в курсе, кроме того, что в исходниках этой твоей тулзы и исходниках поддержки других архитектур ты найдёшь ответы на любые вопросы.
>>1100967
>double number, int stepen
Пользоваться только одним языком не дано?
Проверь свою программу по шагам для СТЕПЕН=2.
Аноним 01/12/17 Птн 15:53:07  1101024
>>1099142 (OP)
Как я могу определить шаблон, принимающий тип, и его специализацию, принимающую число?

https://ideone.com/IdWbDo
Аноним 01/12/17 Птн 16:15:16  1101038
>>1101024
Никак. Ты не можешь иметь константу или тип на одном и том же месте, это невозможно. Ты можешь сделать шаблон с двумя параметрами - число и тип - и специализация будет иметь только параметр-число, например.
Если ты не заметил, твоё определение специализации противоречит твоему определению шаблона.
>template <>
>struct Foo<size_t i>
Что ты за хуйню написал? В фигруный скобки около Foo ты пишешь известные параметры.
Аноним 01/12/17 Птн 18:08:11  1101101
как стать СУПЕРБАТЕЙ языка программирования С++?
Аноним 01/12/17 Птн 18:11:06  1101103
>>1101101
Обмазаться книгами Саттера.
Аноним 01/12/17 Птн 18:13:47  1101104
>>1101103
Понял, принял
начал обмазываться
Аноним 01/12/17 Птн 18:25:07  1101108
ptr.png (54Кб, 944x793)
Двач, сегодня меня унизили на собеседовании. Пришел на собес к знакомому (С/C++).

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

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

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

Я стоял как мудак и не смог ответить. Ну нахуй такую жизнь, ебись все конем, забиваю на программирование
Аноним 01/12/17 Птн 18:34:00  1101116
>>1101108
молодой?
Аноним 01/12/17 Птн 18:36:16  1101121
>>1101108
съеби в си тред, чухан
Аноним 01/12/17 Птн 18:38:36  1101123
>>1101116

Ога.
Аноним 01/12/17 Птн 19:02:08  1101134
>>1100943
>На самой машине никакой оси.
>Компилятор gcc/g++ из тулзов riscv
Для поддержки исключений нужны действия со стороны компилятора и нужен некоторый рантайм. Для bare metal окружения рантайма может не быть.
Покажи ассемблерный листинг для функций, содержащих throw и try/catch.
Аноним 01/12/17 Птн 19:25:41  1101143
>>1101108
Если вопрос о языке, а не о конкретной реализации, то ответ - такая операция не определена.
http://eel.is/c++draft/basic.lval#11
В сях скорее всего то же самое, там тоже strict aliasing rule есть.
Аноним 01/12/17 Птн 20:12:29  1101161
>>1101143
Двачую этого.
Аноним 01/12/17 Птн 20:49:37  1101184
Господа. Подскажите утилиту для дебагина мультипоточных программ. Хочу видеть, сколько цпу жрёт каждый поток и т.д
Видел утилиту, но никак не могу вспомнить название.
Аноним 01/12/17 Птн 21:01:20  1101196
>>1101184
procexp тебе всё покажет, только информацию о потоках нужно будет из проги вывести, у них же имён нет
Аноним 01/12/17 Птн 23:07:53  1101286
А есть годный обзор\книга за буст? Или прост документации читать и пох. Хочется в голове держать, чего умеет
Аноним 02/12/17 Суб 00:44:16  1101348
>>1101286
http://www.boost.org/doc/libs/1_41_0/libs/libraries.htm
Аноним 02/12/17 Суб 01:28:18  1101360
>>1101286
Есть, но не помню как называется
Аноним 02/12/17 Суб 01:59:43  1101380
>>1101286
Demming, R., Duffy, D.J. Introduction to the Boost C++ Libraries
Аноним 02/12/17 Суб 02:04:24  1101382
>>1101348
http://www.boost.org/doc/libs/1_65_1/libs/libraries.htm
Аноним 02/12/17 Суб 02:22:53  1101387
>>1101380
пасибо!
Аноним 02/12/17 Суб 08:56:43  1101435
image.png (1Кб, 252x78)
Как это понимать?
Аноним 02/12/17 Суб 09:15:30  1101437
>>1101435
У comma operator низший приоритет, поэтому (c = a), b;
Аноним 02/12/17 Суб 13:58:43  1101505
>>1101437
а что такое d = (a, b); ?
Аноним 02/12/17 Суб 14:08:27  1101511
>>1101505
d = (a), (b); => (d = a), b;
Аноним 02/12/17 Суб 14:12:09  1101514
>>1101511
но d становится равно 2 после d = (a, b);
Аноним 02/12/17 Суб 14:16:25  1101519
>>1101514
Тогда вообще похуй, кто вообще использует оператор запятой, кроме моментов когда нужно выебнутся что ты знаешь ебанутую семантику?
Аноним 02/12/17 Суб 14:22:16  1101526
>>1101511
Кому ты пиздишь? Скобки - это не оператор, и приоритет у них наивысший.
Аноним 02/12/17 Суб 14:24:10  1101527
>>1101435
Запятая - это, с одной стороны, оператор оценки двух выражений и возврата значения второго, причём на месте запятой есть sequence point (в новом стандарте это по-другому назывется).
А с другой стороны его можно переорпределять для классов, и это пиздец.
Аноним 02/12/17 Суб 14:26:43  1101528
>>1101519
Цикл с двумя счётчиками же?.. матрицы, вот это вот всё.
Аноним 02/12/17 Суб 14:27:03  1101529
>>1101527
>T2& T::operator,(T2 &b);

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

:OO е ба нись
Аноним 02/12/17 Суб 14:31:26  1101532
>>1101505
Ну смотри.
Допиши еще
int e = (c = a, b);
int f = (d = (a, b));
Может тогда понятней станет.
Аноним 02/12/17 Суб 14:38:14  1101533
>>1101519
Видел пару моментов
while(cin >> str, str != "STOP") { / ... / }

В бусте где-то есть красивая конструкция
symbols<> logicalOperators = "AND", "OR", "NOT";
Что разворачивается в
logicalOperators.operator =("AND").operator ,("OR").operator ,("NOT");
Аноним 02/12/17 Суб 14:39:43  1101534
Или так

int a;
int b = (a = 2, a++);
Аноним 02/12/17 Суб 14:44:11  1101535
>>1101534
Ваще пушка

(i > 0) ? (i--, doIf()) : doElse();
Аноним 02/12/17 Суб 14:47:16  1101536
О, отлично, как лучше выстрелить в ногу дуплетом? Правильно, сочетать это с МАКРОСАМИ.
#define MACRO(A) ( perform_heavy_work(A), std::cout<<"done", modify(A) )
Аноним 02/12/17 Суб 15:54:17  1101560
>>1101532
Топ трал.
>>1101533
Не понял.
>while(cin >> str, str != "STOP") { / ... / }
Должно же быть
while(cin >> str && str != "STOP") { / ... / }
В чём прикол?
Аноним 02/12/17 Суб 16:13:07  1101563
>>1101560
Не должно, операция >> вовсе не бул возвращает.
А в чем ты узрел траллинг?
Аноним 02/12/17 Суб 16:25:39  1101569
>>1101563
>А в чем ты узрел траллинг?
В том, что усложнение вопроса вызывает понимание.
>Не должно, операция >> вовсе не бул возвращает.
Операция >> возвращает истрим, у которого есть оператор бул().
Так что если ты прям на 100% уверен в том, что СТОП у тебя есть - ну ок, пожалуйста.
http://coliru.stacked-crooked.com/a/665b52cac213ad5f
Аноним 02/12/17 Суб 19:59:24  1101706
>>1099142 (OP)
Что можно почитать о написании юнит-тестов на C++?
Аноним 02/12/17 Суб 20:30:23  1101721
Аноны,

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

Как можно определить элемент матрицы размером 4 бита? Просто использовать частично заполненный char?
Аноним 02/12/17 Суб 20:37:09  1101729
1008879593.jpg (68Кб, 1000x1200)
>>1101706
Аноним 02/12/17 Суб 20:53:05  1101741
>>1101721
http://en.cppreference.com/w/cpp/language/bit_field
Аноним 02/12/17 Суб 21:54:37  1101800
А в какой индустрии, где С++ используют, больше всего заколачивают? Какие-нибудь кванты на волстрит небось, хай фрикуенси трейдшопы?
Аноним 02/12/17 Суб 22:07:13  1101806
>>1101741
Все равно эти штуки выравниваются в памяти.
Аноним 02/12/17 Суб 22:40:39  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());
...
}
Аноним 02/12/17 Суб 23:16:15  1101851
>>1101834
Хз, зачем я спрашивал, проверить же недолго.

Если кому интересно, то при размере long_array 10-100 тысяч и частом вызове функции, второй вариант примерно на 15-20% быстрее. Неплохая оптимизация так-то.
Аноним 02/12/17 Суб 23:45:15  1101862
>>1101721
vector<bool> - гарантирована специализация с плотной упаковкой. "Элемент" определи самостоятельно. Ещё есть bitset, но у него размер фиксированный.
Аноним 02/12/17 Суб 23:55:22  1101867
original[1].jpg (50Кб, 400x500)
>>1101108
чувак, несмотря на весь мой профессиональный скепсис ко вкатывальщикам -- человеческий совет: не принимай близко к сердцу мнения любых других людей
Аноним 03/12/17 Вск 00:48:47  1101877
>>1101721
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;
}

Немного доработать, добавить прокси тип, ссылку на второе измерение и готово.
Аноним 03/12/17 Вск 00:54:30  1101881
>>1101877
Что-то проиграл. Четыре бита занимают элементы таблицы замен в шифре российский ГОСТ. Мне для этого.
Аноним 03/12/17 Вск 00:57:13  1101884
Сап, кто может помочь написать программу, раскладывающую число (с кол-вом знаком более 11) на простые множители. Хотя б идею подкиньте, понимаю что можно проверять числа от 2 до корня из числа, но как проверить делиться ли оно и получить остаток?
Аноним 03/12/17 Вск 07:47:01  1101947
>>1101881
Нахуй ты тогда нам мозги пудришь?
>Все равно эти штуки выравниваются в памяти.
Храни в байтах и отсекай при вычислениях.
>>1101884
У тебя проблема с размером типа? uint64_t есть. Мало? Пишешь свою реализацию длинной арифметики или берёшь
http://www.boost.org/doc/libs/1_65_1/libs/multiprecision/doc/html/index.html
Аноним 03/12/17 Вск 10:03:39  1101966
>>1100290
Если совсем нуб, то сходи.. учат они добротно, за скобками ничего не оставляют.
Проблема личности в программировании,, что у каждого свое видение, как у дизайнеров, поэтому без собственного видения на кодинг не вкатиться.
Т. К.. Стандартов уже столько что их можно всю жизнь изучать и ни разу не написать программу.
Аноним 03/12/17 Вск 10:08:20  1101967
>>1101966
>Т. К.. Стандартов уже столько что их можно всю жизнь изучать и ни разу не написать программу.
Ещё один неосилятор
Аноним 03/12/17 Вск 21:32:30  1102423
>>1101967
Не языка стандартов, дебич.
Аноним 04/12/17 Пнд 08:12:37  1102605
>>1102423
И что? Всё равно неосилятор
Аноним 04/12/17 Пнд 11:01:41  1102656
>>1102605
Сделай развёрнутое утверждение, верность и полезность которого верифицируема хотя бы косвенно.
Аноним 04/12/17 Пнд 13:24:38  1102711
Сап. Хочу собрать проект, которого пока нет, clang'ом. Суть такова: мне нужно заинклудить cstddef (для size_t). При попытке собрать вываливается с ошибкой support for type '__float128' is not yet implemented. При добавлении флага -stdlib=libc++, как советуют в инете, начинает вываливаться с ошибкой fatal error: 'cstddef' file not found. Что делать?
Аноним 04/12/17 Пнд 13:31:29  1102716
>>1101884
//Инициализация твоего числа Number
vector<int> Result;
for(int i=0;i<sqrt(Number) + 1; i++)
{
while(Number%i == 0)
{
Number /= i;
Result.push_back(i);
}
}

// В Result теперь лежат все простые делители числа в порядке возрастания
Аноним 04/12/17 Пнд 13:37:54  1102720
>>1101884
>>1102716
Ну и да, код с пометкой Так делать не нужно, это плохо.
Аноним 04/12/17 Пнд 14:04:23  1102741
>>1102711
блядь нихуя не понятно
Аноним 04/12/17 Пнд 14:04:44  1102742
>>1102711
хоть бы ОС назвал
Аноним 04/12/17 Пнд 14:09:34  1102745
>>1102742
Debian 4.13.13-1 (2017-11-16) x86_64 GNU/Linux
>>1102741
clang не хочеть инклудить cstddef ни с флагом, ни без него.
Аноним 04/12/17 Пнд 14:49:57  1102762
>>1102711
https://apt.llvm.org/
накатывай clang-5 или даже 6
Аноним 04/12/17 Пнд 17:33:47  1102841
Безымянный.png (63Кб, 614x594)
Анон, помоги мне, я новичок в программировании. В общем задача звучит так: "В одномерном массиве из 12 элементов определить максимальный среди отрицательных и минимальный среди положительных элементов". Так вот, как сделать так, чтобы из чисел, например, {-1, -2, -3, -4} максимальный был -1 а не -4
Помогите плиз, не хочу быть отчисленным после первой сессии
Аноним 04/12/17 Пнд 17:42:02  1102846
>>1102841
1) пусть первый встреченный отрицательный элемент и есть искомый элемент, а первый встреченный положительный элемент и есть искомый элемент
2) с каждым новым элементом выполнить проверки: если он отрицательный и при этом он... и т.д.

Алсо, добавь пустые строки вокруг операторов условий и циклов, читать невозможно же.
Аноним 04/12/17 Пнд 17:42:33  1102847
>>1102711
> type '__float128' is not yet implemented
https://stackoverflow.com/questions/13525774/clang-and-float128-bug-error
Аноним 04/12/17 Пнд 17:51:47  1102855
>>1102841
Так ты вроде почти все сделал. Просто нарисуй числовую ось и найдешь ошибку. Ты же не модули чисел сравниваешь. -2 реально меньше, чем -1.
Аноним 04/12/17 Пнд 18:17:04  1102862
.png (269Кб, 1276x1218)
>>1102841
Если ты не можешь решить такую задачу после первого курса, зачем вообще в спутники и погромисты пошел?
Аноним 04/12/17 Пнд 18:37:19  1102875
>>1102862
Найс троллинг
Аноним 04/12/17 Пнд 18:40:07  1102880
>>1102862
можно было бы и std::array тогдауш
Аноним 04/12/17 Пнд 18:42:19  1102884
>>1102880
Сказано же было в одномерном целочисленном массиве, а это именно int*, std::array по факту это уже структура.
Аноним 04/12/17 Пнд 18:45:30  1102889
>>1102875
Это называется С++, что-то не нравится? – С-тред двумя блоками ниже
Аноним 04/12/17 Пнд 18:47:49  1102891
>>1102875
Где ты троллинг увидел? Единственное что рандомизатор выглядит монструозно.
Аноним 04/12/17 Пнд 19:03:18  1102903
>>1102889
Однако, аргумент
Аноним 04/12/17 Пнд 20:16:50  1102966
>>1102841
Нахуй ты в программирование пошел, дебич?
Аноним 04/12/17 Пнд 21:34:00  1103052
Никсокрестовики, а вы какой сетап используете? Идеши нетбинсы\эклипсы, чи вимы\емаксы надроченые? Гдб питоном скриптуете?

Я все время как-то теряюсь под линухом, то одно то другое
Аноним 04/12/17 Пнд 21:34:52  1103054
>>1102966
прогер 200к в секунду треды в бэ, я думаю
Аноним 04/12/17 Пнд 21:35:45  1103055
>>1103052
использую вим только как редактор, остальное в консоли
Аноним 04/12/17 Пнд 21:39:40  1103068
>>1103052
А что там, CLion не работает?
Аноним 04/12/17 Пнд 22:45:07  1103150
>>1102745
А всё остальное он инклудит?
Аноним 04/12/17 Пнд 22:45:57  1103153
>>1102841
> Так вот, как сделать так, чтобы из чисел, например, {-1, -2, -3, -4} максимальный был -1 а не -4
>Помогите плиз, не хочу быть отчисленным после первой сессии
блядь не помогайте этому дауну
Аноним 04/12/17 Пнд 22:51:38  1103158
>>1102884
array - это массив в переводе с английского. Когда говорят "массив" в разговоре о С++ имеют ввиду либо вектор, либо аррай, а обычные массивы называют C-массивы.
>>1103052
Мне кутэкректор по душе, можно убрать все панельки, места на экране съедает минимум, нативный кросплатформенный код, компилятор цепляет чуть ли не любой (особенно на линуксах).
Аноним 04/12/17 Пнд 22:51:49  1103159
>>1102862
массив создается через устаревший new вместо православного make_unique. Незачет
Аноним 05/12/17 Втр 23:13:35  1103674
ДОЖДАЛИСЬ
https://www.iso.org/standard/68564.html
> ISO/IEC 14882:2017
> 1488
Аноним 06/12/17 Срд 01:41:22  1103723
>>1103674
Стандарты нативной сишечки вдвое короче.

В плюсах есть какие-то приятные улучшения, кроме шаблонов и обработки ошибок?
Аноним 06/12/17 Срд 05:07:39  1103747
>>1103723
>Стандарты нативной сишечки вдвое короче.
И в два раза более размытые по формулировкам.
Аноним 06/12/17 Срд 08:34:22  1103785
Не вдцпляю вообще, ребят, помогите. Есть строка text[], например, там надо перед каждым опрежеленным символом вставить другую строку. Как это реализовать? Сижу щас на лабе, застрял на этом моменте конкретно.
Аноним 06/12/17 Срд 09:00:51  1103797
>>1103785
Посчитай сколько в строке опрежелкнных символов, создай новую на столько байт больше, и копируй туда в цикле, добавляя по ходу.
Аноним 06/12/17 Срд 09:04:19  1103799
>>1103723
>В плюсах есть какие-то приятные улучшения, кроме шаблонов и обработки ошибок?
Лямбды ещё, люблю лямбды.
Ты так говоришь "кроме шаблонов", как будто это мало (это если ты про STL).
Ещё есть range for.
Ну и самое главное - RAII. Можно писать код вообще без утечек памяти, используя несколько простых правил.

Кстати, вот чего мне хотелось бы, так это шаблонных функций, которые принимают контейнер, а не пару итераторов. Надоело уже писать бегины и энды там, где я весь контейнер передаю, выглядит тупо.
>>1103785
>Есть строка text[]
Это не строка. Строка - это string text.
>Как это реализовать?
Если тебя по ладоням бьют за STL и плюсы - писать с помощью memcpy в память, выделенную malloc-ом, лол. Препода тормоши, он деньги получает за это.
Аноним 06/12/17 Срд 10:28:45  1103816
>>1103799
>Надоело уже писать бегины и энды там, где я весь контейнер передаю
как там в 2003ем ?
Аноним 06/12/17 Срд 11:09:21  1103841
>>1103799
Напиши перегрузку, принимающую на вход контейнер.
Аноним 06/12/17 Срд 11:14:54  1103845
>>1103799
А че за правила то?
Аноним 06/12/17 Срд 11:34:51  1103855
>>1103845
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#e6-use-raii-to-prevent-leaks
Аноним 06/12/17 Срд 12:23:39  1103877
2k03+14.PNG (49Кб, 893x637)
>>1103816
Как в 2017, только нету лямбд и констекспров.
>>1103841
Не буду же я писать на каждую функцию STL перегрузку.
>>1103845
Не использовать new, не использовать malloc/calloc, использовать только shared_ptr/unique_ptr и make_shared/make_unique
Аноним 06/12/17 Срд 12:47:31  1103879
>>1103723
Олсо, structured bindings и поддержка параллельных алгоритмов (ExecutionPolicy).
Аноним 06/12/17 Срд 13:02:29  1103887
>>1103158
>Когда говорят "массив" в разговоре о С++ имеют ввиду либо вектор, либо аррай, а обычные массивы называют C-массивы.
>>1103799
>text[] Это не строка. Строка - это string text.
Как же я проигрываю с дегенератов в этом треде.
Аноним 06/12/17 Срд 13:03:49  1103889
>>1103887
Тред высокоуровнего ассемблера в каталоге сам найди.
Аноним 06/12/17 Срд 13:05:03  1103891
>>1103889
А это здесь причем? Массив не перестает называться массивом, хоть в каком хаскеле его пиши.
Аноним 06/12/17 Срд 13:25:13  1103902
>>1103891
Вот именно, массив не перестаёт называться массивом, это ты вот этому - >>1102884 - ассемблероребёнку напиши.
Аноним 06/12/17 Срд 13:35:38  1103908
>>1103902
Если ты не способен в байтоебство то иди на яве или шарпе пиши даунич
Аноним 06/12/17 Срд 13:43:55  1103913
>>1103902
Какой же ты тугой.
Аноним 06/12/17 Срд 16:20:00  1103994
qt creator на винде в фоне жрёт процессорное время. Даже если ничего не открывать, ни одного файла - всё-равно в фоне выжирает одно ядро почти полностью.

Погуглил, говорят это оно индексирует какие-то файлы то ли справки, то ли ещё какого мусора и через некоторое время должно пройти. Где-то часов через семь-восемь это в самом деле заканчивается и процессор больше не нагружается. Только после перезапуска он заново начинает.
Можно это как-то отключить? С моей стороны оно просто так жгёт процессор, а работа самой среды не изменяется вообще никак, ни в процессе, ни после завершения.
Аноним 06/12/17 Срд 16:27:33  1103999
>>1103799
>Строка - это string text.
wtf? eto chto za pokemon?
Аноним 06/12/17 Срд 18:22:01  1104080
>>1103999
Видимо он имеет в виду std::string
Аноним 06/12/17 Срд 18:27:05  1104082
111.png (54Кб, 1100x920)
Анонас, подскажи, плиз. Пытаюсь использовать вот этот код https://github.com/alexeylysenko/CryptFileDevice в своей недопрограммке.
Ему требуется openSSL. Ок, скачал openssl.v120.dyn-rt.static через Nuget, поставил.
Но всё равно проект не собирается, пикрилейтед. MVS 2015. Как фиксить?
inb4: Определи выражение константой
Аноним 06/12/17 Срд 18:54:50  1104095
>>1104082
keyLength и ivLengtn – это не константные целочисленные переменные, ими нельзя инициализировать размерность статические массивов (по крайней мере не во всех компиляторах). Используй unsigned char key = new unsigned char[keyLength]
Аноним 06/12/17 Срд 18:55:14  1104096
>>1104095
Звездочку проебал, ну ты понял
Аноним 06/12/17 Срд 18:57:08  1104099
>>1103908
Название треда прочитал? Прочитай ещё раз.
>>1103913
Повторяю для долбоёбов: это сипласплас-тред и в этом треде массивом называется НЕ ТОЛЬКО указатель на тип. Если у тебя массив - это только указатель на тип, то вали из треда.
>>1103994
1) Напиши багрепорт.
2) После того, как написал багрепорт, удали все файлы справки, там в настройках есть список.
>>1104082
Поздравляю, ты стал жертвой похуизма микрософта по отношению к стандарту языка. Работало в 2012 - перестало работать в 2015. Замени на оператор new и допиши в конце скопа delete.
Аноним 06/12/17 Срд 18:57:57  1104100
Точнее, не сами файлы удали, а список этот очисть.
Аноним 06/12/17 Срд 19:00:31  1104103
>>1104099
Повторяю для дебилов: это сипласплас-тред и в этом треде массивом называется В ТОМ ЧИСЛЕ плейн массив. В отличии от того утверждения, где С-массив это не массив.
Аноним 06/12/17 Срд 19:01:23  1104104
>>1104099
>Поздравляю, ты стал жертвой похуизма микрософта по отношению к стандарту языка.
Поздравляю, это не С-тред, по стандарту у майкрософта все, VLA - не стандарт.
Аноним 06/12/17 Срд 19:06:06  1104108
77764.png (90Кб, 1356x922)
>>1104095
>>1104099
Спасибо. Не помогло Но всё равно - спасибо.
Аноним 06/12/17 Срд 19:31:32  1104132
>>1104108
Это уже другое. Ты же качал OpenSSL, а либы под MSVS бывают, грубо говоря, 4-х видов: MT (статическая), MD (dll), MTd (статическая дебаг) и MDd (dll debug).
Аноним 06/12/17 Срд 19:39:17  1104137
>>1104132
Данке. Поставил через нугет динамическую openSSL и по крайней мере теперь компилируется.
Аноним 06/12/17 Срд 20:01:57  1104156
Почему в этом тренде не унижают вижуал студио-даунов?
Аноним 06/12/17 Срд 20:10:39  1104165
>>1104156
Что ты имеешь против самой популярной среды разработки, которую поддерживает одна из самых технологичных компаний мира?
Аноним 06/12/17 Срд 20:14:50  1104167
>>1104165
Против XCode ничего против не имею
Аноним 06/12/17 Срд 20:16:33  1104168
>>1104103
> В отличии от того утверждения, где С-массив это не массив.
Покажи мне это утверждение. Пока что я вижу только обиду на то, что крестобоярин посмел считать array массивом.
>>1104104
Я не писал, что VLA есть в стандарте. Но ладно, ты подебил, в студии всё по стандарту.
Аноним 06/12/17 Срд 20:17:31  1104170
>>1104165
Мне неудобно ей пользоваться, у меня на ней иногда не компилируются простейшие программы со сторонними библиотеками, какой-то текстовый редактор с небольшими дополнениями занимает несколько гигабайт места, слишком сильно вшивается в систему, воспоминание о vs 2008 - код на 151 строчку компилировался 2.5 минут после каждой правки и ещё всякие такие мелкие неприятности.
Субъективщина сплошная. Это примерно как сравнивать фотошоп и sai. Может быть в первом и больше возможностей, но вторым намного проще, приятнее и удобнее пользоваться в рамках того, что он умеет.
Аноним 06/12/17 Срд 21:00:35  1104209
>>1104156
Зачем? Нормальная штука, особенно как добавили возможность clang использовать.
Аноним 06/12/17 Срд 21:16:02  1104222
>>1104108
> 2k18
> new/delete
Аноним 06/12/17 Срд 21:17:46  1104225
>>1104222
Да, да уже поправил на unique_ptr
Аноним 06/12/17 Срд 21:20:01  1104227
>>1104222
>OpenSSL
>считать что это не легаси
Аноним 06/12/17 Срд 21:22:01  1104229
14671424499800.jpg (33Кб, 502x339)
>>1104225
А что не QByteArray?
>>1104227
<-
Аноним 06/12/17 Срд 21:34:06  1104239
>>1104227
што
Аноним 06/12/17 Срд 22:05:05  1104256
>>1104209
> clang
Есть интоловский компилятор. Все профессора в моем нии текут от него.
Аноним 06/12/17 Срд 22:24:21  1104265
>>1104256
А вне твоего НИИ мир, которому поебать на +5% перформанса в арифметике (кроме других НИИ, лол), и узкие места можно поправить руками, а не супердорогущим пропиетарным закрытым компилятором, в который ещё и новые стандарты неспешно завозят.
Аноним 06/12/17 Срд 23:18:54  1104293
у Праты вышло что-то новое?
Аноним 07/12/17 Чтв 01:56:02  1104350
Есть чего хорошего почитать по STL?
Аноним 07/12/17 Чтв 01:57:35  1104352
>>1104350
А, всё. Чекнул шапку
Аноним 07/12/17 Чтв 09:53:55  1104425
>>1099351
А разве там и там не паблик ли?
Аноним 07/12/17 Чтв 10:06:46  1104433
>>1104425
Нет.
Аноним 07/12/17 Чтв 20:16:25  1104686
Ещё вопрос по cmake и qt creator. Хрен с ней со справкой и загрузкой процессора.

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

К тому же, там некоторые настройки запуска по мелочи сбиваются. Проще заменить пути в файле, чем отыскивать эту фигню в настройках и менюшках потом.
Аноним 08/12/17 Птн 16:22:39  1105049
>>1104731
Хуй знает тогда. Топорный вариант - найти в файлах проекта и исправить на относительные. Правильный вариант: открыть мануал Креактора и прочитать.
Аноним 08/12/17 Птн 16:53:40  1105056
Ананасы, реквестирую вашей помощи, заебался сегодня. В общем, есть ли какой-нибудь способ (без использования sstream) скрестить boost::archive::binary_input и сырой массив данных?
То есть, в 1.65 буст нихуя не умеет использовать boost::iostreams вместо стандартных, есть варианты, кроме использования std::sstream (он же deprecated :( )
Аноним 08/12/17 Птн 19:42:14  1105123
>>1105056
>std::sstream (он же deprecated
Что ещё за std::sstream? sstream это хедер.
Давно он deprecated?
Пиздец.
Аноним 08/12/17 Птн 22:35:32  1105208
>>1099142 (OP)
Есть такая функция перекодировки: https://ideone.com/iepDlP
Как она работает, если аргумент не найден в хэш-мапе? Метод find получает несуществующий символ и возвращает end(). Попытка обращения к end() - неопределенное поведение. Почему код все равно работает?
Аноним 08/12/17 Птн 22:47:24  1105211
>>1105208
Тебе показалось. У меня падает со std::alloc. Проверь, может у тебя UB форматирует винчестер в фоне.
Аноним 08/12/17 Птн 23:40:53  1105227
Для лабы нужно простенькое параллельное программирование, а методичка написана про C. Где почитать как реализовывать потоки, треды на плюсах?
Аноним 08/12/17 Птн 23:57:24  1105232
>>1105227
http://www.cplusplus.com/reference/thread/thread/
Аноним 08/12/17 Птн 23:59:48  1105234
>>1105232
>/thread
>/thread
Аноним 09/12/17 Суб 00:01:21  1105237
>>1105234
/std::thread
Аноним 09/12/17 Суб 00:03:41  1105240
>>1105232
А не на ангельском? Я, конечно, могу, но это потребует больших усилий.
Я нашел книжку в шапке, но там 600 страниц.
Аноним 09/12/17 Суб 00:04:24  1105241
>>1105227
И это. На этом всё. http://www.cplusplus.com/reference/mutex/mutex/?kw=mutex
Аноним 09/12/17 Суб 00:05:58  1105242
>>1105240
Мудила, там определения функций и конструктора достаточно посмотреть что бы понять как оно работает, это тебе QThread с наследованиям или переопределениями.
Аноним 09/12/17 Суб 04:33:57  1105296
>>1105123
блять, ошибка strstream
Аноним 09/12/17 Суб 15:06:14  1105367
Аноны, подскажите пожалуйста, что я делаю не так. Суть: 2 класса (для одномерного и двумерного массива), в которых надо перегрузить операторы декрементации и инкрементации (должны уменьшать/увеличивать числа в массиве). Сделал все, как расписано в примерах на Хабре, искал примеры еще, но в итоге, после вызова оператора ++/-- имеющийся объект дропается, причем если вызов постфиксный - успевает вернуть старое значение, а после цикла с увеличением/уменьшением выпиливается. При попытке вывести - выводит пустую строку. Через дебаг во время вывода пишет, что чтение памяти невозможно.
Аноним 09/12/17 Суб 15:17:51  1105375
image.png (244Кб, 1920x1080)
Антоны, пишу крестики и нолики и почему-то нихрена не работает. Уже день голову ломаю, не могу понять в чем ошибка. Обоссыте, но если можете, то помогите.
https://ideone.com/FBaBG9
Аноним 09/12/17 Суб 15:39:42  1105396
>>1105367
Более знающие поправят, но ты создаешь внутри функции временный объект oldValuе и возвращаешь ссылку на него, а по выходу из функции память освобождается и возвращенная ссылка указывает на мусор.
Аноним 09/12/17 Суб 15:49:31  1105404
>>1105367
в пизду иди со своими картинками блядь
нахуй нам твоя лаба со всем дерьмом? Задай изолированный вопрос, на который можно ответить, не пытаясь сделать лабу за тебя
>>1105375
>#include <conio.h>
Обоссал. Тряси препода, он за это зарплату получает.
Аноним 09/12/17 Суб 15:51:38  1105405
>>1105396
Неа, он копию возвращает.
Аноним 09/12/17 Суб 15:57:59  1105408
>>1105375
And: identifier not found
Замени на &&
Во-вторых, ну ок, ты проверяешь, и если Y >0 продолжаешь гнать его в плюс. Надо же минус.
Потом ты перевод строки после трех символов не выводишь.
Но так то полный треш, это не починить.
Аноним 09/12/17 Суб 16:25:10  1105423
>>1105404
>Задай изолированный вопрос, на который можно ответить, не пытаясь сделать лабу за тебя
Извини, если сократить, то почему инкремент/декремент выпиливает объект, хотя должен просто его увеличить/уменьшить его?
Аноним 09/12/17 Суб 16:35:10  1105429
>>1105396
oldValuе - копия через конструктор копирования, в постфиксных операторах же должно возвращаться старое значение. Выходит так, что перегрузка вроде работает, т.к. первая строка создает копию как и должна, но сам объект, для которого был вызван инкремент - удаляется, хотя просто должен был увеличиться.
Аноним 09/12/17 Суб 17:08:56  1105441
Снимок.PNG (12Кб, 434x384)
Нужно посчитать кол-во слов в тексте, начинающихся на определённую букву. Сам текст находится в текстовом файле (1.txt).
Всё работает, но какого-то хуя не считывается самое первое слово. В чём проблема?
Аноним 09/12/17 Суб 20:18:45  1105599
>>1105423
Ответ: эти строчки кода ничего не "выпиливают" (лолштоблядь). Ошибка находится в другом месте. Если бы ты хотя бы код запостил, я бы ещё порылся.
>>1105441
На кой ляд тебе char[64] вместо std::string? Олсо, зря ты на eof проверяешь - он возникакет только тогда, когда считано на один символ больше, чем есть в потоке.
http://coliru.stacked-crooked.com/a/1f6b8cb5f2efd7d3
Вот так правильно.
>но какого-то хуя не считывается самое первое слово.
Слова-то, блядь, у тебя как записаны?
Аноним 09/12/17 Суб 21:14:43  1105618
>>1105599
>Ответ: эти строчки кода ничего не "выпиливают" (лолштоблядь). Ошибка находится в другом месте. Если бы ты хотя бы код запостил, я бы ещё порылся.

Просто именно после перегруженных операторов объект "перестает существовать". Я пробовал делать инкрементацию просто как обычную функцию, и она работала, но при попытке сделать так же в операторе ситуация повторялась.
http://coliru.stacked-crooked.com/a/6461ce653362870b
Аноним 09/12/17 Суб 21:29:28  1105625
>>1105618
Чудес не бывает. Ходи в отладчике, ставь брейкпойнты в конструкторах-деструкторах.
Аноним 09/12/17 Суб 23:23:49  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 диск и писать/читать оттуда, но это сильно бьет по переносимости проги.
Аноним 10/12/17 Вск 03:20:59  1105707
>>1103723
Олсо, КОНЕЧНО ЖЕ, ссылки и рвалью-ссылки, благодаря которым стало более добно писать в функиональном стиле.
>>1105618
ааааааазаааааааъхххааааъъъъъъазаззхзааааааааааа ёбаааа
>Vector* copy = ++vec;
Попробуй предположить, что делает эта строчка? Пару раз не угадаешь - расскажу.>>1105665
>Есть способ выкинуть этап сохранения/загрузки с диска?
>leptonica принимает (FILE
Нет. Как вариант - поищи что-нибудь в Бусте, мемори маппед файл какой-нибудь с ленивым сливом буфера записи.
Аноним 10/12/17 Вск 03:32:29  1105710
>>1105707
>Попробуй предположить, что делает эта строчка?
Создает указатель на инкрементированный объект класса?
Аноним 10/12/17 Вск 08:45:35  1105737
>>1105710
Не угадал. Ещё раз: что такое vec? Прочти определение vec.
Аноним 10/12/17 Вск 11:01:19  1105754
>>1105737
Vec - указатель на объект, т.е. в copy я пытаюсь создать указатель на указатель, который я инкрементирую без разыменования, т.е. вместо того, чтобы увеличить значения по адресу, увеличиваю сам адрес?
Аноним 10/12/17 Вск 15:53:32  1105842
>>1105754
Бинго! Ну а дальше сам, по шагам: продумай, что нделает каждый символ.
Сразу говорю: для того, чтобы присвоить вектор вектору, тебе не хватает конструктора копирования (дефолтный есть, но при определении любых конструкторов он удаляется).
Аноним 10/12/17 Вск 15:57:57  1105846
>>1105754
Точнее, ты не указатель на указатель создаёшь, ты только инкрементируешь указатель и говоришь что это указатель новый вектор. Если тебе прям до жопы нужно именно с указателями трахаться, то делается это вот так:
http://coliru.stacked-crooked.com/a/722b1939961b68de
Но опять же, тебе не хватает конструктора копирования как минимум, как бы ты не изворачивался.

Сделать указатель на указатель тебе не даст статическая типизация.
Аноним 10/12/17 Вск 16:51:33  1105863
>>1105842
>>1105846
Спасибо, анон!
Аноним 10/12/17 Вск 17:03:22  1105869
Есть план местности, разделённой на квадраты, заданный матрицей. Ячейка матрицы - высота этого квадрата над нулевым уровнем. Нужно найти кратчайший путь из (х0,у0) в (х1,у1). Длина перемещения из квадрата в квадрат = k, длина спуска/подъёма при переходе в соседний квадрат = модулю разности высот квадратов. Двигаться можно только между центрами квадратов и параллельно осям Ох, Оу.

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

бтв, stl юзать низя
Аноним 10/12/17 Вск 17:07:32  1105871
>>1105869
>бтв, stl юзать низя
Ну тогда и пиздуй в C-тред, хули тут то забыл?
Аноним 10/12/17 Вск 17:11:41  1105873
>>1105871
Ну приоритетную очередь я написал, а дальше stl-то зачем? Вся трабла тут
> Хочу ебануть алгоритм Дейкстры, но нужна матрица с весом рёбер графа. Как её получить из "плана местности" я не ебу. Хелп, аноны.
Аноним 10/12/17 Вск 17:14:45  1105875
>>1105873
Сделай структуру дерева, переведи матрицу в дерево и ебани по ней рекурсивно алгоритм Дейкстры
Аноним 10/12/17 Вск 17:18:48  1105877
>>1105875
Нужно приоритетной очередью. Поэтому, собственно, и нужна матрица веса рёбер
Аноним 10/12/17 Вск 17:51:21  1105889
>>1105869
Что такое матрица весов рёбер графа? Что такое вес ребра графа? Если ты не можешь ответить на эти вопросы - иди нахуй. Если ты можешь ответить на этив вопросы, то дальше ты и сам сможешь.
Аноним 10/12/17 Вск 20:56:51  1106016
Господа, в шапке Липман допотопный лежит( 2007) года.
Там Вводный курс, а необходим базовый.
Аноним 10/12/17 Вск 23:21:27  1106105
2chan.PNG (65Кб, 668x171)
Привет аноны, такое дело очень стараюсь делать все задания в Программирование. Принципы и практика использования C++, сложно конечно но получается и вот напоролся на задания -чтобы сделать поток ввода стал явным параметром.
Делаю все по гайду в 8.5.8, в параметры функций - Token_stream& ts a в main строку - Token_stream ts;
Все работает и я был очень рад что избавился от глобального, да только с istream& этот способ не работает! конечно я не дебил и начал искать где только можно. Я сразу увидел что ничего нет и это шаблон класса и мне это ничего не сказало потому что я только вкатился. Так как это сделать ядрён батон? объясните пожалуйста ньюфагу
Аноним 11/12/17 Пнд 05:42:17  1106173
>>1106105
Запость хоть какой-нибудь код, мы тут ванги штоле?
Аноним 11/12/17 Пнд 10:18:47  1106203
>>1106173
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, я хрен знает как это сделать
Аноним 11/12/17 Пнд 10:24:25  1106204
>>1106203
если еще короче, я не понимаю как просто передать istream в параметр функции
istream is;
foo(is);//не работает
Аноним 11/12/17 Пнд 18:11:49  1106314
>>1106203
>не работает
Ты ему зарплату что ли платишь, уёбок? Почему из вас, пидорасов, надо клешнями всю информацию вытягивать? Если я тебе покажу код и скажу "не работает", тебя это устроит?
Аноним 11/12/17 Пнд 18:51:19  1106316
>>1106173
>Запость хоть какой-нибудь код
int main() {}
Аноним 11/12/17 Пнд 19:38:37  1106332
Пытался вот месяц вкатиться в Java. И вот, что, хуи сосет ваша Java. Ничего лучше плюсов не найти.
Аноним 12/12/17 Втр 01:29:09  1106462
Парни, норм тема взять макпук 12 дюймов? Задача портировать с винды пару легких десктопных приложений на крестах с qt, а потом просто носить его с собой - ну там открыть документ в люстре/индизе, ворд-эксель, браузер. С хакинтошем и виртуалками пердолиться не хочу. Потянет или надо прошку брать?
Аноним 12/12/17 Втр 03:14:27  1106476
>>1106462
Ясен хуй, потянет. Я не знаю, какой там в макоси планировщик - быть может, там такая же жопа, как в винде, когда одна из программ начинает слишком много вычислять, и приоритет активного приложения не повышается. Если это не так, меня эти 1,2/3 ГГц не смущают никак - ну подождёшь ты немного в паре мест, ну и хуй с ним.

Прямо сейчас сижу с селероном x86 1,5 ГГц - вполне терпимо. Открыть пидиэфку и текстмейкер и несколько вкладок (штуки четыре) в браузере я точно могу. Хорошее видео не декодируется, максимум - какое-нибудь 102460030.
Аноним 12/12/17 Втр 03:37:31  1106477
image.png (64Кб, 567x601)
>>1106476
>1024х600х30
Проигрыватель плохой или шибко сложный кодек. Вот такое чудо проигрывает на старом the kmp 1920х1080 в mp4. Там можно в настройках видеодрайвера включить разрешение экрана вплоть до 2560х..., так что когда мышку к краю экрана подводишь - отображаемая область передвигается.
Аноним 12/12/17 Втр 04:02:23  1106482
>>1106477
Данунахуй! Скинь любой пример, сравним. Я использую MPC-HC.
Аноним 12/12/17 Втр 05:29:59  1106490
>>1106482
Едва нашёл флешку, которую тот ноутбук прочитал, лол, чтобы точно убедится. Там проблема с 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ГБ, при обращении к которым система падает с бсодом.
Аноним 12/12/17 Втр 10:07:33  1106534
11-1.png (31Кб, 1330x688)
222.png (58Кб, 1380x882)
333.png (27Кб, 628x582)
444.png (32Кб, 700x746)
Анон, можешь подтвердить что я правильно работаю с QThread?
Цель - останавливать новый поток при помощи отправки данных из основного потока.
Всё сделал правильно? Что-то добавить-убрать?
Аноним 12/12/17 Втр 12:07:24  1106553
Аноны, вы на чем пилите графический дизайн приложений?
Аноним 12/12/17 Втр 12:09:26  1106554
>>1106490
>Едва нашёл флешку, которую тот ноутбук прочитал, лол, чтобы точно убедится. Там проблема с usb портами (только один из трёх работает) и аккумулятором (10+ лет из которых шесть лет я его ежедневно использовал) - ни один внешний хард не раскручивается, всем питания мало.
Вычислим по IP.
Аноним 12/12/17 Втр 12:39:45  1106556
>>1106553
Я сейчас вкатываюсь в QT. Раньше MFC
Аноним 12/12/17 Втр 12:50:30  1106560
>>1106556
В чем преимущества у MFC или Qt? Что проще для усвоения?
Аноним 12/12/17 Втр 12:52:21  1106562
>>1106560
QT ессно. Возможная кроссплатформенность и адекватный механизм сигнал-слотов.
MFC - адок.
Аноним 12/12/17 Втр 12:59:35  1106566
>>1106562
Спасибо. Кроссплатформенность на производительность влияет?
Аноним 12/12/17 Втр 13:02:40  1106567
>>1106566
Ну ты можешь не заниматься кроссплатформенностью, а писать под конкретную ОС. Но а вообще всё зависит от скилла.
Аноним 12/12/17 Втр 13:07:52  1106568
>>1106567
Спасибо большое. Бэхэтле бул.
Аноним 12/12/17 Втр 15:47:20  1106599
>>1106562
>QT
>адекватный механизм сигнал-слотов.
>#define signals public
>#define slots
Аноним 12/12/17 Втр 17:11:07  1106647
>>1106599
MOC? Не, не слышал.
Аноним 12/12/17 Втр 17:51:07  1106666
>>1106566
Нет, если это не boost или Qt (если вы понимаете о чем я)
Аноним 12/12/17 Втр 17:54:45  1106670
>>1106647
Щас бы костыль как преимущество приводить...
Аноним 12/12/17 Втр 18:25:29  1106684
>>1099142 (OP)
Вопрос по разработке через тестирование. Если есть класс в файлах .h и .cpp, в каких файлах писать для него тесты? Где вы размещаете свои тесты?
Аноним 12/12/17 Втр 18:45:26  1106691
>>1106684
Тесты - для тех кто не умеет писать нормальный код.
Аноним 12/12/17 Втр 18:45:49  1106692
>>1106691
Старпер, плес.
Аноним 12/12/17 Втр 19:19:52  1106705
>>1106684
В отдельных файлах.
Аноним 12/12/17 Втр 20:06:19  1106723
Хочу обмазать свой проект на Qt тестами GoogleMock. На этапе линковки получаю ошибку: обнаружено несоответствие для "RuntimeLibrary": значение "MTd_StaticDebug" не соответствует значению "MDd_DynamicDebug" в db.obj

Что я делаю не так? Как исправить?
Аноним 12/12/17 Втр 20:46:11  1106736
>>1106723
Не тот типа библиотеки подключаешь или наебланил в настройках. Проще поставить линукс.
Аноним 12/12/17 Втр 20:50:52  1106738
>>1106736
Не получается скомпилировать GoogleMock как DLL.
Аноним 12/12/17 Втр 20:52:34  1106741
>>1106738
Ну вот собираешь не тот тип debug/release static/dynamic.
Аноним 12/12/17 Втр 20:57:10  1106742
ОС может отбирать память у приложения? Она шлет там типа сообщения какие-то, или еще как-то надо проверять не стал ли указатель нулем? Тот же вопрос про видеопамять, в связке с OpenGL.
Аноним 12/12/17 Втр 20:58:21  1106743
>>1100011
поясняю. нужно. для овердохуя чего. если не физический, то виртуальный абсолютли
Аноним 12/12/17 Втр 21:00:06  1106745
>>1106691
и для тех, у кого овердохуя свободного времени, имхо
Аноним 12/12/17 Втр 21:06:09  1106750
>>1106745
Это у тех, кто не пишет тесты, овердохуя свободного времени, чтобы потом тратить 10х время на ловлю багов.
Аноним 12/12/17 Втр 21:07:28  1106751
>>1106750
лол, за 10 лет коддинга ни разу не искал баг более 10 минут. сука, рили тесты для рукожопов
Аноним 12/12/17 Втр 21:08:39  1106752
>>1106751
Видимо у тебя одни хеллоу ворлды. Алсо не искал != что их у тебя нет.
Аноним 12/12/17 Втр 21:09:26  1106753
>>1106751
Ты даже в исходники библиотек никогда не лез искать ошибку?
Аноним 12/12/17 Втр 21:10:40  1106754
>>1106753
лез, даже на багтрекер писал. фиксили. но это блять никак к тестам не относится. это уже рукожопость разработчиков фреймворка
Аноним 12/12/17 Втр 21:10:57  1106755
>>1106753
лез, даже на багтрекер писал. фиксили. но это блять никак к тестам не относится. это уже рукожопость разработчиков фреймворка
Аноним 12/12/17 Втр 21:11:31  1106756
>>1106754
Не больше 10 минут, да?
Аноним 12/12/17 Втр 21:13:11  1106758
>>1106756
хуйна. при чем тут исходник библиотеки и тест?
Аноним 12/12/17 Втр 21:21:32  1106760
>>1106758
При том.
Аноним 12/12/17 Втр 21:37:05  1106767
Пишу проект расчета зарплаты. Приложение работает с базой SQLite. Где хранить процедуры общения с бд типа "получить базовую ставку работника" и "получить опыт работы в годах"? Дублировать код в каждом подклассе типа работника или группировать в классе запросов?
Аноним 12/12/17 Втр 21:54:56  1106771
>>1106767
Я бы хранил "рыбу" в функции "по клику на кнопку "Сформировать"" куда динамически подтягивал параметры из ui. Но я не специалист.
Аноним 12/12/17 Втр 23:22:02  1106828
>>1106670
Я привожу, как преимущество, то, что я знаю, как это работает, и что слова "signal" и "slot" обозначает, и подразумеваю, что ты идиот, так как не умеешь абстрагироваться от деталей реализации, которые ты специально отрыл, хуй знает, зачем.
>>1106742
Открой документацию к своей ОС и прочти сам.
Аноним 13/12/17 Срд 01:26:21  1106856
>>1099142 (OP)
В очередной раз пытаюсь вкатиться в Qt ради GUI. В этот раз поставил на вижак плагин, и столкнулся с той же проблемой, что и в прошлый раз - при компиляции в целевой папке есть только .exe файл, никаких Qt'шных либ там нет. Вопрос - как можно настроить компиляцию, чтобы я на выходе получал папку со всеми необходимыми бинарниками, вот прям чтобы взял и запустил на другом ПК? Или в опенсорсной версии Qt хуй мне на рыло с такими запросами и запускать только локально из IDE? В прошлый раз единственное решение, которое я нашел - добавлять ВСЕ Qt'шные либы в папку с .exe и запускать .exe, убирая либы по одной, чтобы узнать, какие нужны. Но это же блять не серьезно. Есть какие нибудь решения?
Аноним 13/12/17 Срд 02:18:56  1106862
>>1106856
Запускаешь бинаргик на чистой виртуальной машине и добавляешь по одной запрашиваемве библиотеки. По-другому никак.
Аноним 13/12/17 Срд 02:29:52  1106863
>>1106856
$QTDIR/bin/windeployqt.exe
Аноним 13/12/17 Срд 02:43:29  1106865
>>1106863
Хуя до чего техника дошла.
Аноним 13/12/17 Срд 09:34:22  1106904
image.png (106Кб, 1093x402)
Посоны, раньше писал на нормальных языках, сейчас решил изучить С++, читаю книжки из шапки, вот в одной из книг смущает строка пикрелейтед - n < hexdigits.size(); Я так понимаю, каждую итерацию вызывается метод size()? Это на С++ нормально? Зачем каждый раз вызывать метод, если можно один раз его узнать?
Аноним 13/12/17 Срд 10:21:02  1106912
>>1106904
Сейчас компиляторы умные и сами вынесут результат метода из цикла если в нем вызывались только константные методы, ну так то да такую хуйню писать это плохой тон.
Аноним 13/12/17 Срд 11:19:37  1106924
>>1106904
> Зачем каждый раз вызывать метод, если можно один раз его узнать?
Затем, чтобы код был читаем. Ты ещё спросил "зачем цин>> каждый раз вызывать" (вызов которого на порядок затратнее). Сайз - это метод, который целиком определён в хедере, так что компилятор будет инлайнить его, если ты не запретишь, так что от вызова метода объекта, сохранённого на стеке, вообще нихуя не остаётся - ни передачи указателя, ни джампа, нихуя, так как функция size() - это только обращение к переменной. Уберёшь флаг оптимизации - вызов появляется.
https://godbolt.org/g/Co8q7N
https://godbolt.org/g/JVCPNd
Что там за нормальные языки у тебя были, лол?
Аноним 13/12/17 Срд 13:44:35  1106946
>>1106924
>Что там за нормальные языки у тебя были, лол?
Те, в которых не надо писать лишние скобочки рядом с константами или свойствами?
Аноним 13/12/17 Срд 14:11:41  1106953
>>1099142 (OP)
Анон, есть такой класс для расчета зарплаты сотрудника: https://ideone.com/LLLzKF

Не лучше ли следовать принципу единой ответственности и выделить весь код, отвечающие за расчет зарплаты, в отдельный класс Salary? Для разных типов сотрудников зарплата рассчитывается по-разному, но формулы допускают обобщение.
Аноним 13/12/17 Срд 14:14:09  1106956
Котяры помогите нубу. Есть допустим указатель int *a = new int[10];
Я могу получить адрес этого указателя: cout << &a;
Но что за число я получаю когда ввожу cout << a? Без звездчоки. Там тоже какое-то число шестнадцатиричное, но куда оно указывает?
Аноним 13/12/17 Срд 14:19:41  1106960
>>1100967
Прочёл как Степан.
Аноним 13/12/17 Срд 15:27:41  1106998
>>1106956
Сам же написал уже всё.
a - указатель, как ты сам и написал. Он указывает на первый из твоих десяти int. &a - адрес указателя а, то есть оно указывает на а.

&a -> a -> int[10]
Реально в памяти существуют только а - явная переменная типа int* и int[10] - выделенная при помощи new память.
Аноним 13/12/17 Срд 15:33:53  1107001
>>1106956
&a - адрес переменной a в памятьи
a - адрес, на который указывает указатель a, то есть адрес массива int[10] в куче памяти.
Аноним 13/12/17 Срд 15:50:46  1107004
>>1106953
Мне кажется, логичнее оставить в классе, только сделать функцию виртуальной, чтобы можно было для каждого дочернего класса вызывать свою версию getBaseRate();
Аноним 13/12/17 Срд 16:28:39  1107021
>>1107004
>getBaseRate();
Для всех одинаковая. Различие в том, что у Manager и Sales есть надбавка за подчиненных.
Аноним 13/12/17 Срд 17:07:38  1107038
Почему статические методы считаются злом? Как писать без них?
Аноним 13/12/17 Срд 17:14:40  1107042
>>1107001
спасибо анон
Аноним 13/12/17 Срд 17:26:51  1107051
>>1107004
>Мне кажется, логичнее оставить в классе
Ну хорошо. А как пишут юнит-тесты для приватных методов?
Аноним 13/12/17 Срд 17:44:20  1107062
>>1107051
Унаследуйся от класса и импортируй все методы в публичную область видимости с использованием using, или сделай объект доступа к методам касса через friend или #define private public лол
Аноним 13/12/17 Срд 17:59:16  1107068
Screenshot2017-[...].png (77Кб, 742x669)
Есть B+ дерево, которое в общем выглядит как на пике. Вопрос, нужно ли писать конструкторы для InnerNode и LeafNode и прописывать в них new для выделения памяти под масссивы (тогда и соответствующий деструктор нужен) или можно так оставить? Просто оно и так компилируется, хотя я подозреваю, что если в DEGREE передавать переменную, то оно не должно так просто заработать. Как лучше всего выделять память по массивы в структурах?
Аноним 13/12/17 Срд 18:13:44  1107074
>>1107038
ООП
О
П
Аноним 13/12/17 Срд 18:17:47  1107076
>>1106863
Билять анон спасибо! Ты вернул мне мотивацию изучать Qt.
Аноним 13/12/17 Срд 18:21:17  1107080
>>1107038
Лень расписывать, ну короч считай так: объект-бог это всегда плохо, потому что у него много связей с остальными объедками, и если что-то поменяется, придется разгребать весь этот фарш, вместо четкой иерархии объектов. Второй момент это скрытое состояние, которое наверняка где-то неявно будет меняться при вызовах. А если хранить состояние в статических переменных, можно нарваться на то, что они могут инициализироваться в произвольном порядке.
Аноним 13/12/17 Срд 18:26:07  1107083
>>1107038
>Почему статические методы считаются злом?
Потому что есть свободные функции.
> Как писать без них?
Замени на свободные функции.
Аноним 13/12/17 Срд 18:45:11  1107087
>>1107083
Святая толстота.
Аноним 13/12/17 Срд 19:41:52  1107111
>>1107087
Ты просто ООП-сектант. А free functions — это best practices.
Читай, быдло http://www.drdobbs.com/cpp/how-non-member-functions-improve-encapsu/184401197
Аноним 13/12/17 Срд 19:55:39  1107120
>>1107111
Ну ок, подменяем класс на неймспейс.
Аноним 13/12/17 Срд 20:29:14  1107129
>>1107120
Нахуя вообще нужны классы, когда есть неймспейсы? Ведь класс это просто неймспейс+тип.
Аноним 13/12/17 Срд 20:40:40  1107134
>>1107120
>>1107129
Сектанты, классы могут быть шаблонными, а неймспейсы — нет.
Аноним 13/12/17 Срд 20:47:53  1107141
>>1107134
Навернуть макросов или как там в Кьютии, препроцессор какой.
Аноним 13/12/17 Срд 20:48:41  1107142
>>1107141
Наверни говнеца лучше.
Аноним 13/12/17 Срд 21:29:35  1107154
>>1106946
Какими ещё свойствами? Ты обдолбался?
>лишние скобочки рядом с константами
штоблядь
>>1107068
> (тогда и соответствующий деструктор нужен)
shared_ptr
>если в DEGREE передавать переменную, то оно не должно так просто заработать.
Прочитай определение шаблона.
>>1107129
Хочу пять одинаковых неймспессов в рантайме. Надо создать пять процессов?
Аноним 13/12/17 Срд 21:30:58  1107156
>>1107154
>Какими ещё свойствами?
Такими, какими было бы поле size в нормальном языке.
>писать на каждый() чих() скобочки()
>читаемо
Аноним 13/12/17 Срд 21:44:03  1107162
>>1107156
>size
>константа
Микроконтроллеропидор закукарекал.
Аноним 14/12/17 Чтв 01:00:04  1107257
>>1107154
>shared_ptr
Почитал про него. Нормальная тема, спасибо.
>Прочитай определение шаблона
Да, уже успел глянуть. Знатно опозорился. Решил итого не трахаться с динамичсеской памятью, всё равно всего лишь курсач.
Аноним 14/12/17 Чтв 14:08:40  1107432
@
УСТРОИЛСЯ В НОВУЮ КОНТОРУ
@
КУЧА ЛЕГАСИ КРУГОМ
@
C++11 - НЕ, НЕ СЛЫШАЛИ
@
СТИЛЬ НЕ ЕДИНООБРАЗНЫЙ, КУЧА ПЛАТФОРМЕННОГО КОДА ТОРЧИТ НАРУЖУ
@
ВЕДУЩИЙ ПРОГРАММИСТ ГОВНОКОДЕР
Аноним 14/12/17 Чтв 14:10:03  1107433
>>1107432
@
ПЫТАЕТСЯ ДОКАЗАТЬ ТЕБЕ, ЧТО ДЕСТРУКТОРЫ ЧЛЕНОВ-ДАННЫХ ВЫЗЫВАЮТСЯ В РАНДОМНОМ ПОРЯДКЕ
Аноним 14/12/17 Чтв 14:34:44  1107438
>>1107433
@
не знает про rvalue, auto, array


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

@
ПИШЕШЬ КОД НА ++
@
ПЫТАЕШЬСЯ ДОКАЗАТЬ ЧТО ОН БЕЗОПАСНЕЕ
@
ГОВОРЯТ ЧТО НИХУЯ, ТАК КАК СТРОЧЕК БОЛЬШЕ!
Аноним 14/12/17 Чтв 14:55:05  1107449
>>1107438
Я по седжвику изучал. Объявняет сжато и без лишней патематики. Кнута трудно читать, как по мне.
Аноним 14/12/17 Чтв 14:55:55  1107450
>>1107449
А по цене как? Я просто заебусь его в pdf читать.
Томик Кнута 3к примерно.
Аноним 14/12/17 Чтв 15:02:55  1107455
>>1107450
хз, там особо не надо зачитываться, лучше с собой тетрадку иметь, чтобы представлять как это "в пространстве". Если бы без тетрадки сидел, ебанулся бы думать, как patricia дерево работает.А так с PDF читал.
Аноним 14/12/17 Чтв 16:00:30  1107478
Аноны, я вкатился недавно в программирование, но так и не понял смысл ссылок. Зачем они нужны?
Аноним 14/12/17 Чтв 16:33:22  1107482
>>1107478
Вкратце, чтобы не трахаться с указателями, когда в этом нет нужды. В анлийской википедии неплохо описаны отличия ссылок от указателей.
Аноним 14/12/17 Чтв 16:38:39  1107484
>>1107482
Обоссыте меня, но какой смысл в указателях?
Аноним 14/12/17 Чтв 16:42:05  1107486
>>1107478
Чтобы не пользоваться указателями
Аноним 14/12/17 Чтв 16:43:22  1107487
>>1107441
@
СТАТИЧЕСКАЯ ТИПИЗАЦИЯ? У МЕНЯ ИЗЗА НЕЁ НЕ КОПМИЛИЯЕТ, ЗАЧЕМ ОНА?
>>1107478
С точки зрения приципа работы - отличий от указателя нет.
С точки зрения C++: передать указатель на временное значение нельзя, а передать временное значение по конст-ссылке или рвалью-ссылке можно. Сдвигать ссылку нельзя, а указатель можно.
То есть, ссылки в C++ нужны для улучшения читаемости кода (меньше стрелок, звёзд и амперсандов), расширения сферы применения функций, соблюдения безопасности кода (но отхуячить ногу повисшей ссылкой ты всё равно сможешь, так что тут бабка надвое сказала. Пока перегрузку "оператор." не завезли, умных ссылок не будет, а без них и безопасности нормальной не будет).
>>1107484
лиспоблядь закукарекала
Аноним 14/12/17 Чтв 16:43:23  1107488
>>1107486
Ок... Можно как-то без них программировать нормально?
Аноним 14/12/17 Чтв 16:49:41  1107490
>>1107488
Без кого?

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

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

Без ссылок и указателей - да, это будет неоптимально и рано или поздно ты упрешься в ограничения размера стека, но это вроде как настроить можно
Аноним 14/12/17 Чтв 16:51:23  1107491
>>1107488
на другом языке
Аноним 14/12/17 Чтв 16:51:55  1107492
>>1107488
на другом языке
Аноним 14/12/17 Чтв 16:52:18  1107493
>>1107488
например, чтобы не засирать память.
Ну, ты в любом случае со временем поймёшь.
И например есть такая весёлая тема, что ты делаешь указатель на переменную в функции, ретурнишь, а оно возвращает хуй, так как функция умерла
Аноним 14/12/17 Чтв 16:52:51  1107494
>>1107488
Конечно можно, только копирований будет дохуя (инбифо в моих задачах не будет) и производительность просядет. Чтобы функциональный код быстро работал (а код без указателей и ссылок - это чаще всего код в функциональном стиле), компиляторы и интерпретаторы функциональных языков используют кучу трюков, которые эквивалентны работе с указателями в плюсах, но разница всё равно есть. Даже в плюсах есть трюки для устранения лишнего копирования.
Аноним 14/12/17 Чтв 17:11:04  1107499
>>1107484
Представь себе, что ты рисуешь кнопку с картинкой, что быстрее при вызове нескольких функций, копировать всю 10мегабайтную картинку или передавать только один указатель на память?
Аноним 14/12/17 Чтв 18:47:39  1107545
image.png (127Кб, 1024x768)
Я студент, вчера писал лабу смысл задачи был такой:
пользователь вводит массив чисел а дальше с ними происходят некие действия и затем выводится массив. Только массив для этого должен быть динамический. Я решил не спрашивать у пользователя какой массив он хочет, а решил увеличивать массив путём копирования во 2 удаления, 1 созданием, но уже увеличенным в объёме, копирования в 1 , удалением 2 что бы в следующий раз если пользователь захочет увеличить объём, то
опять создатся 2 массив увеличинный и произойдёт всё что я описал выше. Но там возникла проблемма массивы не копировались друг в друга. Я решил написать программу дома и здесь тоже возникла проблема , но уже другая.Выдаёт вызвано исключение: нарушение доступа для записи.
arr_one было 0x1118239. Вот я пришёл сюда за помощью. Подскажите пожалуйста что я не так сделал.
Вот код:
https://ideone.com/0Y8IU1
Аноним 14/12/17 Чтв 19:12:12  1107560
>>1107545
Дождись когда будете на лекциях проходить стандартную библиотеку C++ - STL. Там уже есть готовые динамические массивы vector. Расширение массива на один элемент решается в одну строчку:

// пустой массив целых чисел
vector<int> vv; // сейчас размер 0
// добавить элемент
vv.push_back(22); // сейчас размер 1
Аноним 14/12/17 Чтв 19:33:38  1107569
>>1107560
Ну а моя затея чем плоха?
Аноним 14/12/17 Чтв 19:39:14  1107575
>>1107569
Плоха она тем, что происходит ОЧЕНЬ много бессмысленных выделений-освобождений памяти и операций копирования. А если по твоему коду - то меня очень напрягло то, что в одной функции у тебя ДВА раза объявляется переменная с одним и тем же именем int *arr_one. Если ты удалил область памяти, на которую указывал arr_one, то это не значит что сам указатель пропал.
Аноним 14/12/17 Чтв 19:41:41  1107576
>>1107545
Off by 1 ошибка.
Ну прогони в голове у себя одну итерацию цикла. Индексы в массивах идут с нуля, выделаешь память ты индексом. new int[1] это ровно 1 инт
Аноним 14/12/17 Чтв 19:52:54  1107586
>>1107545
Ну и ты 2 раза копируешь зачем-то, можно же один раз копировать.
0. у тебя есть массив
1. выделяешь память под новый массив (с новым размером)
2. копируешь из старого массива в новый и освобождаешь память старого массива
3. заменяешь указатель на старый массив указателем на новый.

Кроме того, на практике это реализуется хитрее: когда структура данных растёт, но новый массив можно делать размером не размер_старого + 1, а размер_старого + 1/2 * размер_старого, например (увеличивать размер только когда в старом место кончилось). Это так реализовано везде и каждый раз не нужно выделять память и копировать (обе операции сравнительно медленны)
Аноним 14/12/17 Чтв 20:18:42  1107600
>>1107545
Если хочешь делать динамической, быстро расширяемое хранилище то делай что-то типа односвязного списка.
https://ideone.com/OGrqrF
Аноним 14/12/17 Чтв 23:43:43  1107698
>>1099142 (OP)
Анон, как правильно определять константы типа double, используемые в классе?
Аноним 14/12/17 Чтв 23:44:02  1107700
>>1107586
ну так я копирую во временное хранилеще. Что бы увеличить старое , сохранить в него а затем удалить временное хранилеще. Не знаю как тебе, но мне эта идея кажется очень логичной.
Аноним 15/12/17 Птн 00:02:09  1107703
>>1107700
То есть два раза копируешь?
Аноним 15/12/17 Птн 00:03:31  1107704
>>1107703
да
Аноним 15/12/17 Птн 00:06:40  1107706
>>1107698
Тащемта ничего сложного нет. Просто объявляешь и определяешь.
Аноним 15/12/17 Птн 01:17:24  1107741
>>1107698
Хочешь const (инициализируется только в конструкторе), хочешь - static constexpr.
>>1107704
Нахуя.
Аноним 15/12/17 Птн 18:27:34  1108034
1513351633511.jpg (64Кб, 1280x719)
Суп. Пикрил проблема. Она меня уже заебала. Качал разные версии, щелкал по настройкам по ссылке, гуглил, нихуя не помогло. Как исправить?
Аноним 15/12/17 Птн 19:15:22  1108047
>>1108034
Переходи на MSVS
Аноним 15/12/17 Птн 19:21:47  1108049
>>1108034
первый раз такое вижу
кутгосподин
Аноним 15/12/17 Птн 19:26:51  1108058
>>1108047
Лол, а походу я угадал пальцем в небо
https://forum.qt.io/topic/66109/missing-kits
И анон, пользуйся инглишем хотя бы для поиска сообщений об ошипках, первая ссылка же про qt missing kits
Аноним 15/12/17 Птн 19:27:25  1108059
>>1108047
> Переходи на MSVS
Я потому и скачал Кьют, что это параша ебаная. Создает все за тебя непонятно каким образом, чуть что не так сделал - сразу все наебнулось без возможности восстановления, а тут все пишется вручную, весь код твой родной, а не высратый, блядь.

>>1108049
Ну охуеть.
Аноним 15/12/17 Птн 19:28:34  1108061
>>1108058
>Лол, а походу я угадал пальцем в небо
ставить кутиде чтобы кодить на мспараше? охлол
Аноним 15/12/17 Птн 19:43:23  1108075
>>1108058
> https://forum.qt.io/topic/66109/missing-kits
Не понял. Мне нужно пути к проектам сделать без пробелов и спецсимволов? Это не помогло. К тому же, он написал что у него работает Qt Widget, а у меня на пике именно он. Что тогда?
Аноним 15/12/17 Птн 20:02:22  1108081
>>1108061
Наоборот же, там написано ставить студию и подключать компилер к твоей кьюти.
Аноним 15/12/17 Птн 20:05:07  1108082
>>1108034
Собственно, даже если при скачивании дистрибутива с креактором и запуска креактора из того бистрибутива такая проблема, то нужно сделать следующее:
- сделать то, что написано над пустым списком
- написать багрепорт
>>1108075
>Мне нужно пути к проектам сделать без пробелов и спецсимволов?
И пути к файлам КуТэ тоже.
Аноним 15/12/17 Птн 20:05:35  1108083
>>1108081
> ставить студию и подключать компилер к твоей кьюти
так, а зачем пик с креатора? он к либам никакого отношения не имеет

анон же хочет компилить из креатора конпелаятором мс?
Аноним 15/12/17 Птн 20:06:21  1108084
>>1108081
Кому ты пиздишь? От студии только компилятор нужен, взять его можно либо из студии, либо из SDK соотв. версии.
Аноним 15/12/17 Птн 20:19:06  1108085
>>1108084
Это ровно то что я и написал.
Аноним 15/12/17 Птн 20:21:58  1108087
>>1108082
> - сделать то, что написано над пустым списком
Сделал уже давно. С начала там был желтый треугольник с восклицательным знаком, потом я нащелкал что его нет. Ничего не изменилось.
> - написать багрепорт
Какой багрепорт? Я же говорю, что качал разные версии, и древние, и современные, все одно и тоже.
> И пути к файлам КуТэ тоже.
Да вроде там все без пробелов. D:\Programs\Qt.
Пиздец какой-то, короче. Какие альтернативы для Qt? Такие, чтобы код был мой, а не высираемый автоматически.
Аноним 15/12/17 Птн 20:23:04  1108088
>>1108083
Не знаю о чем ты, я кинул ссыль на тред, там английским по белому написано:
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.
Аноним 15/12/17 Птн 20:23:58  1108089
>>1108059
>Я потому и скачал Кьют, что это параша ебаная. Создает все за тебя непонятно каким образом, чуть что не так сделал - сразу все наебнулось без возможности восстановления, а тут все пишется вручную, весь код твой родной, а не высратый, блядь.
>

Ты настолько необучаемый, что не можешь создать пустой проект?
Аноним 15/12/17 Птн 20:45:35  1108099
>>1108034
Переходи на линукс, сможешь выбрать гцц. Иначе ебись со студией или мингв.
Аноним 15/12/17 Птн 22:14:49  1108131
>>1108087
>Какой багрепорт?
В компанию Qt, блядь. Не должно быть так, что ты скачал дистрибутив, поставил, запустил, и не можешь программу собрать, это баг.
Я только одно могу предположить: ты скачал дистрибутив для MinGW.
>>1108089
А ты попробуй сам создать пустой проект, придурок, когда от тебя требуют выбрать кит и отключают кнопку "далее".
Аноним 15/12/17 Птн 22:18:07  1108134
>>1108131
>Я только одно могу предположить: ты скачал дистрибутив для MinGW.
Но даже в этом случае у тебя будет хотя бы кит для мингв в списке, если ты его не удалил.
Аноним 15/12/17 Птн 22:31:32  1108141
>>1108131
>MinGW
все там заебись ставится, просто школотрон хочет привентить туда пидерскийканпилятор
Аноним 16/12/17 Суб 00:45:36  1108184
>>1108141
Ну дык так тоже можно и должно работать, сам так делал. Если не работает - вперёд в Жиру Куты.
Аноним 16/12/17 Суб 19:47:20  1108448
Аноны, а можно сделать так, чтобы переменные распологались в памяти без пробелов?
Аноним 16/12/17 Суб 20:25:29  1108456
>>1108448
Какие именно переменные-то? Зачем?
pragma pack для структур + свой менеджер памяти ничего не выравнивающий, только по перформансу ты обосрёшься.
Аноним 16/12/17 Суб 20:28:56  1108458
Безымянный.png (68Кб, 1920x1040)
При создании проекта появляется вот такая хуйня. Сбрасывал настройки через /resetuserdata - нихуя не дало. До этого пытался поставить библиотеку OpenCV. Что я сделал не так?
Аноним 16/12/17 Суб 20:38:22  1108469
>>1108458
Ты походу даже стандартные пути заголовков сбил, вася.
Совету изучить CMake и делать проект для спермостудии через него (куда проще и не будешь привязываться к одной платформе). Всё равно его используют все, и тебе так или иначе придётся.
Аноним 16/12/17 Суб 20:48:09  1108481
>>1108469
И что мне сейчас делать? Как мне эти стандартные пути вернуть? я их блять даже не трогал
Аноним 17/12/17 Вск 12:30:27  1108729
>>1108481
Проект новый создать, очевидно. И ещё очевидно что делать его стоит сразу на cmake как советовал антоша выше.
Аноним 17/12/17 Вск 17:52:51  1108848
>>1108131
> В компанию Qt, блядь. Не должно быть так, что ты скачал дистрибутив, поставил, запустил, и не можешь программу собрать, это баг.
Я же говорю, я качал разные версии, ты хочешь сказать это именно на моей пеке оно?
> Я только одно могу предположить: ты скачал дистрибутив для MinGW.
Да я блядж много чего качал, и с разными компонентами(с начала дефолтная папка tools, потом еще выбирал дополнительно верхние папки). А с чего вы вообще взяли, что я туда компилятор из студии присобачить хочу? Моя цель - наоборот от нее отгородиться. Я когда древнюю версию Qt скачивал, даже отдельно компилятор mingw туда скачал.
Аноним 17/12/17 Вск 18:45:06  1108872
>>1099142 (OP)
Есть вопрос ребята. Всегда ли 'a' = 'A', и всегда ли 'a' < 'b'?
Аноним 17/12/17 Вск 18:48:00  1108874
>>1108872
Нет, да.
Аноним 17/12/17 Вск 18:50:24  1108876
>>1108874
А можно объяснить, почему?
Аноним 17/12/17 Вск 19:12:25  1108883
>>1108876
Открой таблицу символов ASCII. Тип char в Си это просто интерпретация численного кода в букву или символ в более общем случае.
Поэтому 'a' непросто не равно 'A', а никогда не равно. Потому что 'а' имеет код 97, в то время как 'A' имеет код 65.
Твой вопрос сводится к вопросу, пацаны а 65 равно 97 ?

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

другой анон
Аноним 17/12/17 Вск 19:12:28  1108884
>>1108876
Потому что 'A' – это 0x41, а 'a' – 0x61 поэтому 'A' =/= 'a'.
'b' – это 0x62, 0x61 < 0x62 всегда выполняется.
Аноним 17/12/17 Вск 19:20:35  1108888
>>1108884
>>1108883
Cпасибо ребзи!
Аноним 17/12/17 Вск 19:51:03  1108903
>>1108883
>>1108884
Еще 1 вопрос знатокам. Почему в VS если задать: char x1 = 'a', x2 = 'A' и сравнить их через if, то они равны?
Аноним 17/12/17 Вск 20:42:26  1108935
>>1108903
Сравниваешь как =, заместо ==, лол? Нет идей.
Аноним 17/12/17 Вск 20:54:50  1108940
>>1108903
>>1108935

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

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

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

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

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

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

Стоит почитать/ освежить в памяти главу про условные операторы. Посмотри, что понравится в книгах из шапки.
С++ и Си не те языки, которые можно выучить шароебясь по форумам и задавая вопросы.
Аноним 17/12/17 Вск 20:56:09  1108941
>>1108940
Естественно х1 отправляется в оператор if, самофикс
Аноним 17/12/17 Вск 21:47:37  1108965
>>1108940
>>1108935
да, через = сравнивал, спасибо за разъяснение. Добра вам.
Аноним 18/12/17 Пнд 00:14:24  1109010
>>1108883
>>1108884
Стандарт не гарантирует, что basics character set это ASCII.

Что он гарантирует — что '0', '1', ..., '9' идут подря, так что
d == 'd' - '0'
для d = 0, 1, ..., 9 всегда выполняется, в любом basic character set.
Аноним 18/12/17 Пнд 13:15:11  1109160
>>1108848
Спутал тебя с кем-то из треда.
>>1108872
>Всегда ли 'a' == 'A'
Никогда. Потому что два разных символа, блядь. Если ты смог сохранить два символа в кодировке, коотрую компилятор поддерживает, они не могут юыть равны.
>и всегда ли 'a' < 'b'?
Скорее всего ты не найдёшь ни одной платформы, на которой это было бы не так, но C++ такое соответствие не задаёт.
>>1109010
>Что он гарантирует — что '0', '1', ..., '9' идут подря
Ссылку дашь?
Аноним 18/12/17 Пнд 13:32:48  1109163
>>1108448
new с размещением
Аноним 18/12/17 Пнд 16:01:17  1109229
Поясните дауну, в чем разница между обычными объектами, и new объектами? Человеческим языком. Все говорят, что это типа "выделение памяти". Блядь, а обычная переменная это не выделение памяти?
Аноним 18/12/17 Пнд 16:13:08  1109233
>>1109229
аналог malloc
Аноним 18/12/17 Пнд 16:36:10  1109243
>>1109229
Обычный объект или обычные переменные на неком стеке размещаются. Во-первых, размер стека ограничен, и он не сильно шибко большой, по умолчанию. Во-вторых, они там сами занимают и освобождают память. А через new ты можешь выделять сколько угодно памяти и по своей воле по мере необходимости в произвольном порядке её освобождать.


А вот чего realloc не завезли - понять не могу. Он же быстрее работает. Если кусок выделенной памяти был больше запрошенной, то он не будет перевыделять память вообще. А через new-delete придётся в любом случае выделять временный кусок и копировать какой-то мусор. И потому приходится делать костыли, что размер вектора удваивается при добавлении элементов, чтоб менеджер памяти не мучить, так что программе для работы требуется ощутимо больше памяти, чем ей реально необходимо.
Аноним 18/12/17 Пнд 19:36:22  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]
Аноним 18/12/17 Пнд 20:00:20  1109300
>>1109291
> Занялся изучением C
ну так и проследуй в С-петушатню-треадх
Аноним 18/12/17 Пнд 20:25:58  1109305
>>1109300
Там молчат
Аноним 18/12/17 Пнд 20:42:26  1109310
>>1109243
realloc тоже небыстр, и реаллок делают так же - увеличивают размер памяти в геометрической прогрессии.
Аноним 18/12/17 Пнд 20:45:05  1109313
>>1109291
Это нерабочий код, так как ты считываешь число лишь однажды. Скинь работающий код на ideone.
Аноним 18/12/17 Пнд 20:48:35  1109315
>>1109313
Я считываю число каждый раз как по новой захожу в цикл
https://ideone.com/xK5W3S
Аноним 18/12/17 Пнд 21:11:03  1109321
>>1109310
Угу. Но если самому писать самый тупой массив, то через new-delete он будет тормознее, так как он всегда в любом случае дублирует массив и производит копирование. Realloc же где-то внутри сохраняет размер выделенного куска, и без нужны не копирует.

Не знаю как там в подробностях работает выделение памяти, кучи и прочее но с дивана выглядит так, что можно конечно это сделать за пределами менеджера памяти вручную, так что new-delete код будет работать по тому же принципу, но в таком случае размер выделенного куска хранится как на уровне менеджера, так и на уровне программы.
А если же такая функция есть в самом менеджере (что было бы весьма логично, так как у него и так есть доступ к размерам выделенных кусков), то вот всего этого можно было бы избежать без лишних функций обратной связи возвращающих размер выделенных кусков, лишних переменных хранящих эти размеры или ещё чего-либо в этом духе.
Аноним 18/12/17 Пнд 21:34:37  1109331
>>1109321
А если не изобретать велосипед и взять класс vector из стандартной еблеотеки — он будет работать и ещё быстрее! Чудны дела твои хосспаде...
Аноним 18/12/17 Пнд 21:35:35  1109332
>>1099142 (OP)
Как в visual studio 2005 объявить строковую переменную, если на string x; оно начинает ругаться?
Аноним 18/12/17 Пнд 21:51:25  1109333
>>1109315
Кому ты пиздишь? Где там отставание?
https://ideone.com/lGWN1d
На входе там три числа, результат в точности соответствует вводу.
>>1109321
Хуиту несёшь. Посыл не понял.
> так что new-delete код будет работать по тому же принципу, но в таком случае размер выделенного куска хранится как на уровне менеджера, так и на уровне программы
new-delete никак не помогает тебе избежать хранения рамера выделенной памяти в менеджере, так как delete не принимает на вход размер массива. Так что если ты захочешь сделать интрузивный конструктор - в котором будет эксклюзивно хранится размер полученной памяти - то тебе придётся делать это без new/delete, и в итоге ты получишь зонный аллокатор, так как более экономного способа учёта памяти нет (оверхед - по 1 биту на каждую единицу памяти), тогда ты будешь хранить размеры памяти в объектах, а таблицы выделения в менеджере (если ты хочешь хоть какой-то абстракции менеджера от конструктора). Любые другие варианты обязательно повлекут за собой указатели/индексы либо в сторону объектов, либо в сторону менеджера.

Отсутствие аналога реаллока для new/delete вызвано тем, что тогда придётся иметь шестой конструктор - конструктор для изменения адреса объекта. Его просто не придумали во времена первого стандарта, так что живём без него и без ресайза. И НЕТ, это не связано с тем, что new/delete не хранят размеры, они их хранят.
Аноним 18/12/17 Пнд 21:56:38  1109338
>>1109331
Вектор может использовать malloc/realloc только для trivially-copyable-типов. Указатели на объекты в общем случае могут где-то храниться, и если в случае с копированием в массив большего размера этим занимается мув-конструктор, то для изменения адреса объекта конструктора просто нет, языком не предусмотрено.
>>1109332
Матом ругается?
Аноним 18/12/17 Пнд 22:00:19  1109339
>>1109333
>new-delete никак не помогает тебе избежать хранения рамера выделенной памяти в менеджере
Вот потому их и хейчу помаленьку, что они там всё хранят, а толку никакого.
Забей, никакого посыла, просто ворчу. Мол от менеджера памяти требуется лишь работа с памятью, а эти автоматические конструкторы new-delete не нужны.
Аноним 18/12/17 Пнд 22:06:46  1109341
>>1109333
>И НЕТ, это не связано с тем, что new/delete не хранят размеры, они их хранят.
Но информацию о том, где располагается переменная с указателем, не хранят.
Аноним 18/12/17 Пнд 22:36:55  1109351
>>1109339
Да ладно, в С++ Смысла особого в realloc нет. Можешь попробовать написать аналог вектора использующего realloc/malloc/free вместо new/delete - не забудь только поделиться результатами
Аноним 18/12/17 Пнд 22:44:39  1109355
>>1109351
Скорее даже так - идеологически правильный realloc в С++ - это std::vector. Отдельный realloc у плюсового аллокатор не нужен.
Аноним 18/12/17 Пнд 23:09:52  1109367
>>1109341
Какая ещё переменная с указателем, блядь?
>>1109355
С таким же успехом можно сказать, что реаллока для не trivially-copyable-типов нет. Убери свой вектор обратно в штаны, долбоёб.
Аноним 18/12/17 Пнд 23:10:42  1109368
>>1109351
Ага, и пусть не забудет про шестой конструктор.
Аноним 18/12/17 Пнд 23:11:52  1109370
Точнее, не про шестой конструктор, а про шестой метод в дополнение к пяти (конструктор, - копирования, - перемещения, деструктор и ещё что-то пятое, забыл).
Аноним 19/12/17 Втр 00:42:30  1109407
>>1109370
Если ты про методы ,которые компилятор генерирует по умолчанию, если они требуются, то их 7.

1. Конструктор по умолчанию.
2. Дестр по умолчанию.
3. Конструктор копирования
4. Операция присваивания.
5. операция взятия адреса (this)
6. Конструктор переноса.
7. операция присваивания с переносом
Аноним 19/12/17 Втр 00:47:32  1109411
>>1109407
Да, я про это, а точнее - про "правило пяти".
Аноним 19/12/17 Втр 09:55:19  1109496
А можно из под линукс писать приложение для виндовс?
Аноним 19/12/17 Втр 10:34:26  1109505
>>1109496
Пиши портабл код и он будет собираться везде.
Если тебе компилятор нужен, то это MinGW.
Аноним 19/12/17 Втр 10:53:37  1109513
5656565.png (25Кб, 1202x410)
Анон, а как лучше проверять время на соответствие?

Есть программа, которая каждую секунду сверяет текущее время с заданым интервалом и если текущее время входит в интервал, то выполняется работа.
Но возникли проблемы.
Время задаётся в формате (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 ветвлений, что делает код абсолютно нечитаемым.

Есть ли какой-то более адекватный вариант сравнения времени?
Аноним 19/12/17 Втр 11:19:20  1109519
>>1109513
Конвертируешь время в С++-время (заголовок chrono)
Пишешь
if(время2<время1) время2+= сутки

А дальше используешь функции сравнения времени из chrono.
http://en.cppreference.com/w/cpp/chrono/time_point
Аноним 19/12/17 Втр 11:26:16  1109522
>>1109519
Двачую. Chrono единственно верный путь.
Аноним 19/12/17 Втр 11:32:47  1109525
>>1109513
>время2+= сутки
А тут не возникнет проблем при переходе 31(30)(29)->1?
Аноним 19/12/17 Втр 11:33:07  1109526
>>1109525
->
>>1109519

Аноним 19/12/17 Втр 14:08:10  1109565
>>1109525
Запиленная поддержка времени именно для этого и нужна. Будут ли там коррекционные секунды учитываться - сам нагугли, если хочешь.
Аноним 19/12/17 Втр 14:09:58  1109567
И если ты не понял, когда я говорю "сутки", я имею ввиду std::duration с соотв. значением.
http://en.cppreference.com/w/cpp/chrono/duration
Аноним 19/12/17 Втр 15:06:01  1109580
12e21e.png (29Кб, 1094x652)
>>1109567
>>1109519
>>1109522
Большое спасибо. У меня получилось как-то так.
Сначала проверяю больше ли начальное время конечного.
Если начальное время больше, то тогда работа производится всегда вне периода начало-конец.
Если начальное время меньше, то работа производится внутри периода начало-конец.
Аноним 19/12/17 Втр 17:20:49  1109635
>>1109580
Всё-таки лучше бы сутки прибавлял по условию, тогда было бы два ифа вместо трёх.
Аноним 19/12/17 Втр 17:51:29  1109649
>>1109635
Сутки не учитывают ситуацию вида
Сейчас 12:00. Процесс начинается в 16:00 а заканчивается в 13:00.
С сутками процесс сработает завтра, но не сработает сегодня. Да такой сценарий маловероятен, но, как говорится, а хули?
Аноним 19/12/17 Втр 18:49:46  1109661
>>1109580
Мне кажется это глупо немного, почему бы просто не упорядочить сразу begin и end.
Аноним 19/12/17 Втр 20:42:41  1109681
>>1109649
>С сутками процесс сработает завтра, но не сработает сегодня.
1) У тебя процесс должен в прошлом остановиться, штоле?
2) То, что ты не хочешь написать свой код правильно, не означает то, что это невозможно. Ссылку на документацию я уже дал тебе.
2) Нахуя тебе from_time_t, если ты можешь получить то же самое с помощью ::now и прочих функций?
3) А ещё ты про auto забыл.
Аноним 19/12/17 Втр 22:16:09  1109705
123321.png (19Кб, 744x622)
>>1109681
>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 забыл.
Ага.
Подправил вобщем.


Аноним 19/12/17 Втр 22:37:55  1109715
>>1109705
>то эта логика не сработает
Логика есть только одна, и ты не можешь в неё. Тебе не нужно каждую секунду вычислять интервалы заново, ты можешь делать это только в конце интервала.

А ещё я не могу понять, как твои макароны работают. time_t - это абсолютное время, а не суточное, так что ты уже где-то что-то вычисляешь, просто мне не показываешь. Ебись сам, короч. :3
Аноним 19/12/17 Втр 22:53:54  1109720
55555.png (22Кб, 1582x642)
7677777.png (41Кб, 770x634)
>>1109715
>Логика есть только одна, и ты не можешь в неё.
Первый пик специально для тебя.
>Тебе не нужно каждую секунду вычислять интервалы заново, ты можешь делать это только в конце интервала.
А если перевод системных часов?

>А ещё я не могу понять, как твои макароны работают. time_t - это абсолютное время, а не суточное, так что ты уже где-то что-то вычисляешь, просто мне не показываешь.
А-то. На втором пике показано откуда всё. Я понимаю как сконструировать time_point на базе time_t с заданными параметрами. Но как сконструировать правильный time_point на базе имеющихся std::string?
Аноним 19/12/17 Втр 23:04:38  1109721
>>1109720
Алсо, сейчас понял что не захватываю следующий день.
Аноним 19/12/17 Втр 23:16:27  1109726
>>1109720
Теперь более-менее понятно. Тогда сделать меньше сравнений не получится. Про смену времени - ты прав.

Ну и ещё код вида if(cond ){ return true;} это интересно само по себе. Писать надо return cond вместо этого.
>>1109721
В коде из >>1109705-то? Я на условия только сецчас посмотрел, они у тебя там ебанутые какие-то, присмотрись.
Аноним 20/12/17 Срд 00:02:47  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;
}
}
Аноним 20/12/17 Срд 00:04:39  1109752
>>1109750
Блядь, я умственно отсталый
Аноним 20/12/17 Срд 00:18:29  1109763
>>1109752
>>1109750
Я тупой и все понял наконец! Вопрос снимается
Аноним 20/12/17 Срд 00:22:27  1109769
>>1109752
>проверяет четность целочисленной переменной через сравнение остатка от деления
Ты не просто умственно отсталый, ты дегенерат – пиздуй на JS писать отсюда
Аноним 20/12/17 Срд 01:19:57  1109785
Интересует вопрос: если я вообще хуёво общаюсь с математикой, сильно ли мне это помешает писать на с++?
Аноним 20/12/17 Срд 01:47:20  1109790
>>1109785
Миллион раз было сказано - математика нахуй не сдалась если ты не программист 3Д графики и не какой-нибудь ЧСВшный мудак с ЗП в 80к из яндекса.
Аноним 20/12/17 Срд 07:12:19  1109819
>>1109790
Благодарю, а расскажи пожалуйста в каких областях с++ наиболее эффективен, прост геймдев в беларуси невозможен, совсем, а других и не знаю
Аноним 20/12/17 Срд 08:57:19  1109831
>>1109819
>прост геймдев в беларуси невозможен
Крч пили помесь танков и майнкрафта.
Аноним 20/12/17 Срд 09:30:52  1109843
222222222.png (16Кб, 522x644)
66666.png (26Кб, 716x612)
Ну, с утра это стало выглядеть так. В конструкторе, oldday = 100
Идеи, предложения?
Аноним 20/12/17 Срд 10:22:08  1109860
>>1109769
Где ты там проверку чётности увидел, лолик?
>>1109843
Прочти последний ответ тебе, он до сих пор актуален.
Аноним 20/12/17 Срд 10:51:05  1109869
77777777.png (21Кб, 804x628)
>>1109860
Return поправил. А что ты имеешь в виду под
>условия только сецчас посмотрел, они у тебя там ебанутые какие-то, присмотрись
?
Условия мне кажутся понятными
if (Начало > конца) {
Проверка на нахождение текущего момента до или после обозначенного периода
} else {
Проверка на нахождение текущего момента внутри обозначенного периода
}
Аноним 20/12/17 Срд 11:16:57  1109878
>>1109869
Я уж не знаю, что полезнее: разжевать всё это для тебя сейчас, или сделать так, чтобы ты сам напоролся.

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

Сравни эти ждве таблицы, и ты увидишь, что ты родил пиздец.
Аноним 20/12/17 Срд 11:22:43  1109881
>>1109831
ага в соло, с бюджетом степуха = 1к
Аноним 20/12/17 Срд 12:16:08  1109912
76767676767.png (7Кб, 572x256)
>>1109878
>Сравни эти ждве таблицы, и ты увидишь, что ты родил пиздец.
Сначала я подумал что ты меня троллируешь, но потом я понял, что ты видимо не учитываешь условие
if (begintp > endtp)
которое производит проверку на то какой из *tp стоит первым
И соответственно, если endtp по временной шкале после begintp, то мы начинаем работу в первой точке - begintp и заканчиваем во второй точке - endtp.
А если endtp по временной шкале стоит до begintp, то мы начинаем работу в любой момент до первой точки - endtp и после второй точки - begintp.
Можно конечно переписать код пикрилейтед, и это наверное будет правильно. Но разве это ошибка?
Аноним 20/12/17 Срд 12:34:10  1109924
>>1109912
Я всё учитываю, я умею читать. Когда будешь это дерьмо дебужить, вспомни меня, удачи.
Аноним 20/12/17 Срд 12:46:41  1109928
ggggggggg.png (22Кб, 1320x392)
>>1109924
Ну я, к сожалению, тоже не телепат возможно ты имеешь в виду что нужно учитывать двое суток? Не нужно, при смене суток begintp и endtp тоже соответственно смещаются и код работает.
Аноним 20/12/17 Срд 12:59:02  1109938
>>1109928
О, всё, теперь допедрил. Да, всё верно.
return false; лишний только, он никогда не выполняется.
Аноним 20/12/17 Срд 13:45:03  1109955
Анон,
по новому стандарту я вот так:
auto_ptr<int> p;
уже не могу писать?
auto_ptr больше не существует??
Аноним 20/12/17 Срд 14:07:18  1109970
>>1109955
Читай про shared_ptr и unique_ptr. auto_ptr признан кривой забагованной нинужно.
Аноним 20/12/17 Срд 14:11:32  1109971
Анон, помоги с программой: В массиве В, содержащем 16 элементов, определить среднее геометрическое отрицательных элементов, расположенных между минимальным и максимальным элементами данного массива.
учусь на экономе, не понимаю нахуя нам программирование, никогда не изучал его, но допуск к зачету нужен.
Аноним 20/12/17 Срд 14:21:52  1109975
>>1109970
> unique_ptr.
эту тему тоже походу прикрыли.
Аноним 20/12/17 Срд 15:37:33  1109998
>>1109971
Пиздуй в ньюфаготред.
Аноним 20/12/17 Срд 15:37:51  1109999
>>1109971
А ещё тряси препода, блядь.
Аноним 20/12/17 Срд 15:40:01  1110000
>>1109975
Схуяли?
http://en.cppreference.com/w/cpp/memory/unique_ptr
Даже слова "deprecated" нигде нет.
Аноним 20/12/17 Срд 19:35:28  1110131
>>1109971
>учусь на экономе, не понимаю нахуя нам программирование
Как же толсто.
Аноним 21/12/17 Чтв 18:38:08  1110503
run-fools158223[...].jpeg (35Кб, 740x348)
Перекатывайте, глупцы
Аноним 21/12/17 Чтв 20:56:01  1110567
Перекат
https://2ch.hk/pr/res/1110566.html
Аноним 22/12/17 Птн 02:56:49  1110749
>>1109819
Различное системное программирование (Я писал прошивки для роутеров, сейчас пишу драйвер).

+Веб-бэкенды (Яндекс).
Аноним 22/12/17 Птн 09:48:06  1110812
>>1110749
ну вообще занимательно? или лучше выбрать другую сферу и другой язык? На самом деле язык вообще похуй, просто сферу ищу наиболее нормальную, вообще хз есть 4 года а на что их пустить не знаю.
Аноним 22/12/17 Птн 15:08:27  1111011
>>1110812
Сейчас работаю в конторе около 100 рыл, контора занимается разработкой программного обеспечения для промышленной автоматизации. Ебать тут легаси... Еб твою мать, но кроме этого моя жопа особенно горит от того, что нет общего стиля кода и каждый петух топчет, как хочет. Просто глаза покрываются кровью когда я смотрю на хэдер-онли класс в 5000 строк или "гармоничное" сочетание CamelCase с all_lowers_with_underscores. Или охуенный подход замешинвания private, public и protected в одну кучу.
Легаси - это пиздец. Хотя и платят 70к в моем мухосранске, но, блять, удовольствия работать с этим дерьмом никакого, увы...
Аноним 22/12/17 Птн 16:08:51  1111052
>>1110812
1110749-анон на связи. Я бы не рекомендовал. Вкатывайся в питон, веб, и прочую хуету. Денег плюс-минус столько же, зато возможностей и вакансий больше. С++ надо действительно любить, и без страданий в нем никуда. Как никак - самый сложный мейнстримовый язык из существующих
Аноним 22/12/17 Птн 17:30:01  1111105
>>1111052
ну я и думал в веб, потому что epam в городе только, но бля, там же и так дохера народу, куда мне то ещё лезть, там любая обезьяна в веб лезет, или не так? а плюсы какие то родные стали, вот когда делать нечего, на них алгоритмы смотрю, это точно пригодится)
Аноним 23/12/17 Суб 04:01:05  1111321
>>1100967
Присвой вэлью начальное значение 1))
Аноним 30/12/17 Суб 23:32:53  1114283
Можно поинтересоваться у уважаемых господ, какую IDE рекомендуете?

Мнения вкатывальщиков менее 5 лет не учитываются.
Аноним 31/12/17 Вск 01:15:44  1114323
>>1114283
ту самую, которая у тебя на пике.
Мимо-профессиональный-С++-программист.
Аноним 31/12/17 Вск 13:59:06  1114428
>>1114323
подписку обязательно сразу покупать?
Аноним 31/12/17 Вск 20:26:52  1114581
>>1114428
Community Edition бесплатна для домашнего использования, и ее за глаза.
Аноним 01/01/18 Пнд 00:56:54  1114638
Объясните, почему куча материалов по машинному обучению внезапно на пистоне, и практически не вижу на быстром С++, как это вообще? Мб не там смотрю?

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 565 | 52 | 177
Назад Вверх Каталог Обновить

Топ тредов
Избранное