Вместо шапки — https://github.com/sosachbot/cppthreadhat/wikiОтветы на все вопросы:- http://en.cppreference.com/w/- http://www.cplusplus.com/reference/Прошлый:- https://2ch.hk/pr/res/1085579.html
Надеюсь на то, что concepts are adjectives таки протащат.http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0791r0.pdf
>>1099275Хз, имхо надо уже делать третью надстройку, как в свое время кресты в си транслировались, пора что-то подобное на базе концептов пилить. Как есть выходит слишком сложная билеберда.
>>1099277Хуй с ним, гулять так гулять. Вангую, что в какой-то момент кто-нибудь форкнет и запилит поддержку нового диалекта в крупный компилятор, интересно будет.
А С++17 няшный же
>>1099285Не, че в нем няшного? Разве что folding.
Олсо, нахуй делать только string_view вместо какого-то более универсального решения для всех контейнеров? "Взгляд" же не только для строк нужен.
>>1099292типа такого?https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#SS-views
>>1098993Зависит от длины строки, а так по дефолту на стеке.
Так ли это?
>>1099351да
Кто-то посоветовал, мол, сравни свою реализацию примитивных функций вроде "посчитать длину строки" с библиотечной реализацией.Открываю я исходник и смотрю реализацию функции strlen, а там...И как такое вообще понять_Check_return_size_t __cdecl strlen( _In_z_ char const* _Str );Что за _In_z_ ?Причем это уже реализация, которая должна быть прямо в хедере, я нажал f12.но я не вижу никакой реализации, только объявление
Интересует разработка под VR и разработка десктоп приложений, подскажите как с этим справляется c++, есть ли вакансии и много ли их, рассматриваю не только Россию но и возможность фрилансить или вообще завестри трактор.Слышал что плюсы не нужны и юзают только на заводах
>>1099392завести*
>>1099388Боже какой- же говнод пиздец.За такое стрелять мало.
>>1099302Да, но только span не используется в STL, в этом разница.>>1099344Кому ты пиздишь? new создаёт объект на куче.>>1099388Не должна она быть в хедере, она должна быть в библиотеке языка, которая скомпилирована и линкуется. Смотри исходники: libcrt у GCC, crt у Visual Studio.
>>1099388стрлен там с байтоёбством еще тем
>>1099415а sso как жеhttps://blogs.msmvps.com/gdicanio/2016/11/17/the-small-string-optimization/
>>1099410Ты про левую часть картинки?
Дядьки, модули-то опробовали? Я хуй ево знает, вроде в любом языке же используются, а тут как-то нетак смотрится лол
>>1099415>crt у Visual Studio. И как её открыть?Или посмотреть
>>1099430Да. Хотя для микроговнософа это еще нормально.
>>1099433Она вроде на асме под х86 где-то в недрах винды\студии\кита заебашена, поищи strlen.asm. Там чето похожее на глибц >>1099422Но есть и портабельная версия strlen.c, которая выглядит ровно как твоя
>>1099388твой strlen не использует SSE инструкции
>>1099392Компилируемые языки сейчас уже никому не нужны, а в будущем от них совсем откажутся.Будущее за скриптовыми языками.
>>1099535Все так. Го в дотку.
>>1099535Ведь рантайм эррор это так весело )))
>>1099538В современных IDE есть анализаторы кода, которые тебе сразу же подсвечивают ошибку, если что-то не так. Зато не надо уйму сил, чтобы писать код, и ждать несколько часов, пока твой код скомпилируется или выдаст ошибку.
>>1099545Подсвети мне пуфон или lua, маня
>>1099546Зайди в pycharm и посмотри. Подсветка ошибок работает великолепно)
>>1099548Полтора вызова подсвечивает, а внутри метода с аргументом что будешь делать? А с kwargs?
>>1099535тогда какой язык можешь посоветовать для разработки десктоп приложении и что бы без проблем можно было найти РАБоту
>>1099554>какой язык можешь посоветовать для разработки десктоп приложенииC#. Но сейчас уже от десктоп приложений отказались в пользу веба.>что бы без проблем можно было найти РАБотуJava (правда умирает), C#, js, php, 1C
>>1099545Очень смешно. Ну и как твой анализатор определит, что вместо числа передали строку?
Что означает подобная конструкция?https://pastebin.com/uM958Qb1В гугл не могу, потому что он воспринимает крышечки и скобки фигурные, как шаблон.
>>1099578Простите, немного обосрался из-за непривычного стиляhttps://pastebin.com/iTgFnEg7
>>1099579Погугли возврат каретки и перевод строки.
>>1099579Если ты про ^M, то это просто кодировка слетела. Это перевод строки.
>>1099606>>1099601А, ну да, точно. Все, спасибо.
>>1099578фубля напомнил c++ cli
>>1099535>Компилируемые языки сейчас уже никому не нужны>Будущее за скриптовыми языками. Которые в 99% случаев тоже компилируются, в байт-код.
>>1099425Ещё раз, SSO хранит данные строки НЕ НА СТЕКЕ. SSO хранит данные строки в самом объекте строки, а объект строки может быть и на стеке, и в куче.>>1099433google://microsoft+crt+sources , чуть ли не первая ссылка. Сложно?>>1099567Ясен фиг, можно в коде спрятать тип так, что анализатор его не найдёт. Во множестве программ определить динамический тип с помощью анализа возможно.
>>1099535>Компилируемые языки сейчас уже никому не нужны, а в будущем от них совсем откажутся.>Будущее за скриптовыми языками.
>>1099705Какой ещё жипег дкебич? PNG - не, не слышал?
>>1099713>Какой ещё жипег дкебич? PNG - не, не слышал?
Помогите решить, господа /pr/ограмисты
>>1099535>t.retard
>>1099719там по теореме сосницкого вроде решается, гугли
>>1099535JIT? Не, не слышал.>>1099719динахуй
Как работает битовый сдвиг влево?У меня есть Int. Он занимает 32 бита. Что будет в первой ситуации мне понятно, но вот что будет во второй? Где-то пишут, что увеличится, а где-то, что уменьшится.Ситуация № 1:0000000000000000000000000000011 -> 0000000000000000000000000001100Ситуация № 2:10110010110100000101111000000000 (32 бита) -> 0000000000000000000000000000001011001011010000010111100000000000 (64 бита, но тогда это уже не Int) или10110010110100000101111000000000 -> 11001011010000010111100000000000
>>1099778это был сдвиг на 2 бита, если что.
>>1099778лолштоблядьТы считаешь, что операция сдвига зависит от содержимого сдвигаемого операнда? Охуеть.http://eel.is/c++draft/expr.shift#:operator,left_shift
>>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" - это и наступит?
Двач, сап. Устроился погромистом на полставки на C++ пока учусь на 3ем курсе. Работаю уже почти 2 месяца. Я не особо фанат C++, если что. Не надо на меня гнать "ОХ УЖЕ ЭТИ ВКАТЫВАЛЬЩИКИ В КРЕСТЫ" и тд. Мне так-то пофиг на язык, я больше в сторону C#/Java глядел. К нам в универ пришли и предлагали работу, окей? В нашем мухосранске это чуть ли не единственный вариант на полставки работать. Так вот, чё почитать по крестам? У нас на работе очень-очень много bind'оф, ламбд, каллбеков, фабрик...В общем это всё бьёт по мозгам очень сильно. Я вроде постигаю, но медленно. В общем, посоветуйте книг почтать умных по C++. Но чтоб не учили всяким ПЕРЕМЕННЫМ И МАССИВАМ. Или там ООП в стиле class Car : public veichle {private:Wheel wheels[4];public:void move() override;}Ну и тд. А чтоб поближе к реальности. Для интермидиатов.
Сажа приклеилась
>>1099799>Устроился погромистом на полставки на C++ пока учусь на 3ем курсеУ меня побежала слеза по щеке.3 курс мехмата, приходится работать репетитором
>>1099799Скотт Майерс - Effective Modern C++
>>1099790Да.
>>1099142 (OP)Чому пидоры из intellij не включили с++ в ультимейт сборку? Куда предъявить?
Поясните, плиз, за отличие C++ и Visual C++
>>1099977>Visual C++
>>1099982Ну рили
А поясни за com плез, анонЯ что-то смутно помню из далекого прошлого, оно сейчас нужно вообще для чего-то?
>>1099987Да, и в 1993-1997 гг. было очень много поросячьего визга, особенно в России. Они все на кладбище
>>1100011Google, vendor lock
>>1099790Прочитай тот параграф полностью, там говорится отдельно о знаковых и беззнаковых.>>1099977Visual C++ - это древняя среда разработки, которая превратилась в Visual Studio. Отличия - сам понимаешь, хер с авоськой сравнил.
А если ты имеешь ввиду соответствие компилятора студии стандарту, то нагугли сам, там куча приколов.
>>1100030А среда для разработки Cpp. Ну Ок, превратилась, и как стала называться? Просто я смотрю курсы кое-где по Visual C++ до сих пор предлагают -- что это?
>>1100041Это малоизвестная и устаревшая Visual Studio
>>1100048Стоп, это вот оно https://www.visualstudio.com/ru/ устаревшее и малоизвестное? Ты не трал?Олсо, поясните за различия C++ и C#, что в них общего, кроме буквы C в названии?
При создании объекта компилятор выделяет память для кода inline или не inline методов??
>>1100051Анон имел в виду что visual c++ была до VS. И она устарела. > что общегоСхожий синтаксис. Алсо до-диез "потомок" крестов
>>1099142 (OP)>>1095677 (OP)Анон, как сишкоблядине с двумя годами опыта быстро осилить С++? Книги Трупа страуса вроде бы довольно фундаментальны и слишком большие или нет?, т.е. читать их долго и неинтересно если уже знаешь многие вещи. Может быть просто втупую учить по cppreference?
>>1100104Недавно кто-то рекомендовал Accelerated C++ в таком же случае как твой. Не знаю правда как оно, не читал
>>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".
>>1100104Очевидный Стенли Липпман очевиден.
>>1100104Эккель свою книгу писал как раз для тех кто С знает, но хз годно ли. Да и устарело поди.
>>1100113>после сдвига влево числа, которое уже предел своего типаАссемблер это уже, нахер не надо это всё.
>>1100120Указатели надо чтобы современные были там собеседование иначе не пройдёт он.
>>1100124Еба, а в плюсах средства работы с указателями до сих пор не устаканились?Вообще язык нужен для специфических целей - пилить хуйню для андроида которую я бы с радостью на Си сделал, но ASOP едва ли не на половину состоит из говна на C++ с непонятными закорючками. В будущем ебал заниматься С++, хоть и лычку в резюме напишу, лол.
>>1100132>Еба, а в плюсах средства работы с указателями до сих пор не устаканились?Устаканились в 2011 году, и более того: Липпман идёт от простого к сложному, в книге разобран и синтаксис языка, и то, где и как используются ссылки (а не только указатели), и там даже есть современные приёмы вроде безымянных функций (они же лямбды).
>>1100141Хорошо, почитаю. Спасибо
>>1099781Собственно, я смеюсь, а результат операции сдвига знакового числа на самом деле зависит от содержимого.>>1100113Для беззнакового типа никакого undefined.> Я не верю, что вместо определенного поведения происходит "the behavior is undefined".Стандарт языка (единственный источник такой информации) для тебя не аргумент? Язык - это не определение инструкций процессора, которые будут использованы, это определение языка. Хочешь иметь гарантии - прочитай инстракшн мэньюал к своему ЦП и сделай ассемблерную вставку.
>>1100166>Собственно, я смеюсь, а результат операции сдвига знакового числа на самом деле зависит от содержимого.А результат суммы — от содержимого слагаемых. Охуеть, да?
>>1100113>Я не верю, что вместо определенного поведения происходит "the behavior is undefined".
>>1100123>Ассемблер это уже, нахер не надо это всё.>>1100166>Язык - это не определение инструкций процессора, которые будут использованы, это определение языка. Хочешь иметь гарантии - прочитай инстракшн мэньюал к своему ЦП и сделай ассемблерную вставку. Я что-то пропустил, но разве C++ не СИСТЕМНЫЙ язык программирования?Тащемто даже на C# можно все эти битовые операции делать спокойно с вполне себе определенным поведением.
Анон, помоги мне пожалуйста. Я что-то очень сильно не понимаю, настолько что даже не понимаю как правильно загуглить. В процессе решения поставленной мною передо мной задачи я наткнулся на какую-то адскую фигню, которую начал упрощать, чтобы понять в чём я ошибаюсь и в конце-концов пришёл к 4 пикрилейтедам - коду который вызывает ошибку, если его модифицировать. Стоит сделать активной строчку кода на втором пике (в С1.h) #include "QtGuiApplication3.h" как тут же при следующей отладке я получаю ошибку "С1: не определён базовый класс", которая вызывается из "С2.h"Почему так происходит? Как мне тогда (если я захочу этого) передать указатель на QtGuiApplication3 в объект класса С1 или С2?
>>1099351ещё отличается дефолтное наследованиену, если связываешь плюсы с какой-нибудь скрипто-парашей, то скорее всего, с классами у тебя ничего не получится
>>1100207подожиа зачем тебе в C1.h хедер подключать, если ты указатель собрался пользовать? forward declaration вот это всё
>>1100212Ну в общем случае для пикрилейтед.
>>1100214дык в C1.h расскоментируй же //class ...а в С1.cpp заинклудь
>>1100215Большое спасибо! Интересно, из какого учебника в моей голове поселилась мысль о том, что все .h нужно подключать в .h?
>>1100175Иногда полезно предположить, что собеседник не идиот.>>1100194Ага, и ассемблерных вставок и implementation-defined-поведения в сисярпе нет. Остальсь только рассказать о том, зачем тебе нужно сдвигать отрицательно знаковое число.>>1100207Ты не то инклудишь, походу. Смотри доки.http://doc.qt.io/qt-5/qmainwindow.html
Плюсач, как правильно организовать сетевую архитектуру на udp сокетах? У меня есть один сокет на прием данных, с фиксированным портом, один случайно генерирующийся, на отсылку информации, и один с фиксированным портом для броадкаст сообщений.
>>1100217>Остальсь только рассказать о том, зачем тебе нужно сдвигать отрицательно знаковое число.Мне, незачем.
>>1100083Спасибо!Не могу понять, то есть, это http://www.specialist.ru/course/sipp старая фигня?
>>1099142 (OP)Анон, как напечатать параметры ЗНАЧЕНИЯ шаблона?https://ideone.com/6SRjch
>>1100228Там же написано, "одним из вариантов с++ является visual c++".Так же называлась IDE для этого языка. Читай линк: https://ru.m.wikipedia.org/wiki/Microsoft_Visual_C%2B%2BIDE устарела, язык актуален. Курс, соответственно, тоже.
>>1100217>Иногда полезно предположить, что собеседник не идиот.Прочитав, что результат операции сдвига вызывает смех, я так и не смог это сделать. Хотя очень старался. Честно.
>>1100230Если совсем по-быстрому фиксануть, то так https://ideone.com/BZFxxz
>>1100253>std::enable_if_t<(sizeof...(Rest) > 0)>А что это за костыль?
>>1100250>Прочитав, что результат операции сдвига вызывает смехНа заборе прочитал? Русский язык, ду ю спик ит?>>1100228>Одним из вариантов С++ является Visual С++ - продукт корпорации Microsoft, являющийся частью комплекта Microsoft Visual Studio. Майкрософт никогда не называла свой диалект С++ визуалом. Была ли IDE под названием Visual C++ часть студии хоть когда-нибудь - нагугли сам, не было такого. Писал это какой-нибудь секретарь, который не знает нихуя.>>1100230http://coliru.stacked-crooked.com/a/28da7966de495986>>1100253Накатал порнятнку про то, что такое сделать нельзя, а тут ты. Пришлось стереть.
>>1100264https://msdn.microsoft.com/en-us/library/w4ddyt9h.aspx?f=255&MSPPError=-2147217396In 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.
>>1100264>>1100243Спасибо. Что спросить у них, чтобы не проебаться?
>>1100290ток без шуток про хуи и и бочку
>>1099142 (OP)Пишу прогу использующую интовые пары координат. Можно ли запилить что-то типаcoords a;a = {0,0};
>>1100321Можно.
>>1100290Можешь спросить "Какие программы я смогу писать, пройдя ваш курс" и "Будем ли мы изучать теорию языка". Потому что умение что-то написать на C++ - это не умение найти проблему.>>1100321Можно, только ногу себе не отстрели.http://coliru.stacked-crooked.com/a/89bda233c9ae90b3То есть, если есть недефолтный конструктор, то аггегатная инициализация (так это называется) не может быть использована, и список значений в фигурных скобках становится списком аргументов конструктора.
>>1100219Бамп. Мне кажется, что с таким построением системы я готовлюсь к выстрелу в ногу.
>>1100257Сам спросил, сам ответил: это костыль. http://en.cppreference.com/w/cpp/types/enable_ifhttp://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, в параметры к энаблифт пихаешь условие и делаешь другой шаблон, который должен быть использован, если это условие не выполнено - это один из вариантов использования.
>>1100360Система чего? Архитектура чего?
>>1100364Сколько сокетов нужно иметь в приложении для оптимальной работы, и какие должны быть у них роли? С одним сокетом приложение получает также и свои отправленные датаграммы, поэтому это не вариант.
>>1100363Для кого ты это капитанство накатал?
>>1100365Твоё предложение никакими недостатками не обладает, пока ты не описал задачу точнее. Не вижу никаких проблем, ты ещё и шагу не сделал.>>1100368Для того, кто спрашивал.
>>1100363>Язык допускает некоторые ошибки в шаблонах для того, чтобы увеличить сферу их применения. Сфера применения увеличилась настолько, что с помощью намеренного внесения этих ошибок можно влиять на код предсказуемым образом. Если в момент инстатциирования шаблона возникает ошибка, компилятор пропускает шаблон и переходит к следующему. Это называется SFINAE.>Это называется INSANE.I N S A N ENSANEЕбнутый язык, поехавший.
>>1100369>Для того, кто спрашивал. Ты сам и спрашивал.Ты спутал /pr/ со своим бложиком.
>>1100264>Накатал порнятнку про то, что такое сделать нельзя, а тут ты. Пришлось стереть. Вот видишь. Ещё одна причина не предполагать, что мой собеседник не идиот.
>>1100379Будто твой говнопост в этом коллективном бложике нужен, поэтому залезь под шконку, вахтер.
>>1100371Чем это отличается от выбора перегрузки функции? Никто же не говорит, что компилятор пытается скомпилировать foo(string) когда ей передают int, обламывается, после чего переходит к следующей перегрузке foo(int). Обычный паттерн матчинг
>>1100401Тем, что выбор перегрузки хотя бы не содержит стрёмного синтаксиса. В перегрузках свои приколы с ICS, но в шаблонах этот "выбор" сделан с помощью граматического элемента, который не для этого нуэен вообще-то.
Анон, есть маленький вопрос по 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>)));}И если разкомментировать строчку соединения сигналослота, то не компилируется. Моё желание вообще имеет смысл? Реализуемо ли оно? Если да, то куда копать?
>>1100527И сразу вдогонку. Имеет ли смысл создавать отдельный класс и объект DataStore, в котором хранить большую часть данных для работы с ними? Или данные лучше хранить в основной форме?
>>1100527>то не компилируется.>тут у миня не работает в чём проблема догадайтесь сами с помощью ваших оракулов
>>1100539Ну я просто подумал что проблема очевидна - объект объявлен, но ещё не существует. Если интересует точный текст то - "Вызвано исключение: нарушение доступа для чтения.""receiver-> было nullptr."Уточню. Меня не интересует почему не работает - это мне понятно. Меня интересует - можно ли каким либо образом соединить сигнал существующего объекта со слотом ещё не существующего объекта (если класс уже существует и известен)
>>1100544Тогда отвечаю.>Моё желание вообще имеет смысл?Нет, так как ты пытаешься отказаться от существования других объектов типа dataForm. Ты нарушаешь абстракцию.>Реализуемо ли оно?Да - сделай dataForm частью основной формы.Ещё можешь в конструкторе dataForm соединять слоты/сигналы, а информацию о владельце брать из parent().http://doc.qt.io/qt-5/qobject.htmlТолько если ты не к владельцу подсоединяешься, то ты какой-то пиздец делаешь, лапшу накручиваешь, и в таком случае тебе совершенно точно нужно эту твою сраную форму встроить, а не обосабливать.
>>1099142 (OP)Изучаю шаблонные шаблонные параметры. Как написать функцию, которая принимает произвольный контейнер и печатает его размер?https://ideone.com/rhDv3Y
>>1100564Просто берешь и без задней мысли пишешьhttps://ideone.com/hjTofk
>>1100555Спасибо! Ты - няша.
>>1100576не представляю, где бы мог пригодится template<template<> >
>>1100564>>1100576А ведь можно просто https://ideone.com/RHKj23
>>1100589>шаблонные шаблонные параметры
>>1100590>функцию, которая принимает произвольный контейнер и печатает его размерПопробуй сунуть в >>1100576 std::map и сообщи нам о результатах.Потом попробуй в >>1100589
>>1100589Деревенский простолюдин, неспособный постичь красоту шаблонных конструкций ебанул обычную шаблонную функцию и рад. Слишком просто, нам ведь не сделать, нам заебаться надо>>1100564https://ideone.com/dElGUOВариант с частичной специализацией, без шаблонных параметром, но с копипастом.
>>1100576б-х ты мой нахуй так делать то блядь вот же написал человек >>1100589>>1100599ты что приколист я сегодня хотел спокойно заснуть вообще-то
>>1100564Вот, короче https://wandbox.org/permlink/YYVJ0E5tqxn54UBeдеревенский простолюдин (>>1100589)
Как можно написать метафункцию ICons, которая добавляет число в голову списка IntList?https://ideone.com/1uYIMt
>>1100609template <int Head, typename IL>struct ICons;вместоtemplate <int Head, int... Tail>struct ICons;
>>1100599>нам ведь не сделать, нам заебаться надоЯ чего-то этот fizzbuzz вспомнил https://ideone.com/6QN2Ef
>>1100603хуль ты делаешь то блядь расслабься самый простой код - самый рабочийhttps://ideone.com/4ycTj2Контейнеры - это не только шаблоны.>>1100609Так, ладно я не буду спрашивать тебя о том, зачем тебе static const.http://coliru.stacked-crooked.com/a/6b10a97723bd2ca5Обрати внимание на то, что результат ICons не будет иметь тип IntList. Содержимое идентично, а вот тип другой.Олсо, можно сделать так, чтобы и типы совпадали, но нужно заморочиться.
Как построить аффинное многообразие V(x^4 - xz)? Я прав, что оно равно V(x(x^3 - z)) и равно объединению многообразий V(x) и V(x^3 - z)?
>>1100720Не туда. (Wrong hole)
Помогите вкатиться в с++, плессtg @kaminaggs
>>1100759динахуй
Ребят, а что почитать, чтобы понять, как написать обработчик прерываний, чтобы try-catch работали на нестандартном процессоре?
>>1100850Давай поточнее. У тебя компилятор для этого процессора есть?
>>1100871Компилятор есть. Но при возникновении исключений проц слетает на адрес указанный в векторе прерываний.Программа компилится при использовании try-catch, но в итоге они не оказывают никакого влияния. Что есть они, что нет, всегда уходим на вектор прерываний и даже не понятно, что за прерывание и в каком месте оно возникло.
>>1100880Что это за платформа, где исключения C++ прямо транслируются в прерывания?И зачем?
>>1100902Это процессор на архитектуре Riscv.Я хочу работать на чистом c++, но когда я спросил у сообщества насчёт вот таких вещей, мне ответили: пиши их сам.
>>1100905Ох блет.Надо больше информации - ОС/метал, какой компилятор, параметры компилятора.
>>1100938На самой машине никакой оси.Компилятор gcc/g++ из тулзов riscv, собранные под линуксом.Из параметров компилятора точно помню, что стоит без оптимизации и 64-разрядная архитектура.
>>1100668>ладно я не буду спрашивать тебя о том, зачем тебе static constА что не так со static const?Вместо него следует использовать constexpr? Я попробовал - не компилируется.
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;}Антоны, обоосыте, прошу, помогите. Почему эта функция возведения в степень дает охуеть какие огромные значения?
>>1100967Осиль уже пошаговую отладку.
>>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.
>>1099142 (OP)Как я могу определить шаблон, принимающий тип, и его специализацию, принимающую число?https://ideone.com/IdWbDo
>>1101024Никак. Ты не можешь иметь константу или тип на одном и том же месте, это невозможно. Ты можешь сделать шаблон с двумя параметрами - число и тип - и специализация будет иметь только параметр-число, например.Если ты не заметил, твоё определение специализации противоречит твоему определению шаблона.>template <>>struct Foo<size_t i>Что ты за хуйню написал? В фигруный скобки около Foo ты пишешь известные параметры.
как стать СУПЕРБАТЕЙ языка программирования С++?
>>1101101Обмазаться книгами Саттера.
>>1101103Понял, принялначал обмазываться
Двач, сегодня меня унизили на собеседовании. Пришел на собес к знакомому (С/C++).Просто пиздец! Я становлюсь каким то омежным чуханом-пидарасом когда у доски стоят и спрашивают, сразу все забываю, тупею нахуй. Поэтому лучше когда дают задание на дом практическое, когда уютно себе кодишь.Пиздец я хуево себя чувствую. Пикрелейтед пример хуеты на которую я не смог правильно ответить, вспомнил только когда вышел с собеса и поехал домой.Было 2 структуры и указатели на них, он взял указатель с одного типа структуры и присвоил ему адрес другой структуры и спросил будет ли выведено то что он запросил через де-референсинг указателя (т.е поля оригинальной структуры)Я стоял как мудак и не смог ответить. Ну нахуй такую жизнь, ебись все конем, забиваю на программирование
>>1101108молодой?
>>1101108съеби в си тред, чухан
>>1101116Ога.
>>1100943>На самой машине никакой оси.>Компилятор gcc/g++ из тулзов riscvДля поддержки исключений нужны действия со стороны компилятора и нужен некоторый рантайм. Для bare metal окружения рантайма может не быть.Покажи ассемблерный листинг для функций, содержащих throw и try/catch.
>>1101108Если вопрос о языке, а не о конкретной реализации, то ответ - такая операция не определена.http://eel.is/c++draft/basic.lval#11В сях скорее всего то же самое, там тоже strict aliasing rule есть.
>>1101143Двачую этого.
Господа. Подскажите утилиту для дебагина мультипоточных программ. Хочу видеть, сколько цпу жрёт каждый поток и т.дВидел утилиту, но никак не могу вспомнить название.
>>1101184procexp тебе всё покажет, только информацию о потоках нужно будет из проги вывести, у них же имён нет
А есть годный обзор\книга за буст? Или прост документации читать и пох. Хочется в голове держать, чего умеет
>>1101286http://www.boost.org/doc/libs/1_41_0/libs/libraries.htm
>>1101286Есть, но не помню как называется
>>1101286Demming, R., Duffy, D.J. Introduction to the Boost C++ Libraries
>>1101348http://www.boost.org/doc/libs/1_65_1/libs/libraries.htm
>>1101380пасибо!
Как это понимать?
>>1101435У comma operator низший приоритет, поэтому (c = a), b;
>>1101437а что такое d = (a, b); ?
>>1101505d = (a), (b); => (d = a), b;
>>1101511но d становится равно 2 после d = (a, b);
>>1101514Тогда вообще похуй, кто вообще использует оператор запятой, кроме моментов когда нужно выебнутся что ты знаешь ебанутую семантику?
>>1101511Кому ты пиздишь? Скобки - это не оператор, и приоритет у них наивысший.
>>1101435Запятая - это, с одной стороны, оператор оценки двух выражений и возврата значения второго, причём на месте запятой есть sequence point (в новом стандарте это по-другому назывется).А с другой стороны его можно переорпределять для классов, и это пиздец.
>>1101519Цикл с двумя счётчиками же?.. матрицы, вот это вот всё.
>>1101527>T2& T::operator,(T2 &b);>vector<int> v; >v += 1,2,3,4,5,6,7,8,9;:OO е ба нись
>>1101505Ну смотри.Допиши ещеint e = (c = a, b);int f = (d = (a, b));Может тогда понятней станет.
>>1101519Видел пару моментовwhile(cin >> str, str != "STOP") { / ... / }В бусте где-то есть красивая конструкцияsymbols<> logicalOperators = "AND", "OR", "NOT";Что разворачивается вlogicalOperators.operator =("AND").operator ,("OR").operator ,("NOT");
Или такint a;int b = (a = 2, a++);
>>1101534Ваще пушка(i > 0) ? (i--, doIf()) : doElse();
О, отлично, как лучше выстрелить в ногу дуплетом? Правильно, сочетать это с МАКРОСАМИ.#define MACRO(A) ( perform_heavy_work(A), std::cout<<"done", modify(A) )
>>1101532Топ трал.>>1101533Не понял.>while(cin >> str, str != "STOP") { / ... / }Должно же бытьwhile(cin >> str && str != "STOP") { / ... / }В чём прикол?
>>1101560Не должно, операция >> вовсе не бул возвращает.А в чем ты узрел траллинг?
>>1101563>А в чем ты узрел траллинг?В том, что усложнение вопроса вызывает понимание.>Не должно, операция >> вовсе не бул возвращает.Операция >> возвращает истрим, у которого есть оператор бул().Так что если ты прям на 100% уверен в том, что СТОП у тебя есть - ну ок, пожалуйста.http://coliru.stacked-crooked.com/a/665b52cac213ad5f
>>1099142 (OP)Что можно почитать о написании юнит-тестов на C++?
Аноны,>3.1.2 Таблица замен – матрица из восьми строк и шестнадцати столбцов, в дальнейшем – Hij. Каждый элемент на пересечении строки i и столбца j занимает 4 бита.Как можно определить элемент матрицы размером 4 бита? Просто использовать частично заполненный char?
>>1101706
>>1101721http://en.cppreference.com/w/cpp/language/bit_field
А в какой индустрии, где С++ используют, больше всего заколачивают? Какие-нибудь кванты на волстрит небось, хай фрикуенси трейдшопы?
>>1101741Все равно эти штуки выравниваются в памяти.
Пацаны, замена локальной переменной внутри функции на статическую ускорит работу?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());...}
>>1101834Хз, зачем я спрашивал, проверить же недолго.Если кому интересно, то при размере long_array 10-100 тысяч и частом вызове функции, второй вариант примерно на 15-20% быстрее. Неплохая оптимизация так-то.
>>1101721vector<bool> - гарантирована специализация с плотной упаковкой. "Элемент" определи самостоятельно. Ещё есть bitset, но у него размер фиксированный.
>>1101108чувак, несмотря на весь мой профессиональный скепсис ко вкатывальщикам -- человеческий совет: не принимай близко к сердцу мнения любых других людей
>>1101721class 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;}Немного доработать, добавить прокси тип, ссылку на второе измерение и готово.
>>1101877Что-то проиграл. Четыре бита занимают элементы таблицы замен в шифре российский ГОСТ. Мне для этого.
Сап, кто может помочь написать программу, раскладывающую число (с кол-вом знаком более 11) на простые множители. Хотя б идею подкиньте, понимаю что можно проверять числа от 2 до корня из числа, но как проверить делиться ли оно и получить остаток?
>>1101881Нахуй ты тогда нам мозги пудришь?>Все равно эти штуки выравниваются в памяти. Храни в байтах и отсекай при вычислениях.>>1101884У тебя проблема с размером типа? uint64_t есть. Мало? Пишешь свою реализацию длинной арифметики или берёшьhttp://www.boost.org/doc/libs/1_65_1/libs/multiprecision/doc/html/index.html
>>1100290Если совсем нуб, то сходи.. учат они добротно, за скобками ничего не оставляют. Проблема личности в программировании,, что у каждого свое видение, как у дизайнеров, поэтому без собственного видения на кодинг не вкатиться. Т. К.. Стандартов уже столько что их можно всю жизнь изучать и ни разу не написать программу.
>>1101966>Т. К.. Стандартов уже столько что их можно всю жизнь изучать и ни разу не написать программу. Ещё один неосилятор
>>1101967Не языка стандартов, дебич.
>>1102423И что? Всё равно неосилятор
>>1102605Сделай развёрнутое утверждение, верность и полезность которого верифицируема хотя бы косвенно.
Сап. Хочу собрать проект, которого пока нет, clang'ом. Суть такова: мне нужно заинклудить cstddef (для size_t). При попытке собрать вываливается с ошибкой support for type '__float128' is not yet implemented. При добавлении флага -stdlib=libc++, как советуют в инете, начинает вываливаться с ошибкой fatal error: 'cstddef' file not found. Что делать?
>>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 теперь лежат все простые делители числа в порядке возрастания
>>1101884>>1102716Ну и да, код с пометкой Так делать не нужно, это плохо.
>>1102711блядь нихуя не понятно
>>1102711хоть бы ОС назвал
>>1102742Debian 4.13.13-1 (2017-11-16) x86_64 GNU/Linux>>1102741clang не хочеть инклудить cstddef ни с флагом, ни без него.
>>1102711https://apt.llvm.org/накатывай clang-5 или даже 6
Анон, помоги мне, я новичок в программировании. В общем задача звучит так: "В одномерном массиве из 12 элементов определить максимальный среди отрицательных и минимальный среди положительных элементов". Так вот, как сделать так, чтобы из чисел, например, {-1, -2, -3, -4} максимальный был -1 а не -4Помогите плиз, не хочу быть отчисленным после первой сессии
>>11028411) пусть первый встреченный отрицательный элемент и есть искомый элемент, а первый встреченный положительный элемент и есть искомый элемент2) с каждым новым элементом выполнить проверки: если он отрицательный и при этом он... и т.д.Алсо, добавь пустые строки вокруг операторов условий и циклов, читать невозможно же.
>>1102711> type '__float128' is not yet implementedhttps://stackoverflow.com/questions/13525774/clang-and-float128-bug-error
>>1102841Так ты вроде почти все сделал. Просто нарисуй числовую ось и найдешь ошибку. Ты же не модули чисел сравниваешь. -2 реально меньше, чем -1.
>>1102841Если ты не можешь решить такую задачу после первого курса, зачем вообще в спутники и погромисты пошел?
>>1102862Найс троллинг
>>1102862можно было бы и std::array тогдауш
>>1102880Сказано же было в одномерном целочисленном массиве, а это именно int*, std::array по факту это уже структура.
>>1102875Это называется С++, что-то не нравится? – С-тред двумя блоками ниже
>>1102875Где ты троллинг увидел? Единственное что рандомизатор выглядит монструозно.
>>1102889Однако, аргумент
>>1102841Нахуй ты в программирование пошел, дебич?
Никсокрестовики, а вы какой сетап используете? Идеши нетбинсы\эклипсы, чи вимы\емаксы надроченые? Гдб питоном скриптуете? Я все время как-то теряюсь под линухом, то одно то другое
>>1102966прогер 200к в секунду треды в бэ, я думаю
>>1103052использую вим только как редактор, остальное в консоли
>>1103052А что там, CLion не работает?
>>1102745А всё остальное он инклудит?
>>1102841> Так вот, как сделать так, чтобы из чисел, например, {-1, -2, -3, -4} максимальный был -1 а не -4>Помогите плиз, не хочу быть отчисленным после первой сессии блядь не помогайте этому дауну
>>1102884array - это массив в переводе с английского. Когда говорят "массив" в разговоре о С++ имеют ввиду либо вектор, либо аррай, а обычные массивы называют C-массивы.>>1103052Мне кутэкректор по душе, можно убрать все панельки, места на экране съедает минимум, нативный кросплатформенный код, компилятор цепляет чуть ли не любой (особенно на линуксах).
>>1102862массив создается через устаревший new вместо православного make_unique. Незачет
ДОЖДАЛИСЬhttps://www.iso.org/standard/68564.html> ISO/IEC 14882:2017> 1488
>>1103674Стандарты нативной сишечки вдвое короче. В плюсах есть какие-то приятные улучшения, кроме шаблонов и обработки ошибок?
>>1103723>Стандарты нативной сишечки вдвое короче. И в два раза более размытые по формулировкам.
Не вдцпляю вообще, ребят, помогите. Есть строка text[], например, там надо перед каждым опрежеленным символом вставить другую строку. Как это реализовать? Сижу щас на лабе, застрял на этом моменте конкретно.
>>1103785Посчитай сколько в строке опрежелкнных символов, создай новую на столько байт больше, и копируй туда в цикле, добавляя по ходу.
>>1103723>В плюсах есть какие-то приятные улучшения, кроме шаблонов и обработки ошибок? Лямбды ещё, люблю лямбды.Ты так говоришь "кроме шаблонов", как будто это мало (это если ты про STL).Ещё есть range for.Ну и самое главное - RAII. Можно писать код вообще без утечек памяти, используя несколько простых правил.Кстати, вот чего мне хотелось бы, так это шаблонных функций, которые принимают контейнер, а не пару итераторов. Надоело уже писать бегины и энды там, где я весь контейнер передаю, выглядит тупо.>>1103785>Есть строка text[]Это не строка. Строка - это string text.>Как это реализовать?Если тебя по ладоням бьют за STL и плюсы - писать с помощью memcpy в память, выделенную malloc-ом, лол. Препода тормоши, он деньги получает за это.
>>1103799>Надоело уже писать бегины и энды там, где я весь контейнер передаюкак там в 2003ем ?
>>1103799Напиши перегрузку, принимающую на вход контейнер.
>>1103799А че за правила то?
>>1103845https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#e6-use-raii-to-prevent-leaks
>>1103816Как в 2017, только нету лямбд и констекспров.>>1103841Не буду же я писать на каждую функцию STL перегрузку.>>1103845Не использовать new, не использовать malloc/calloc, использовать только shared_ptr/unique_ptr и make_shared/make_unique
>>1103723Олсо, structured bindings и поддержка параллельных алгоритмов (ExecutionPolicy).
>>1103158>Когда говорят "массив" в разговоре о С++ имеют ввиду либо вектор, либо аррай, а обычные массивы называют C-массивы.>>1103799>text[] Это не строка. Строка - это string text.Как же я проигрываю с дегенератов в этом треде.
>>1103887Тред высокоуровнего ассемблера в каталоге сам найди.
>>1103889А это здесь причем? Массив не перестает называться массивом, хоть в каком хаскеле его пиши.
>>1103891Вот именно, массив не перестаёт называться массивом, это ты вот этому - >>1102884 - ассемблероребёнку напиши.
>>1103902Если ты не способен в байтоебство то иди на яве или шарпе пиши даунич
>>1103902Какой же ты тугой.
qt creator на винде в фоне жрёт процессорное время. Даже если ничего не открывать, ни одного файла - всё-равно в фоне выжирает одно ядро почти полностью.Погуглил, говорят это оно индексирует какие-то файлы то ли справки, то ли ещё какого мусора и через некоторое время должно пройти. Где-то часов через семь-восемь это в самом деле заканчивается и процессор больше не нагружается. Только после перезапуска он заново начинает.Можно это как-то отключить? С моей стороны оно просто так жгёт процессор, а работа самой среды не изменяется вообще никак, ни в процессе, ни после завершения.
>>1103799>Строка - это string text.wtf? eto chto za pokemon?
>>1103999Видимо он имеет в виду std::string
Анонас, подскажи, плиз. Пытаюсь использовать вот этот код https://github.com/alexeylysenko/CryptFileDevice в своей недопрограммке. Ему требуется openSSL. Ок, скачал openssl.v120.dyn-rt.static через Nuget, поставил. Но всё равно проект не собирается, пикрилейтед. MVS 2015. Как фиксить? inb4: Определи выражение константой
>>1104082keyLength и ivLengtn – это не константные целочисленные переменные, ими нельзя инициализировать размерность статические массивов (по крайней мере не во всех компиляторах). Используй unsigned char key = new unsigned char[keyLength]
>>1104095Звездочку проебал, ну ты понял
>>1103908Название треда прочитал? Прочитай ещё раз.>>1103913Повторяю для долбоёбов: это сипласплас-тред и в этом треде массивом называется НЕ ТОЛЬКО указатель на тип. Если у тебя массив - это только указатель на тип, то вали из треда.>>11039941) Напиши багрепорт.2) После того, как написал багрепорт, удали все файлы справки, там в настройках есть список.>>1104082Поздравляю, ты стал жертвой похуизма микрософта по отношению к стандарту языка. Работало в 2012 - перестало работать в 2015. Замени на оператор new и допиши в конце скопа delete.
Точнее, не сами файлы удали, а список этот очисть.
>>1104099Повторяю для дебилов: это сипласплас-тред и в этом треде массивом называется В ТОМ ЧИСЛЕ плейн массив. В отличии от того утверждения, где С-массив это не массив.
>>1104099>Поздравляю, ты стал жертвой похуизма микрософта по отношению к стандарту языка.Поздравляю, это не С-тред, по стандарту у майкрософта все, VLA - не стандарт.
>>1104095>>1104099Спасибо. Не помогло Но всё равно - спасибо.
>>1104108Это уже другое. Ты же качал OpenSSL, а либы под MSVS бывают, грубо говоря, 4-х видов: MT (статическая), MD (dll), MTd (статическая дебаг) и MDd (dll debug).
>>1104132Данке. Поставил через нугет динамическую openSSL и по крайней мере теперь компилируется.
Почему в этом тренде не унижают вижуал студио-даунов?
>>1104156Что ты имеешь против самой популярной среды разработки, которую поддерживает одна из самых технологичных компаний мира?
>>1104165Против XCode ничего против не имею
>>1104103> В отличии от того утверждения, где С-массив это не массив.Покажи мне это утверждение. Пока что я вижу только обиду на то, что крестобоярин посмел считать array массивом.>>1104104Я не писал, что VLA есть в стандарте. Но ладно, ты подебил, в студии всё по стандарту.
>>1104165Мне неудобно ей пользоваться, у меня на ней иногда не компилируются простейшие программы со сторонними библиотеками, какой-то текстовый редактор с небольшими дополнениями занимает несколько гигабайт места, слишком сильно вшивается в систему, воспоминание о vs 2008 - код на 151 строчку компилировался 2.5 минут после каждой правки и ещё всякие такие мелкие неприятности.Субъективщина сплошная. Это примерно как сравнивать фотошоп и sai. Может быть в первом и больше возможностей, но вторым намного проще, приятнее и удобнее пользоваться в рамках того, что он умеет.
>>1104156Зачем? Нормальная штука, особенно как добавили возможность clang использовать.
>>1104108> 2k18> new/delete
>>1104222Да, да уже поправил на unique_ptr
>>1104222>OpenSSL>считать что это не легаси
>>1104225А что не QByteArray?>>1104227<-
>>1104227што
>>1104209> clang Есть интоловский компилятор. Все профессора в моем нии текут от него.
>>1104256А вне твоего НИИ мир, которому поебать на +5% перформанса в арифметике (кроме других НИИ, лол), и узкие места можно поправить руками, а не супердорогущим пропиетарным закрытым компилятором, в который ещё и новые стандарты неспешно завозят.
у Праты вышло что-то новое?
Есть чего хорошего почитать по STL?
>>1104350А, всё. Чекнул шапку
>>1099351А разве там и там не паблик ли?
>>1104425Нет.
Ещё вопрос по cmake и qt creator. Хрен с ней со справкой и загрузкой процессора.Как сделать переносимый-портабл проект? Типа, папку с файлами перенёс куда-угодно и всё работает. А то он создаёт файл CMakeLists.txt.user с некоторыми настройками и прописывает там абсолютные пути к директориям. При переносе пишет Failed to activate protocol version: "CMAKE_HOME_DIRECTORY" is set but incompatible with configured source directory value.Там всего в нескольких местах подменить, конечно, и в общем-то можно костыль сделать для этого, но это как-то совсем некрасиво.
>>1104686Удали этот файл, будет ок. Я использую Qmake, удаляю файл .pro.user, эффект тот же. Он генерируется Креактором во время конфигурации проекта.
>>1104701Он его каждый раз создаёт же. Причём если написать относительные пути - всё-равно замещает на абсолютные. Может быть есть где какой флаг это отключающий.К тому же, там некоторые настройки запуска по мелочи сбиваются. Проще заменить пути в файле, чем отыскивать эту фигню в настройках и менюшках потом.
>>1104731Хуй знает тогда. Топорный вариант - найти в файлах проекта и исправить на относительные. Правильный вариант: открыть мануал Креактора и прочитать.
Ананасы, реквестирую вашей помощи, заебался сегодня. В общем, есть ли какой-нибудь способ (без использования sstream) скрестить boost::archive::binary_input и сырой массив данных?То есть, в 1.65 буст нихуя не умеет использовать boost::iostreams вместо стандартных, есть варианты, кроме использования std::sstream (он же deprecated :( )
>>1105056>std::sstream (он же deprecatedЧто ещё за std::sstream? sstream это хедер.Давно он deprecated?Пиздец.
>>1099142 (OP)Есть такая функция перекодировки: https://ideone.com/iepDlPКак она работает, если аргумент не найден в хэш-мапе? Метод find получает несуществующий символ и возвращает end(). Попытка обращения к end() - неопределенное поведение. Почему код все равно работает?
>>1105208Тебе показалось. У меня падает со std::alloc. Проверь, может у тебя UB форматирует винчестер в фоне.
Для лабы нужно простенькое параллельное программирование, а методичка написана про C. Где почитать как реализовывать потоки, треды на плюсах?
>>1105227http://www.cplusplus.com/reference/thread/thread/
>>1105232>/thread>/thread
>>1105234/std::thread
>>1105232А не на ангельском? Я, конечно, могу, но это потребует больших усилий.Я нашел книжку в шапке, но там 600 страниц.
>>1105227И это. На этом всё. http://www.cplusplus.com/reference/mutex/mutex/?kw=mutex
>>1105240Мудила, там определения функций и конструктора достаточно посмотреть что бы понять как оно работает, это тебе QThread с наследованиям или переопределениями.
>>1105123блять, ошибка strstream
Аноны, подскажите пожалуйста, что я делаю не так. Суть: 2 класса (для одномерного и двумерного массива), в которых надо перегрузить операторы декрементации и инкрементации (должны уменьшать/увеличивать числа в массиве). Сделал все, как расписано в примерах на Хабре, искал примеры еще, но в итоге, после вызова оператора ++/-- имеющийся объект дропается, причем если вызов постфиксный - успевает вернуть старое значение, а после цикла с увеличением/уменьшением выпиливается. При попытке вывести - выводит пустую строку. Через дебаг во время вывода пишет, что чтение памяти невозможно.
Антоны, пишу крестики и нолики и почему-то нихрена не работает. Уже день голову ломаю, не могу понять в чем ошибка. Обоссыте, но если можете, то помогите.https://ideone.com/FBaBG9
>>1105367Более знающие поправят, но ты создаешь внутри функции временный объект oldValuе и возвращаешь ссылку на него, а по выходу из функции память освобождается и возвращенная ссылка указывает на мусор.
>>1105367в пизду иди со своими картинками блядьнахуй нам твоя лаба со всем дерьмом? Задай изолированный вопрос, на который можно ответить, не пытаясь сделать лабу за тебя>>1105375>#include <conio.h>Обоссал. Тряси препода, он за это зарплату получает.
>>1105396Неа, он копию возвращает.
>>1105375And: identifier not foundЗамени на &&Во-вторых, ну ок, ты проверяешь, и если Y >0 продолжаешь гнать его в плюс. Надо же минус.Потом ты перевод строки после трех символов не выводишь.Но так то полный треш, это не починить.
>>1105404>Задай изолированный вопрос, на который можно ответить, не пытаясь сделать лабу за тебяИзвини, если сократить, то почему инкремент/декремент выпиливает объект, хотя должен просто его увеличить/уменьшить его?
>>1105396oldValuе - копия через конструктор копирования, в постфиксных операторах же должно возвращаться старое значение. Выходит так, что перегрузка вроде работает, т.к. первая строка создает копию как и должна, но сам объект, для которого был вызван инкремент - удаляется, хотя просто должен был увеличиться.
Нужно посчитать кол-во слов в тексте, начинающихся на определённую букву. Сам текст находится в текстовом файле (1.txt).Всё работает, но какого-то хуя не считывается самое первое слово. В чём проблема?
>>1105423Ответ: эти строчки кода ничего не "выпиливают" (лолштоблядь). Ошибка находится в другом месте. Если бы ты хотя бы код запостил, я бы ещё порылся.>>1105441На кой ляд тебе char[64] вместо std::string? Олсо, зря ты на eof проверяешь - он возникакет только тогда, когда считано на один символ больше, чем есть в потоке.http://coliru.stacked-crooked.com/a/1f6b8cb5f2efd7d3Вот так правильно.>но какого-то хуя не считывается самое первое слово.Слова-то, блядь, у тебя как записаны?
>>1105599>Ответ: эти строчки кода ничего не "выпиливают" (лолштоблядь). Ошибка находится в другом месте. Если бы ты хотя бы код запостил, я бы ещё порылся.Просто именно после перегруженных операторов объект "перестает существовать". Я пробовал делать инкрементацию просто как обычную функцию, и она работала, но при попытке сделать так же в операторе ситуация повторялась. http://coliru.stacked-crooked.com/a/6461ce653362870b
>>1105618Чудес не бывает. Ходи в отладчике, ставь брейкпойнты в конструкторах-деструкторах.
Котаны, чет туплю. Использую 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 диск и писать/читать оттуда, но это сильно бьет по переносимости проги.
>>1103723Олсо, КОНЕЧНО ЖЕ, ссылки и рвалью-ссылки, благодаря которым стало более добно писать в функиональном стиле.>>1105618ааааааазаааааааъхххааааъъъъъъазаззхзааааааааааа ёбаааа>Vector* copy = ++vec;Попробуй предположить, что делает эта строчка? Пару раз не угадаешь - расскажу.>>1105665>Есть способ выкинуть этап сохранения/загрузки с диска?>leptonica принимает (FILEНет. Как вариант - поищи что-нибудь в Бусте, мемори маппед файл какой-нибудь с ленивым сливом буфера записи.
>>1105707>Попробуй предположить, что делает эта строчка?Создает указатель на инкрементированный объект класса?
>>1105710Не угадал. Ещё раз: что такое vec? Прочти определение vec.
>>1105737Vec - указатель на объект, т.е. в copy я пытаюсь создать указатель на указатель, который я инкрементирую без разыменования, т.е. вместо того, чтобы увеличить значения по адресу, увеличиваю сам адрес?
>>1105754Бинго! Ну а дальше сам, по шагам: продумай, что нделает каждый символ.Сразу говорю: для того, чтобы присвоить вектор вектору, тебе не хватает конструктора копирования (дефолтный есть, но при определении любых конструкторов он удаляется).
>>1105754Точнее, ты не указатель на указатель создаёшь, ты только инкрементируешь указатель и говоришь что это указатель новый вектор. Если тебе прям до жопы нужно именно с указателями трахаться, то делается это вот так:http://coliru.stacked-crooked.com/a/722b1939961b68deНо опять же, тебе не хватает конструктора копирования как минимум, как бы ты не изворачивался.Сделать указатель на указатель тебе не даст статическая типизация.
>>1105842>>1105846Спасибо, анон!
Есть план местности, разделённой на квадраты, заданный матрицей. Ячейка матрицы - высота этого квадрата над нулевым уровнем. Нужно найти кратчайший путь из (х0,у0) в (х1,у1). Длина перемещения из квадрата в квадрат = k, длина спуска/подъёма при переходе в соседний квадрат = модулю разности высот квадратов. Двигаться можно только между центрами квадратов и параллельно осям Ох, Оу.Хочу ебануть алгоритм Дейкстры, но нужна матрица с весом рёбер графа. Как её получить из "плана местности" я не ебу. Хелп, аноны.бтв, stl юзать низя
>>1105869>бтв, stl юзать низяНу тогда и пиздуй в C-тред, хули тут то забыл?
>>1105871Ну приоритетную очередь я написал, а дальше stl-то зачем? Вся трабла тут > Хочу ебануть алгоритм Дейкстры, но нужна матрица с весом рёбер графа. Как её получить из "плана местности" я не ебу. Хелп, аноны.
>>1105873Сделай структуру дерева, переведи матрицу в дерево и ебани по ней рекурсивно алгоритм Дейкстры
>>1105875Нужно приоритетной очередью. Поэтому, собственно, и нужна матрица веса рёбер
>>1105869Что такое матрица весов рёбер графа? Что такое вес ребра графа? Если ты не можешь ответить на эти вопросы - иди нахуй. Если ты можешь ответить на этив вопросы, то дальше ты и сам сможешь.
Господа, в шапке Липман допотопный лежит( 2007) года. Там Вводный курс, а необходим базовый.
Привет аноны, такое дело очень стараюсь делать все задания в Программирование. Принципы и практика использования C++, сложно конечно но получается и вот напоролся на задания -чтобы сделать поток ввода стал явным параметром.Делаю все по гайду в 8.5.8, в параметры функций - Token_stream& ts a в main строку - Token_stream ts;Все работает и я был очень рад что избавился от глобального, да только с istream& этот способ не работает! конечно я не дебил и начал искать где только можно. Я сразу увидел что ничего нет и это шаблон класса и мне это ничего не сказало потому что я только вкатился. Так как это сделать ядрён батон? объясните пожалуйста ньюфагу
>>1106105Запость хоть какой-нибудь код, мы тут ванги штоле?
>>1106173class 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, я хрен знает как это сделать
>>1106203если еще короче, я не понимаю как просто передать istream в параметр функцииistream is;foo(is);//не работает
>>1106203>не работаетТы ему зарплату что ли платишь, уёбок? Почему из вас, пидорасов, надо клешнями всю информацию вытягивать? Если я тебе покажу код и скажу "не работает", тебя это устроит?
>>1106173>Запость хоть какой-нибудь кодint main() {}
Пытался вот месяц вкатиться в Java. И вот, что, хуи сосет ваша Java. Ничего лучше плюсов не найти.
Парни, норм тема взять макпук 12 дюймов? Задача портировать с винды пару легких десктопных приложений на крестах с qt, а потом просто носить его с собой - ну там открыть документ в люстре/индизе, ворд-эксель, браузер. С хакинтошем и виртуалками пердолиться не хочу. Потянет или надо прошку брать?
>>1106462Ясен хуй, потянет. Я не знаю, какой там в макоси планировщик - быть может, там такая же жопа, как в винде, когда одна из программ начинает слишком много вычислять, и приоритет активного приложения не повышается. Если это не так, меня эти 1,2/3 ГГц не смущают никак - ну подождёшь ты немного в паре мест, ну и хуй с ним.Прямо сейчас сижу с селероном x86 1,5 ГГц - вполне терпимо. Открыть пидиэфку и текстмейкер и несколько вкладок (штуки четыре) в браузере я точно могу. Хорошее видео не декодируется, максимум - какое-нибудь 102460030.
>>1106476>1024х600х30Проигрыватель плохой или шибко сложный кодек. Вот такое чудо проигрывает на старом the kmp 1920х1080 в mp4. Там можно в настройках видеодрайвера включить разрешение экрана вплоть до 2560х..., так что когда мышку к краю экрана подводишь - отображаемая область передвигается.
>>1106477Данунахуй! Скинь любой пример, сравним. Я использую MPC-HC.
>>1106482Едва нашёл флешку, которую тот ноутбук прочитал, лол, чтобы точно убедится. Там проблема с usb портами (только один из трёх работает) и аккумулятором (10+ лет из которых шесть лет я его ежедневно использовал) - ни один внешний хард не раскручивается, всем питания мало.У меня нет видео в таком разрешении, потому не долго думая я скачал что-то с ютуба. (Можешь напрямую с меня цепануть - http://95.27.236.250/45/ )https://www.youtube.com/watch?v=MAUsbFti6fo1280х720х30 (3.2Мб/с) - без каких-либо лагов, загрузка цп прыгает 40-60.1280х720х60 (3.6Мб/с) - пару раз за минуту зафризился на полсекунды, загрузка цп прыгает около сотни. Вот тут я сейчас вообще офигел увидев такое плавное воспроизведение. Прям надо брать камеру и записывать, как эта штука из каменного века выдаёт такую плавную картинку.1920х1080х60 (5.6Мб/с) - со скоростью вполовину меньше нормальной показывает, загрузка цп стабильная сотка.https://www.youtube.com/watch?v=Ij6AFF8lbOs1920х1072х24 (3.1Мб/с) - без каких-либо лагов, прыгает около сотни.Возможно ещё хард подводит (он совсем громко трещит что-то), просто не успевает высокий битрейт считывать - его я тоже ни разу не менял и из-за баловства с магнитом на нём громадная царапина на 10ГБ, при обращении к которым система падает с бсодом.
Анон, можешь подтвердить что я правильно работаю с QThread?Цель - останавливать новый поток при помощи отправки данных из основного потока. Всё сделал правильно? Что-то добавить-убрать?
Аноны, вы на чем пилите графический дизайн приложений?
>>1106490>Едва нашёл флешку, которую тот ноутбук прочитал, лол, чтобы точно убедится. Там проблема с usb портами (только один из трёх работает) и аккумулятором (10+ лет из которых шесть лет я его ежедневно использовал) - ни один внешний хард не раскручивается, всем питания мало.Вычислим по IP.
>>1106553Я сейчас вкатываюсь в QT. Раньше MFC
>>1106556В чем преимущества у MFC или Qt? Что проще для усвоения?
>>1106560QT ессно. Возможная кроссплатформенность и адекватный механизм сигнал-слотов. MFC - адок.
>>1106562Спасибо. Кроссплатформенность на производительность влияет?
>>1106566Ну ты можешь не заниматься кроссплатформенностью, а писать под конкретную ОС. Но а вообще всё зависит от скилла.
>>1106567Спасибо большое. Бэхэтле бул.
>>1106562>QT>адекватный механизм сигнал-слотов. >#define signals public>#define slots
>>1106599MOC? Не, не слышал.
>>1106566Нет, если это не boost или Qt (если вы понимаете о чем я)
>>1106647Щас бы костыль как преимущество приводить...
>>1099142 (OP)Вопрос по разработке через тестирование. Если есть класс в файлах .h и .cpp, в каких файлах писать для него тесты? Где вы размещаете свои тесты?
>>1106684Тесты - для тех кто не умеет писать нормальный код.
>>1106691Старпер, плес.
>>1106684В отдельных файлах.
Хочу обмазать свой проект на Qt тестами GoogleMock. На этапе линковки получаю ошибку: обнаружено несоответствие для "RuntimeLibrary": значение "MTd_StaticDebug" не соответствует значению "MDd_DynamicDebug" в db.objЧто я делаю не так? Как исправить?
>>1106723Не тот типа библиотеки подключаешь или наебланил в настройках. Проще поставить линукс.
>>1106736Не получается скомпилировать GoogleMock как DLL.
>>1106738Ну вот собираешь не тот тип debug/release static/dynamic.
ОС может отбирать память у приложения? Она шлет там типа сообщения какие-то, или еще как-то надо проверять не стал ли указатель нулем? Тот же вопрос про видеопамять, в связке с OpenGL.
>>1100011поясняю. нужно. для овердохуя чего. если не физический, то виртуальный абсолютли
>>1106691и для тех, у кого овердохуя свободного времени, имхо
>>1106745Это у тех, кто не пишет тесты, овердохуя свободного времени, чтобы потом тратить 10х время на ловлю багов.
>>1106750лол, за 10 лет коддинга ни разу не искал баг более 10 минут. сука, рили тесты для рукожопов
>>1106751Видимо у тебя одни хеллоу ворлды. Алсо не искал != что их у тебя нет.
>>1106751Ты даже в исходники библиотек никогда не лез искать ошибку?
>>1106753лез, даже на багтрекер писал. фиксили. но это блять никак к тестам не относится. это уже рукожопость разработчиков фреймворка
>>1106754Не больше 10 минут, да?
>>1106756хуйна. при чем тут исходник библиотеки и тест?
>>1106758При том.
Пишу проект расчета зарплаты. Приложение работает с базой SQLite. Где хранить процедуры общения с бд типа "получить базовую ставку работника" и "получить опыт работы в годах"? Дублировать код в каждом подклассе типа работника или группировать в классе запросов?
>>1106767Я бы хранил "рыбу" в функции "по клику на кнопку "Сформировать"" куда динамически подтягивал параметры из ui. Но я не специалист.
>>1106670Я привожу, как преимущество, то, что я знаю, как это работает, и что слова "signal" и "slot" обозначает, и подразумеваю, что ты идиот, так как не умеешь абстрагироваться от деталей реализации, которые ты специально отрыл, хуй знает, зачем.>>1106742Открой документацию к своей ОС и прочти сам.
>>1099142 (OP)В очередной раз пытаюсь вкатиться в Qt ради GUI. В этот раз поставил на вижак плагин, и столкнулся с той же проблемой, что и в прошлый раз - при компиляции в целевой папке есть только .exe файл, никаких Qt'шных либ там нет. Вопрос - как можно настроить компиляцию, чтобы я на выходе получал папку со всеми необходимыми бинарниками, вот прям чтобы взял и запустил на другом ПК? Или в опенсорсной версии Qt хуй мне на рыло с такими запросами и запускать только локально из IDE? В прошлый раз единственное решение, которое я нашел - добавлять ВСЕ Qt'шные либы в папку с .exe и запускать .exe, убирая либы по одной, чтобы узнать, какие нужны. Но это же блять не серьезно. Есть какие нибудь решения?
>>1106856Запускаешь бинаргик на чистой виртуальной машине и добавляешь по одной запрашиваемве библиотеки. По-другому никак.
>>1106856$QTDIR/bin/windeployqt.exe
>>1106863Хуя до чего техника дошла.
Посоны, раньше писал на нормальных языках, сейчас решил изучить С++, читаю книжки из шапки, вот в одной из книг смущает строка пикрелейтед - n < hexdigits.size(); Я так понимаю, каждую итерацию вызывается метод size()? Это на С++ нормально? Зачем каждый раз вызывать метод, если можно один раз его узнать?
>>1106904Сейчас компиляторы умные и сами вынесут результат метода из цикла если в нем вызывались только константные методы, ну так то да такую хуйню писать это плохой тон.
>>1106904> Зачем каждый раз вызывать метод, если можно один раз его узнать?Затем, чтобы код был читаем. Ты ещё спросил "зачем цин>> каждый раз вызывать" (вызов которого на порядок затратнее). Сайз - это метод, который целиком определён в хедере, так что компилятор будет инлайнить его, если ты не запретишь, так что от вызова метода объекта, сохранённого на стеке, вообще нихуя не остаётся - ни передачи указателя, ни джампа, нихуя, так как функция size() - это только обращение к переменной. Уберёшь флаг оптимизации - вызов появляется.https://godbolt.org/g/Co8q7Nhttps://godbolt.org/g/JVCPNdЧто там за нормальные языки у тебя были, лол?
>>1106924>Что там за нормальные языки у тебя были, лол?Те, в которых не надо писать лишние скобочки рядом с константами или свойствами?
>>1099142 (OP)Анон, есть такой класс для расчета зарплаты сотрудника: https://ideone.com/LLLzKFНе лучше ли следовать принципу единой ответственности и выделить весь код, отвечающие за расчет зарплаты, в отдельный класс Salary? Для разных типов сотрудников зарплата рассчитывается по-разному, но формулы допускают обобщение.
Котяры помогите нубу. Есть допустим указатель int *a = new int[10];Я могу получить адрес этого указателя: cout << &a;Но что за число я получаю когда ввожу cout << a? Без звездчоки. Там тоже какое-то число шестнадцатиричное, но куда оно указывает?
>>1100967Прочёл как Степан.
>>1106956Сам же написал уже всё.a - указатель, как ты сам и написал. Он указывает на первый из твоих десяти int. &a - адрес указателя а, то есть оно указывает на а.&a -> a -> int[10]Реально в памяти существуют только а - явная переменная типа int* и int[10] - выделенная при помощи new память.
>>1106956&a - адрес переменной a в памятьиa - адрес, на который указывает указатель a, то есть адрес массива int[10] в куче памяти.
>>1106953Мне кажется, логичнее оставить в классе, только сделать функцию виртуальной, чтобы можно было для каждого дочернего класса вызывать свою версию getBaseRate();
>>1107004>getBaseRate();Для всех одинаковая. Различие в том, что у Manager и Sales есть надбавка за подчиненных.
Почему статические методы считаются злом? Как писать без них?
>>1107001спасибо анон
>>1107004>Мне кажется, логичнее оставить в классеНу хорошо. А как пишут юнит-тесты для приватных методов?
>>1107051Унаследуйся от класса и импортируй все методы в публичную область видимости с использованием using, или сделай объект доступа к методам касса через friend или #define private public лол
Есть B+ дерево, которое в общем выглядит как на пике. Вопрос, нужно ли писать конструкторы для InnerNode и LeafNode и прописывать в них new для выделения памяти под масссивы (тогда и соответствующий деструктор нужен) или можно так оставить? Просто оно и так компилируется, хотя я подозреваю, что если в DEGREE передавать переменную, то оно не должно так просто заработать. Как лучше всего выделять память по массивы в структурах?
>>1107038ООПОП
>>1106863Билять анон спасибо! Ты вернул мне мотивацию изучать Qt.
>>1107038Лень расписывать, ну короч считай так: объект-бог это всегда плохо, потому что у него много связей с остальными объедками, и если что-то поменяется, придется разгребать весь этот фарш, вместо четкой иерархии объектов. Второй момент это скрытое состояние, которое наверняка где-то неявно будет меняться при вызовах. А если хранить состояние в статических переменных, можно нарваться на то, что они могут инициализироваться в произвольном порядке.
>>1107038>Почему статические методы считаются злом?Потому что есть свободные функции.> Как писать без них? Замени на свободные функции.
>>1107083Святая толстота.
>>1107087Ты просто ООП-сектант. А free functions — это best practices.Читай, быдло http://www.drdobbs.com/cpp/how-non-member-functions-improve-encapsu/184401197
>>1107111Ну ок, подменяем класс на неймспейс.
>>1107120Нахуя вообще нужны классы, когда есть неймспейсы? Ведь класс это просто неймспейс+тип.
>>1107120>>1107129Сектанты, классы могут быть шаблонными, а неймспейсы — нет.
>>1107134Навернуть макросов или как там в Кьютии, препроцессор какой.
>>1107141Наверни говнеца лучше.
>>1106946Какими ещё свойствами? Ты обдолбался?>лишние скобочки рядом с константами штоблядь>>1107068> (тогда и соответствующий деструктор нужен)shared_ptr>если в DEGREE передавать переменную, то оно не должно так просто заработать. Прочитай определение шаблона.>>1107129Хочу пять одинаковых неймспессов в рантайме. Надо создать пять процессов?
>>1107154>Какими ещё свойствами?Такими, какими было бы поле size в нормальном языке.>писать на каждый() чих() скобочки()>читаемо
>>1107156>size>константаМикроконтроллеропидор закукарекал.
>>1107154>shared_ptrПочитал про него. Нормальная тема, спасибо.>Прочитай определение шаблонаДа, уже успел глянуть. Знатно опозорился. Решил итого не трахаться с динамичсеской памятью, всё равно всего лишь курсач.
@УСТРОИЛСЯ В НОВУЮ КОНТОРУ@КУЧА ЛЕГАСИ КРУГОМ@C++11 - НЕ, НЕ СЛЫШАЛИ@СТИЛЬ НЕ ЕДИНООБРАЗНЫЙ, КУЧА ПЛАТФОРМЕННОГО КОДА ТОРЧИТ НАРУЖУ@ВЕДУЩИЙ ПРОГРАММИСТ ГОВНОКОДЕР
>>1107432@ПЫТАЕТСЯ ДОКАЗАТЬ ТЕБЕ, ЧТО ДЕСТРУКТОРЫ ЧЛЕНОВ-ДАННЫХ ВЫЗЫВАЮТСЯ В РАНДОМНОМ ПОРЯДКЕ
>>1107433@не знает про rvalue, auto, arrayКстати, где можно нажраться всякой теорией алгоритмов кроме дорогих книг Кнута?
А ещё бугурт скажу.Мне тут на днях сказали, что c++ это теперь low-level язык, так как есть божественный Ruby, python! @ПИШЕШЬ КОД НА ++@ПЫТАЕШЬСЯ ДОКАЗАТЬ ЧТО ОН БЕЗОПАСНЕЕ@ГОВОРЯТ ЧТО НИХУЯ, ТАК КАК СТРОЧЕК БОЛЬШЕ!
>>1107438Я по седжвику изучал. Объявняет сжато и без лишней патематики. Кнута трудно читать, как по мне.
>>1107449А по цене как? Я просто заебусь его в pdf читать.Томик Кнута 3к примерно.
>>1107450хз, там особо не надо зачитываться, лучше с собой тетрадку иметь, чтобы представлять как это "в пространстве". Если бы без тетрадки сидел, ебанулся бы думать, как patricia дерево работает.А так с PDF читал.
Аноны, я вкатился недавно в программирование, но так и не понял смысл ссылок. Зачем они нужны?
>>1107478Вкратце, чтобы не трахаться с указателями, когда в этом нет нужды. В анлийской википедии неплохо описаны отличия ссылок от указателей.
>>1107482Обоссыте меня, но какой смысл в указателях?
>>1107478Чтобы не пользоваться указателями
>>1107441@СТАТИЧЕСКАЯ ТИПИЗАЦИЯ? У МЕНЯ ИЗЗА НЕЁ НЕ КОПМИЛИЯЕТ, ЗАЧЕМ ОНА?>>1107478С точки зрения приципа работы - отличий от указателя нет.С точки зрения C++: передать указатель на временное значение нельзя, а передать временное значение по конст-ссылке или рвалью-ссылке можно. Сдвигать ссылку нельзя, а указатель можно.То есть, ссылки в C++ нужны для улучшения читаемости кода (меньше стрелок, звёзд и амперсандов), расширения сферы применения функций, соблюдения безопасности кода (но отхуячить ногу повисшей ссылкой ты всё равно сможешь, так что тут бабка надвое сказала. Пока перегрузку "оператор." не завезли, умных ссылок не будет, а без них и безопасности нормальной не будет).>>1107484лиспоблядь закукарекала
>>1107486Ок... Можно как-то без них программировать нормально?
>>1107488Без кого?Без ссылок - да, можно пользоваться указателями, проебываться, страдать, но программироватьБез указателей - да, можно не страдать, меньше проебываться и программироватьБез ссылок и указателей - да, это будет неоптимально и рано или поздно ты упрешься в ограничения размера стека, но это вроде как настроить можно
>>1107488на другом языке
>>1107488например, чтобы не засирать память.Ну, ты в любом случае со временем поймёшь.И например есть такая весёлая тема, что ты делаешь указатель на переменную в функции, ретурнишь, а оно возвращает хуй, так как функция умерла
>>1107488Конечно можно, только копирований будет дохуя (инбифо в моих задачах не будет) и производительность просядет. Чтобы функциональный код быстро работал (а код без указателей и ссылок - это чаще всего код в функциональном стиле), компиляторы и интерпретаторы функциональных языков используют кучу трюков, которые эквивалентны работе с указателями в плюсах, но разница всё равно есть. Даже в плюсах есть трюки для устранения лишнего копирования.
>>1107484Представь себе, что ты рисуешь кнопку с картинкой, что быстрее при вызове нескольких функций, копировать всю 10мегабайтную картинку или передавать только один указатель на память?
Я студент, вчера писал лабу смысл задачи был такой:пользователь вводит массив чисел а дальше с ними происходят некие действия и затем выводится массив. Только массив для этого должен быть динамический. Я решил не спрашивать у пользователя какой массив он хочет, а решил увеличивать массив путём копирования во 2 удаления, 1 созданием, но уже увеличенным в объёме, копирования в 1 , удалением 2 что бы в следующий раз если пользователь захочет увеличить объём, тоопять создатся 2 массив увеличинный и произойдёт всё что я описал выше. Но там возникла проблемма массивы не копировались друг в друга. Я решил написать программу дома и здесь тоже возникла проблема , но уже другая.Выдаёт вызвано исключение: нарушение доступа для записи.arr_one было 0x1118239. Вот я пришёл сюда за помощью. Подскажите пожалуйста что я не так сделал.Вот код:https://ideone.com/0Y8IU1
>>1107545Дождись когда будете на лекциях проходить стандартную библиотеку C++ - STL. Там уже есть готовые динамические массивы vector. Расширение массива на один элемент решается в одну строчку:// пустой массив целых чиселvector<int> vv; // сейчас размер 0// добавить элемент vv.push_back(22); // сейчас размер 1
>>1107560Ну а моя затея чем плоха?
>>1107569Плоха она тем, что происходит ОЧЕНЬ много бессмысленных выделений-освобождений памяти и операций копирования. А если по твоему коду - то меня очень напрягло то, что в одной функции у тебя ДВА раза объявляется переменная с одним и тем же именем int *arr_one. Если ты удалил область памяти, на которую указывал arr_one, то это не значит что сам указатель пропал.
>>1107545Off by 1 ошибка. Ну прогони в голове у себя одну итерацию цикла. Индексы в массивах идут с нуля, выделаешь память ты индексом. new int[1] это ровно 1 инт
>>1107545Ну и ты 2 раза копируешь зачем-то, можно же один раз копировать.0. у тебя есть массив1. выделяешь память под новый массив (с новым размером)2. копируешь из старого массива в новый и освобождаешь память старого массива3. заменяешь указатель на старый массив указателем на новый.Кроме того, на практике это реализуется хитрее: когда структура данных растёт, но новый массив можно делать размером не размер_старого + 1, а размер_старого + 1/2 * размер_старого, например (увеличивать размер только когда в старом место кончилось). Это так реализовано везде и каждый раз не нужно выделять память и копировать (обе операции сравнительно медленны)
>>1107545Если хочешь делать динамической, быстро расширяемое хранилище то делай что-то типа односвязного списка.https://ideone.com/OGrqrF
>>1099142 (OP)Анон, как правильно определять константы типа double, используемые в классе?
>>1107586ну так я копирую во временное хранилеще. Что бы увеличить старое , сохранить в него а затем удалить временное хранилеще. Не знаю как тебе, но мне эта идея кажется очень логичной.
>>1107700То есть два раза копируешь?
>>1107703да
>>1107698Тащемта ничего сложного нет. Просто объявляешь и определяешь.
>>1107698Хочешь const (инициализируется только в конструкторе), хочешь - static constexpr.>>1107704Нахуя.
Суп. Пикрил проблема. Она меня уже заебала. Качал разные версии, щелкал по настройкам по ссылке, гуглил, нихуя не помогло. Как исправить?
>>1108034Переходи на MSVS
>>1108034первый раз такое вижукутгосподин
>>1108047Лол, а походу я угадал пальцем в небоhttps://forum.qt.io/topic/66109/missing-kitsИ анон, пользуйся инглишем хотя бы для поиска сообщений об ошипках, первая ссылка же про qt missing kits
>>1108047> Переходи на MSVSЯ потому и скачал Кьют, что это параша ебаная. Создает все за тебя непонятно каким образом, чуть что не так сделал - сразу все наебнулось без возможности восстановления, а тут все пишется вручную, весь код твой родной, а не высратый, блядь.>>1108049Ну охуеть.
>>1108058>Лол, а походу я угадал пальцем в небоставить кутиде чтобы кодить на мспараше? охлол
>>1108058> https://forum.qt.io/topic/66109/missing-kitsНе понял. Мне нужно пути к проектам сделать без пробелов и спецсимволов? Это не помогло. К тому же, он написал что у него работает Qt Widget, а у меня на пике именно он. Что тогда?
>>1108061Наоборот же, там написано ставить студию и подключать компилер к твоей кьюти.
>>1108034Собственно, даже если при скачивании дистрибутива с креактором и запуска креактора из того бистрибутива такая проблема, то нужно сделать следующее:- сделать то, что написано над пустым списком- написать багрепорт>>1108075>Мне нужно пути к проектам сделать без пробелов и спецсимволов? И пути к файлам КуТэ тоже.
>>1108081> ставить студию и подключать компилер к твоей кьютитак, а зачем пик с креатора? он к либам никакого отношения не имеетанон же хочет компилить из креатора конпелаятором мс?
>>1108081Кому ты пиздишь? От студии только компилятор нужен, взять его можно либо из студии, либо из SDK соотв. версии.
>>1108084Это ровно то что я и написал.
>>1108082> - сделать то, что написано над пустым спискомСделал уже давно. С начала там был желтый треугольник с восклицательным знаком, потом я нащелкал что его нет. Ничего не изменилось.> - написать багрепортКакой багрепорт? Я же говорю, что качал разные версии, и древние, и современные, все одно и тоже.> И пути к файлам КуТэ тоже.Да вроде там все без пробелов. D:\Programs\Qt.Пиздец какой-то, короче. Какие альтернативы для Qt? Такие, чтобы код был мой, а не высираемый автоматически.
>>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.
>>1108059>Я потому и скачал Кьют, что это параша ебаная. Создает все за тебя непонятно каким образом, чуть что не так сделал - сразу все наебнулось без возможности восстановления, а тут все пишется вручную, весь код твой родной, а не высратый, блядь.>Ты настолько необучаемый, что не можешь создать пустой проект?
>>1108034Переходи на линукс, сможешь выбрать гцц. Иначе ебись со студией или мингв.
>>1108087>Какой багрепорт? В компанию Qt, блядь. Не должно быть так, что ты скачал дистрибутив, поставил, запустил, и не можешь программу собрать, это баг.Я только одно могу предположить: ты скачал дистрибутив для MinGW.>>1108089А ты попробуй сам создать пустой проект, придурок, когда от тебя требуют выбрать кит и отключают кнопку "далее".
>>1108131>Я только одно могу предположить: ты скачал дистрибутив для MinGW.Но даже в этом случае у тебя будет хотя бы кит для мингв в списке, если ты его не удалил.
>>1108131>MinGWвсе там заебись ставится, просто школотрон хочет привентить туда пидерскийканпилятор
>>1108141Ну дык так тоже можно и должно работать, сам так делал. Если не работает - вперёд в Жиру Куты.
Аноны, а можно сделать так, чтобы переменные распологались в памяти без пробелов?
>>1108448Какие именно переменные-то? Зачем?pragma pack для структур + свой менеджер памяти ничего не выравнивающий, только по перформансу ты обосрёшься.
При создании проекта появляется вот такая хуйня. Сбрасывал настройки через /resetuserdata - нихуя не дало. До этого пытался поставить библиотеку OpenCV. Что я сделал не так?
>>1108458Ты походу даже стандартные пути заголовков сбил, вася.Совету изучить CMake и делать проект для спермостудии через него (куда проще и не будешь привязываться к одной платформе). Всё равно его используют все, и тебе так или иначе придётся.
>>1108469И что мне сейчас делать? Как мне эти стандартные пути вернуть? я их блять даже не трогал
>>1108481Проект новый создать, очевидно. И ещё очевидно что делать его стоит сразу на cmake как советовал антоша выше.
>>1108131> В компанию Qt, блядь. Не должно быть так, что ты скачал дистрибутив, поставил, запустил, и не можешь программу собрать, это баг.Я же говорю, я качал разные версии, ты хочешь сказать это именно на моей пеке оно?> Я только одно могу предположить: ты скачал дистрибутив для MinGW.Да я блядж много чего качал, и с разными компонентами(с начала дефолтная папка tools, потом еще выбирал дополнительно верхние папки). А с чего вы вообще взяли, что я туда компилятор из студии присобачить хочу? Моя цель - наоборот от нее отгородиться. Я когда древнюю версию Qt скачивал, даже отдельно компилятор mingw туда скачал.
>>1099142 (OP)Есть вопрос ребята. Всегда ли 'a' = 'A', и всегда ли 'a' < 'b'?
>>1108872Нет, да.
>>1108874А можно объяснить, почему?
>>1108876Открой таблицу символов ASCII. Тип char в Си это просто интерпретация численного кода в букву или символ в более общем случае. Поэтому 'a' непросто не равно 'A', а никогда не равно. Потому что 'а' имеет код 97, в то время как 'A' имеет код 65. Твой вопрос сводится к вопросу, пацаны а 65 равно 97 ? Касательно 'a' < 'b', тоже самое. Ты можешь пойти дальше и задать вопрос, а почему, допустим "a" < "aa", ответ: лексикографическое сравнение. Сравнение происходит в соответствии с цифровой комбинацией символов и понятно, что условное 97 будет меньше чем комбинация двух а.другой анон
>>1108876Потому что 'A' – это 0x41, а 'a' – 0x61 поэтому 'A' =/= 'a'.'b' – это 0x62, 0x61 < 0x62 всегда выполняется.
>>1108884>>1108883Cпасибо ребзи!
>>1108883>>1108884Еще 1 вопрос знатокам. Почему в VS если задать: char x1 = 'a', x2 = 'A' и сравнить их через if, то они равны?
>>1108903Сравниваешь как =, заместо ==, лол? Нет идей.
>>1108903>>1108935Присоединяюсь к вопросу, как происходит сравнение ?если что то вида :char x1 = 'a';char x2 = 'A';if(x1 = x2)конечно выдаст trueЧто происходит:ты присваиваешь х1 значение х2, потом х2 отправляется в оператор if , где преобраз. к типу bool, если х2 не равно 0, то ответ будет true. if (x1 == x2) то все будет в порядке, выдаст false как и должно быть.Стоит почитать/ освежить в памяти главу про условные операторы. Посмотри, что понравится в книгах из шапки.С++ и Си не те языки, которые можно выучить шароебясь по форумам и задавая вопросы.
>>1108940Естественно х1 отправляется в оператор if, самофикс
>>1108940>>1108935да, через = сравнивал, спасибо за разъяснение. Добра вам.
>>1108883>>1108884Стандарт не гарантирует, что basics character set это ASCII.Что он гарантирует — что '0', '1', ..., '9' идут подря, так чтоd == 'd' - '0'для d = 0, 1, ..., 9 всегда выполняется, в любом basic character set.
>>1108848Спутал тебя с кем-то из треда.>>1108872>Всегда ли 'a' == 'A'Никогда. Потому что два разных символа, блядь. Если ты смог сохранить два символа в кодировке, коотрую компилятор поддерживает, они не могут юыть равны.>и всегда ли 'a' < 'b'? Скорее всего ты не найдёшь ни одной платформы, на которой это было бы не так, но C++ такое соответствие не задаёт.>>1109010>Что он гарантирует — что '0', '1', ..., '9' идут подряСсылку дашь?
>>1108448new с размещением
Поясните дауну, в чем разница между обычными объектами, и new объектами? Человеческим языком. Все говорят, что это типа "выделение памяти". Блядь, а обычная переменная это не выделение памяти?
>>1109229аналог malloc
>>1109229Обычный объект или обычные переменные на неком стеке размещаются. Во-первых, размер стека ограничен, и он не сильно шибко большой, по умолчанию. Во-вторых, они там сами занимают и освобождают память. А через new ты можешь выделять сколько угодно памяти и по своей воле по мере необходимости в произвольном порядке её освобождать.А вот чего realloc не завезли - понять не могу. Он же быстрее работает. Если кусок выделенной памяти был больше запрошенной, то он не будет перевыделять память вообще. А через new-delete придётся в любом случае выделять временный кусок и копировать какой-то мусор. И потому приходится делать костыли, что размер вектора удваивается при добавлении элементов, чтоб менеджер памяти не мучить, так что программе для работы требуется ощутимо больше памяти, чем ей реально необходимо.
Занялся изучением 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]
>>1109291> Занялся изучением C ну так и проследуй в С-петушатню-треадх
>>1109300Там молчат
>>1109243realloc тоже небыстр, и реаллок делают так же - увеличивают размер памяти в геометрической прогрессии.
>>1109291Это нерабочий код, так как ты считываешь число лишь однажды. Скинь работающий код на ideone.
>>1109313Я считываю число каждый раз как по новой захожу в циклhttps://ideone.com/xK5W3S
>>1109310Угу. Но если самому писать самый тупой массив, то через new-delete он будет тормознее, так как он всегда в любом случае дублирует массив и производит копирование. Realloc же где-то внутри сохраняет размер выделенного куска, и без нужны не копирует.Не знаю как там в подробностях работает выделение памяти, кучи и прочее но с дивана выглядит так, что можно конечно это сделать за пределами менеджера памяти вручную, так что new-delete код будет работать по тому же принципу, но в таком случае размер выделенного куска хранится как на уровне менеджера, так и на уровне программы.А если же такая функция есть в самом менеджере (что было бы весьма логично, так как у него и так есть доступ к размерам выделенных кусков), то вот всего этого можно было бы избежать без лишних функций обратной связи возвращающих размер выделенных кусков, лишних переменных хранящих эти размеры или ещё чего-либо в этом духе.
>>1109321А если не изобретать велосипед и взять класс vector из стандартной еблеотеки — он будет работать и ещё быстрее! Чудны дела твои хосспаде...
>>1099142 (OP)Как в visual studio 2005 объявить строковую переменную, если на string x; оно начинает ругаться?
>>1109315Кому ты пиздишь? Где там отставание?https://ideone.com/lGWN1dНа входе там три числа, результат в точности соответствует вводу.>>1109321Хуиту несёшь. Посыл не понял.> так что new-delete код будет работать по тому же принципу, но в таком случае размер выделенного куска хранится как на уровне менеджера, так и на уровне программыnew-delete никак не помогает тебе избежать хранения рамера выделенной памяти в менеджере, так как delete не принимает на вход размер массива. Так что если ты захочешь сделать интрузивный конструктор - в котором будет эксклюзивно хранится размер полученной памяти - то тебе придётся делать это без new/delete, и в итоге ты получишь зонный аллокатор, так как более экономного способа учёта памяти нет (оверхед - по 1 биту на каждую единицу памяти), тогда ты будешь хранить размеры памяти в объектах, а таблицы выделения в менеджере (если ты хочешь хоть какой-то абстракции менеджера от конструктора). Любые другие варианты обязательно повлекут за собой указатели/индексы либо в сторону объектов, либо в сторону менеджера.Отсутствие аналога реаллока для new/delete вызвано тем, что тогда придётся иметь шестой конструктор - конструктор для изменения адреса объекта. Его просто не придумали во времена первого стандарта, так что живём без него и без ресайза. И НЕТ, это не связано с тем, что new/delete не хранят размеры, они их хранят.
>>1109331Вектор может использовать malloc/realloc только для trivially-copyable-типов. Указатели на объекты в общем случае могут где-то храниться, и если в случае с копированием в массив большего размера этим занимается мув-конструктор, то для изменения адреса объекта конструктора просто нет, языком не предусмотрено.>>1109332Матом ругается?
>>1109333>new-delete никак не помогает тебе избежать хранения рамера выделенной памяти в менеджереВот потому их и хейчу помаленьку, что они там всё хранят, а толку никакого.Забей, никакого посыла, просто ворчу. Мол от менеджера памяти требуется лишь работа с памятью, а эти автоматические конструкторы new-delete не нужны.
>>1109333>И НЕТ, это не связано с тем, что new/delete не хранят размеры, они их хранят. Но информацию о том, где располагается переменная с указателем, не хранят.
>>1109339Да ладно, в С++ Смысла особого в realloc нет. Можешь попробовать написать аналог вектора использующего realloc/malloc/free вместо new/delete - не забудь только поделиться результатами
>>1109351Скорее даже так - идеологически правильный realloc в С++ - это std::vector. Отдельный realloc у плюсового аллокатор не нужен.
>>1109341Какая ещё переменная с указателем, блядь?>>1109355С таким же успехом можно сказать, что реаллока для не trivially-copyable-типов нет. Убери свой вектор обратно в штаны, долбоёб.
>>1109351Ага, и пусть не забудет про шестой конструктор.
Точнее, не про шестой конструктор, а про шестой метод в дополнение к пяти (конструктор, - копирования, - перемещения, деструктор и ещё что-то пятое, забыл).
>>1109370Если ты про методы ,которые компилятор генерирует по умолчанию, если они требуются, то их 7.1. Конструктор по умолчанию.2. Дестр по умолчанию.3. Конструктор копирования4. Операция присваивания.5. операция взятия адреса (this)6. Конструктор переноса.7. операция присваивания с переносом
>>1109407Да, я про это, а точнее - про "правило пяти".
А можно из под линукс писать приложение для виндовс?
>>1109496Пиши портабл код и он будет собираться везде.Если тебе компилятор нужен, то это MinGW.
Анон, а как лучше проверять время на соответствие? Есть программа, которая каждую секунду сверяет текущее время с заданым интервалом и если текущее время входит в интервал, то выполняется работа. Но возникли проблемы. Время задаётся в формате (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 ветвлений, что делает код абсолютно нечитаемым.Есть ли какой-то более адекватный вариант сравнения времени?
>>1109513Конвертируешь время в С++-время (заголовок chrono)Пишешьif(время2<время1) время2+= суткиА дальше используешь функции сравнения времени из chrono.http://en.cppreference.com/w/cpp/chrono/time_point
>>1109519Двачую. Chrono единственно верный путь.
>>1109513>время2+= суткиА тут не возникнет проблем при переходе 31(30)(29)->1?
>>1109525->>>1109519
>>1109525Запиленная поддержка времени именно для этого и нужна. Будут ли там коррекционные секунды учитываться - сам нагугли, если хочешь.
И если ты не понял, когда я говорю "сутки", я имею ввиду std::duration с соотв. значением.http://en.cppreference.com/w/cpp/chrono/duration
>>1109567>>1109519>>1109522Большое спасибо. У меня получилось как-то так. Сначала проверяю больше ли начальное время конечного. Если начальное время больше, то тогда работа производится всегда вне периода начало-конец.Если начальное время меньше, то работа производится внутри периода начало-конец.
>>1109580Всё-таки лучше бы сутки прибавлял по условию, тогда было бы два ифа вместо трёх.
>>1109635Сутки не учитывают ситуацию видаСейчас 12:00. Процесс начинается в 16:00 а заканчивается в 13:00. С сутками процесс сработает завтра, но не сработает сегодня. Да такой сценарий маловероятен, но, как говорится, а хули?
>>1109580Мне кажется это глупо немного, почему бы просто не упорядочить сразу begin и end.
>>1109649>С сутками процесс сработает завтра, но не сработает сегодня. 1) У тебя процесс должен в прошлом остановиться, штоле?2) То, что ты не хочешь написать свой код правильно, не означает то, что это невозможно. Ссылку на документацию я уже дал тебе.2) Нахуя тебе from_time_t, если ты можешь получить то же самое с помощью ::now и прочих функций?3) А ещё ты про auto забыл.
>>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 забыл.Ага. Подправил вобщем.
>>1109705>то эта логика не сработает Логика есть только одна, и ты не можешь в неё. Тебе не нужно каждую секунду вычислять интервалы заново, ты можешь делать это только в конце интервала.А ещё я не могу понять, как твои макароны работают. time_t - это абсолютное время, а не суточное, так что ты уже где-то что-то вычисляешь, просто мне не показываешь. Ебись сам, короч. :3
>>1109715>Логика есть только одна, и ты не можешь в неё. Первый пик специально для тебя. >Тебе не нужно каждую секунду вычислять интервалы заново, ты можешь делать это только в конце интервала.А если перевод системных часов?>А ещё я не могу понять, как твои макароны работают. time_t - это абсолютное время, а не суточное, так что ты уже где-то что-то вычисляешь, просто мне не показываешь. А-то. На втором пике показано откуда всё. Я понимаю как сконструировать time_point на базе time_t с заданными параметрами. Но как сконструировать правильный time_point на базе имеющихся std::string?
>>1109720Алсо, сейчас понял что не захватываю следующий день.
>>1109720Теперь более-менее понятно. Тогда сделать меньше сравнений не получится. Про смену времени - ты прав.Ну и ещё код вида if(cond ){ return true;} это интересно само по себе. Писать надо return cond вместо этого.>>1109721В коде из >>1109705-то? Я на условия только сецчас посмотрел, они у тебя там ебанутые какие-то, присмотрись.
Помогите, пожалуйста! Что не так с функцией, которая должна нод двух чисел находить?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; }}
>>1109750Блядь, я умственно отсталый
>>1109752>>1109750Я тупой и все понял наконец! Вопрос снимается
>>1109752>проверяет четность целочисленной переменной через сравнение остатка от деленияТы не просто умственно отсталый, ты дегенерат – пиздуй на JS писать отсюда
Интересует вопрос: если я вообще хуёво общаюсь с математикой, сильно ли мне это помешает писать на с++?
>>1109785Миллион раз было сказано - математика нахуй не сдалась если ты не программист 3Д графики и не какой-нибудь ЧСВшный мудак с ЗП в 80к из яндекса.
>>1109790Благодарю, а расскажи пожалуйста в каких областях с++ наиболее эффективен, прост геймдев в беларуси невозможен, совсем, а других и не знаю
>>1109819>прост геймдев в беларуси невозможенКрч пили помесь танков и майнкрафта.
Ну, с утра это стало выглядеть так. В конструкторе, oldday = 100Идеи, предложения?
>>1109769Где ты там проверку чётности увидел, лолик?>>1109843Прочти последний ответ тебе, он до сих пор актуален.
>>1109860Return поправил. А что ты имеешь в виду под >условия только сецчас посмотрел, они у тебя там ебанутые какие-то, присмотрись?Условия мне кажутся понятнымиif (Начало > конца) {Проверка на нахождение текущего момента до или после обозначенного периода} else {Проверка на нахождение текущего момента внутри обозначенного периода}
>>1109869Я уж не знаю, что полезнее: разжевать всё это для тебя сейчас, или сделать так, чтобы ты сам напоролся.Два времени суток делят сутки на три интервала. Возьми под одному значению из каждого интервала и сделай таблицу труе-фалс с ожидаемыми значениями. Потом возьми код своих ифов и тоже сделай таблицу.Сравни эти ждве таблицы, и ты увидишь, что ты родил пиздец.
>>1109831ага в соло, с бюджетом степуха = 1к
>>1109878>Сравни эти ждве таблицы, и ты увидишь, что ты родил пиздец.Сначала я подумал что ты меня троллируешь, но потом я понял, что ты видимо не учитываешь условие if (begintp > endtp)которое производит проверку на то какой из *tp стоит первымИ соответственно, если endtp по временной шкале после begintp, то мы начинаем работу в первой точке - begintp и заканчиваем во второй точке - endtp.А если endtp по временной шкале стоит до begintp, то мы начинаем работу в любой момент до первой точки - endtp и после второй точки - begintp.Можно конечно переписать код пикрилейтед, и это наверное будет правильно. Но разве это ошибка?
>>1109912Я всё учитываю, я умею читать. Когда будешь это дерьмо дебужить, вспомни меня, удачи.
>>1109924Ну я, к сожалению, тоже не телепат возможно ты имеешь в виду что нужно учитывать двое суток? Не нужно, при смене суток begintp и endtp тоже соответственно смещаются и код работает.
>>1109928О, всё, теперь допедрил. Да, всё верно.return false; лишний только, он никогда не выполняется.
Анон, по новому стандарту я вот так:auto_ptr<int> p;уже не могу писать?auto_ptr больше не существует??
>>1109955Читай про shared_ptr и unique_ptr. auto_ptr признан кривой забагованной нинужно.
Анон, помоги с программой: В массиве В, содержащем 16 элементов, определить среднее геометрическое отрицательных элементов, расположенных между минимальным и максимальным элементами данного массива.учусь на экономе, не понимаю нахуя нам программирование, никогда не изучал его, но допуск к зачету нужен.
>>1109970> unique_ptr.эту тему тоже походу прикрыли.
>>1109971Пиздуй в ньюфаготред.
>>1109971А ещё тряси препода, блядь.
>>1109975Схуяли?http://en.cppreference.com/w/cpp/memory/unique_ptrДаже слова "deprecated" нигде нет.
>>1109971>учусь на экономе, не понимаю нахуя нам программированиеКак же толсто.
Перекатывайте, глупцы
Перекат https://2ch.hk/pr/res/1110566.html
>>1109819Различное системное программирование (Я писал прошивки для роутеров, сейчас пишу драйвер).+Веб-бэкенды (Яндекс).
>>1110749ну вообще занимательно? или лучше выбрать другую сферу и другой язык? На самом деле язык вообще похуй, просто сферу ищу наиболее нормальную, вообще хз есть 4 года а на что их пустить не знаю.
>>1110812Сейчас работаю в конторе около 100 рыл, контора занимается разработкой программного обеспечения для промышленной автоматизации. Ебать тут легаси... Еб твою мать, но кроме этого моя жопа особенно горит от того, что нет общего стиля кода и каждый петух топчет, как хочет. Просто глаза покрываются кровью когда я смотрю на хэдер-онли класс в 5000 строк или "гармоничное" сочетание CamelCase с all_lowers_with_underscores. Или охуенный подход замешинвания private, public и protected в одну кучу.Легаси - это пиздец. Хотя и платят 70к в моем мухосранске, но, блять, удовольствия работать с этим дерьмом никакого, увы...
>>11108121110749-анон на связи. Я бы не рекомендовал. Вкатывайся в питон, веб, и прочую хуету. Денег плюс-минус столько же, зато возможностей и вакансий больше. С++ надо действительно любить, и без страданий в нем никуда. Как никак - самый сложный мейнстримовый язык из существующих
>>1111052ну я и думал в веб, потому что epam в городе только, но бля, там же и так дохера народу, куда мне то ещё лезть, там любая обезьяна в веб лезет, или не так? а плюсы какие то родные стали, вот когда делать нечего, на них алгоритмы смотрю, это точно пригодится)
>>1100967Присвой вэлью начальное значение 1))
Можно поинтересоваться у уважаемых господ, какую IDE рекомендуете? Мнения вкатывальщиков менее 5 лет не учитываются.
>>1114283ту самую, которая у тебя на пике.Мимо-профессиональный-С++-программист.
>>1114323подписку обязательно сразу покупать?
>>1114428Community Edition бесплатна для домашнего использования, и ее за глаза.
Объясните, почему куча материалов по машинному обучению внезапно на пистоне, и практически не вижу на быстром С++, как это вообще? Мб не там смотрю?