>>1001379 Там проблема не в статике, а в том что в классе нельзя определять переменные которые должны хранится в памяти как объекты. Внутри класса можно определять только константные статические поля интегрального типа (в тим числе енумы). Сделали так из-за какой-то хуйни, походу никто точно не понимает нахуя. У СТРАУСА в "дизайне и эволюции" должно пояснятся скорее всего, но я что-то никак не соберусь почитать.
>>1001480 Потому что статические переменные создаются в объектном файле, и надо явно указывать где именно она будет лежать с помощью внешнего определения.
>>1001480 Не проверял, но предположу, что использование статической переменной в функции компилируется в обращение к какому нибудь фиксированному участку виртуальной памяти. Класс же - лишь структура, созданная для удобства программиста. В виртуальной памяти она представляет из себя либо массивы байт в стеке треда, равные по размеру ширине стека, или просто где нибудь последовательная область памяти в куче (а того и еще хуже объект пидорасит на маленькие кусочки с ссылками на следующие участки, так вроде в сисярпах). Раз статическая переменная принадлежит не объекту, а его описанию, то надобно где то в коде объявить эту переменную, чтобы компилятор выделил под нее память. Почему бы еще на этапе компиляции сразу на старте не выделить под статические переменные участок памяти? Ну, наверно потому что ты статическим можешь сделать что нибудь большое, что положит весь стек к хуям, поэтому сам контролируй размещение и выгрузку статической переменной.
>>1001480 Зачем присваивать переменные в хедере? Если реализация функций вне хедера, то и переменные логично вынести из него, даже не учитывая особенности компилятора.
Двач, хелп. Мне нужен мэп, где ключ - строка. А значение - объект класса. При этом при создании новых объектов класса вызывается конструктор со значением. Я написал так: https://pastebin.com/492Fa3ef Втоарая часть - конструктор. Пишет, что не может найти подходящий конструктор в строке созания. Что это может быть?
Конструктор по умолчанию у string с C++17 стал таким. >basic_string() noexcept(noexcept( Allocator() )): basic_string( Allocator() ) {} >explicit basic_string( const Allocator& alloc ) noexcept; Что это вообще за хуйня? Что там происходит, можете пояснить?
>>1001795 > noexcept(noexcept( Allocator() )) Служебный спецификатор, подсказывающий компилятору, что конструктор строки не кинет исключение, если конструктор аллокатора так же не кинет исключения. Фактически, под пустую строку место не выделяется, поэтому сам конструктор строки, если бы он не использовал аллокатор, мог бы быть помечен только при помощи noexcept, однако, конструктор аллокатора может бросить исключение, поэтому, чтобы не спровоцировать undefined behavior во время выполнения, делается такое. Сам же по себе noexcept в крестах - некий способ оптимизации, который должен в теории избавить программу от некоторых оверхедов на обработку исключений (сейчас используются zero-overhead исключения, которые, правда работают достаточно плохо, потому что большинство доступов к таблице переходов будет сопровождаться кэш-промахами)
Не могу понять как мне глобальные переменные объявить в системе из main.cpp и mg.h+mg.cpp.
В mg.h пишу int test;
В main.cpp пишу #include "mg.h" и там переменная работает корректно. В mg.cpp если прописать #include "mg.h", то пишет "multiple definition of `test'". Если не прописывать, то "'test' was not declared in this scope". Обе ошибки в mg.cpp. Объявлять в .h как extern int test;, а в .cpp уже по нормальному? Создать класс со static полями как в джаве (если тут так возможно)?
Я сегодня (или вообще) тупой, но не могу решить задачу. Есть int arr[] типа 2, 0, 3, 4, 5, 6, 4, 5, 6, 4, 5, 6 Количество элементов конечно. Сами значения могут быть любые, а не 0 .. len(arr)-1.
Как найти цыклы? Иными словами, в определенном месте начинается цикл (3 в примере), который имеет определенную длину (3).
>>1001924 >Объявлять в .h как extern int test;, а в .cpp уже по нормальному? В си так можно. Возможно и в этих ваших плюсах тоже. Ещё часто можно увидеть конструкцию [code] #ifdef BLABLABLA #define EXTERN_MG #else #define EXTERN_MG extern #endif [/code] А потом все глобальные переменные в mg.h объявлены с ключевым словом EXTERN_MG, а уже в mg.cpp перед включением mg.h стоит #define BLABLABLA
Но глобальные переменные - это плохо, пнятненько? Если ты на плюсах пишешь, то у тебя их вообще быть не должно.
Двач, что у крестов с сетевым программированием? Мне нужно поднять клиент-серверную связь. Клиент и сервер могут друг другу сериализованные данные. С++ или на крайний случай WinAPI позволяют это делать удобно испоткаропки, или придется брать сторонние решения от boost или еще откуда?
>>1001965 >это плохо, пнятненько? Конечно. Я пока изучаю язык, моя задача - сломать его как можно большим количеством способов, проверить на работоспособность какие-нибудь извращённые конструкции. Отсюда и вопросы такие.
>>1001705 Какой ещё хеадер? У меня всё кучей в main.cpp. >>1001929 Как нехуй: начинаешь с конца массива и ищешь суффикс массива в том, что читаешь. Как только находишь совпадение, длящееся до текущей позиции, цикл найден.
Господа, помогите нюфагу, пожалуйста. В общем, суть в следующем: На основе двусвязного списка нужно реализовать редактор правильных скобочных последовательностей с тремя операциями: L и R двигают курсор влево и вправо соответственно, а D удаляет скобку, на которой находится курсор, соответствующую ей парную и все между ними. Вот полное условие http://codeforces.com/problemset/problem/670/E?locale=ru Написав некоторый говнокод я смог сделть перемещения и удаление в том случае, если курсор смотрит на открывающую скобку. Попытался аналогично сделать удаление, если курсор на закрывающей скобке -- насосался. Что я делаю не так? Вот код: http://ideone.com/XhomLw Проблемы идут с 155 строки И да, список необходим именно самописный
>>1001370 (OP) Прочитал про сокеты беркли. Стал имплементировать метод приема бинарных данных от тонкого клиента. Все реализовано в цикле for(;;): 1. опрашивается select; 2. затем создается массив char[1024]; 3. с ним вызывается recv; 4. потом тут же в цикле while (!empty) создается другой массив char[1024] и снова вызывается recv, чтобы прочесть есть ли что в остатке или нет. Если recv возвращает 0 или -1, то empty = true.
Короче, что-то вроде такого: >for (;;) { > if (select(...) <= 0) > { > break; > } > char b[1024] = recv(...); > bool empty = false; > while (!empty) { > short s = char b[1024] = recv(...); > if (s <= 0) { > empty = true; > break; > } > } >}
Но получается блокирующая хрень во втором цикле на функции recv. Накидайте примерную схему реализации.
Анон, работал кто с Qt? Никак не могу создать массив из QChart'ов, аж бесит. Строка типа [code]QChart *ch = new QChart[4][/code] выпинывает экзешник с прекращением работы
>>1001795 >Конструктор по умолчанию у string с C++17 стал таким. >>basic_string() noexcept(noexcept( Allocator() )): basic_string( Allocator() ) {} >>explicit basic_string( const Allocator& alloc ) noexcept; >Что это вообще за хуйня? Что там происходит, можете пояснить?
Для новых ньюфагов есть отдельный загон. Хватит тут всякую элементарную хуйню спрашивать.
>>1002015 >Как нехуй: начинаешь с конца массива и ищешь суффикс массива в том, что читаешь. Как только находишь совпадение, длящееся до текущей позиции, цикл найден. Код?
Долбать, а почему нет функции sincos в с++? Есть же инструкция даже специальная, fsincos. Это надо что, вручную такой мусор писать? Я так посмотрел, оптимизации в gcc это дело совсем не решают, два отдельных вызова.
>>1002087 Чудеса. Я и O2, и O3 ставил. Не знаю как это всё сочетается с дебаггером, но по замерам времени до fsincos никак не оптимизируется, если сравнивать с ассемблерной вставкой. Не знаю, видимо codelite меня обманывает, и вообще за эти полторы недели как я его использую он себя что-то не очень показывает.
>>1002083 КМП-поиск в обратном порядке. С построением таблицы для ускорения поиска будет немного сложнее, но её можно сделать unordered_set-ом. Код писать не буду: лень и есть другие дела сейчас.
>>1002099 Не понял какой ты имеешь ввиду план. Вот замеры (N=1024102416). То есть cos и sin по отдельности не оптимизируются от слова совсем, и даже нет разницы считаю я синус и косинус от одного аргумента или от разных.
>>1002199 >Почему лучше него нет языков? Все языки, которые мы сейчас имеем делятся на три вида: Функциональщина Скриптовые C/C++/C#/Java etc
Функциональщина - говно, т.к. непрактична. Скриптовые - медленные и нетипизированные. Из-за нетипизированности есть проблемма того, что невозможно проверить типы на этапе компиляции, сделать хорошую IDE, хорошо делать профайлинг etc
Остаются си-подобные языки, где король C++. Он бюрократизирован, но среди сиподобных он, имхо, лучший.
>>1002204 >но среди сиподобных он, имхо, лучший. Добавлю. Просто из альтернатив есть C - но он слишком низкоуровневый. C#, но для него нужно с собой носить дот нет среду. Java - нужно носить JVM.
>>1002208 Потому и нужны прямые - соблазна много. И указатели, и макросы, и темплейты, и oop, и пляски с move/copy semantics, и перегрузка всего, и теперь еще и лямбды.
>>1001370 (OP) Я в си( и в программирование в общем) полный нуб, как можно реализовать такую штуку как log? То есть, нужно все слова введенные в консоли послать в файл.
И еще вопрос: как потом этот файл куда-нибудь послать. Я хочу чтобы этот лог файл посылался мне, от другого человека, что использует мою программу.
>>1002212 Понимаешь, при таком большом стандарте начинаются траблы с поддержкой компилера. >>1002213 >Не на моей стороне Я пролог забыл, ок. >>1002214 >Плюсы конечно говно, но дело явно не в лямбдах, они просто отлично сделаны. Что тебе не нравится? Лямбды говно, т.к. позволяют делать анонимные функции. Если даешь имя функции, но есть номенклатура.
>>1002220 >В списке си-подобных? В логических. Так твоя классификация будет полной. >Правильно. Каждому однострочному говницу, примененному в одном месте - свое имя! Да. Лучше прочитать имя и понять, что делает функция, чем разбираться. Это называется номенклатура.
>>1002208 >В стандарт включили много говна. Взять те же лямбды... дзен заключается в понимании того что крестовые лямбды - синтаксический сахар и что это правильно, тк настоящие лямбды крестам не нужны
>>1002223 >Лучше прочитать имя и понять, что делает функция >int slozit_x_i_dva(int x) { return x+2 } Без названия действительно хуй разберешься, а часто в лямбдах идут функции именно такого уровня сложности. Плюс у лямбд в c++ есть еще capture list.
>>1002225 >дзен заключается в понимании того что крестовые лямбды - синтаксический сахар и что это правильно, тк настоящие лямбды крестам не нужны Язык должен быть простой. Сахар убрать. ООП убрать. Оставить только генерики и концепты. Классы убрать.
>>1002216 >Лямбды говно, т.к. позволяют делать анонимные функции. Если даешь имя функции, но есть номенклатура. Пиздец долбоеб. Я вот уже вижу, как ты без вложенных функций и лямбд для каждого одноутробного говнища уровня collection_of_zalupa.map([] {++i;}) пишешь свою отдельную функцию в глобальном (и потом еще миллиард шаблонного говнища чтобы заинлайнить это дело, вместо одного простого шаблона).
>>1002233 >Java: ООП язык на виртуальной машине >C#: ООП язык с функциональными элементами на виртуальной машине >C: Процедурный кросплатформенный ассемблер Где тут подобие-то?
>>1002239 Очевидно, в синтаксисе. В нормальных языках нет такого говна, как инкремент/декремент внутри выражения, ебанутый синтаксис цикла FOR, ненужных скобок в IF и WHILE, замусоривающих код.
Ну и петушиная лексема ; совершенно не нужна - рудимент из тех времен, когда экраны были маленькими, и приходилось писать несколько statement'ов в одной строке. В 21-м веке statement'ы должны разделяться переводами строк.
>>1002253 Ну так в рантайме там точно так же нет никаких типов, от этого всякие скалы и прочие статические (с реальной статической системой типов, а не полудинамической залпы из Явы) страдают. И питон тоже житом обладает (хоть и не в основном интерпретаторе). >>1002256 Любой LLVM компилятор сразу в байт код компилирует, не перепрыгивай. Сишка в байткоде разве что в исследовательской буйнее вроде Грааля используется.
>>1002257 Кстати о C и статической типизации. Я вот могу сделать recv из фаила, и read из сокета. И никакой type-check этот элементарный проеб не ловит. Получается си - скриптовый язык?
>>1002262 >Получается си - скриптовый язык? Просто ты профессианал. >>1002265 Питонист сначала пишет код, потом запускает и пытается поймать exception.
>>1002260 >Любой LLVM компилятор сразу в байт код компилирует Если он тебе байткод на диск не пишет - это не значит, что его там нет. На расшифровку самого названия LLVM посмотри.
FORTRN, BASIC, Ruby, SQL - нормальные языки с человеческим синтаксисом Python имеет альтернативный синтаксис, включаемый с помощью from __future__ import braces (блоки выделяются не отступами, а фигурными скобками). Если бы этот синтаксис был основным, тоже был бы нормальный язык.
>>1002268 Нет. Каждый экземпляр шаблонного класса для отдельного типа шаблонного аргумента — это новый класс, сгенерированный компилятором. >>1002272 А что на их счёт сказать-то? >>1002274 Лол. >>1002269 Пиздос ты даун. Ну тогда и GCC байт код генерирует.
>>1002284 А я пишу на плюсах. И даже последние стандарты не многое позволяют ловить по сравнению с каким нибудь окамлом где такой хуйни писать вообще нельзя или растом.
>>1002281 И все равно я чувствую, что что-то не так. Может можно как-то без шаблонов обойтись? Задача-то, всего ничего, хранить запросы к БД, пока она их выполняет вместе с набором запрошенных значений. >>1002282 Ой да ладно, даже процедуры, порой, бывают полезны. А хотя погоди-ка, кажется я тебя помню
>>1002295 Хз, они же там вроде есть? Должны иметь. Иначе реально классы нужны становятся. >>1002292 В плюсах не вылетают эксепшены и ничего вообще не падает в рантайме?
>>1002296 Не имеют и не могут иметь. >>1002298 >В плюсах не вылетают эксепшены и ничего вообще не падает в рантайме? В плюсах большинство моих багов в питоне выявляется компилером. Счастье просто.
>>1002299 Ему нужно пихать шаблонные класс в контейнер, а не унаследованные. >>1002300 Значит ты очень хуёвый программист на питоне. >>1002303 >концепты Дык фп же нинужна, выше выяснили. А тут оказывается аналог тайпклассы нужны, вот те на.
>>1002306 Если у тебя в QueryResult будут шаблонные классы — то переписывай всё на наследовании или tagged union-ах (можешь просто std::variant взять), что больше нравится. Иначе насрать.
>>1002312 А теперь заснуть в структуру методы и открой рот еще раз. >>1002310 Я видел человека, который пишет функции с 26-ю аргументами и получает за это деньги. Зп — это показатель умения проходить собеседования.
>>1002318 >Ну на плюсах это тоже норм. На плюсах все намного проще. IDE помогает, компилер ловит баги уже на этапе написания строки. В питоне такого нет. И repl тут не заменит ide.
>>1002324 IDE у плюсов работают ровно до момента шаблонной дрисни/использования нестандартных расширений (без которых не обходится ни один большой проект, из-за чего например ядро линукса компилируется только gcc), и ловятся там ошибки уровня int i = "hui" и бесконечных циклов.
>>1002326 Попробуй создать массив из классов и массив из структов. Посмотри, что тратит больше памяти. >>1002330 Я уже точно не помню, но кажется vtables есть всегда. Они есть на случай, если ты начнешь химичить с rttl.
>>1002339 >По дефолту об RTTI нужно отдельно попросить. а vtable появляется только если туда есть что положить. Вроде так и есть, но в дизасмах часто видел vtables без нужды. Возможно, зависит от компилятора тогда.
>>1002338 Да нет, есть, причём весьма кошерная (и уже даже не одна). >>1002333 >Попробуй создать массив из классов и массив из структов. Посмотри, что тратит больше памяти. И как это замерить? С учётом всей залупы с выравниванием и страничной адресации памяти, и прочей платформоспецефичной хунты конкретного аллокатора.
>>1002313 А как на наследование переписать? У меня и близко представлений нет(почти) какие могут быть запросы и что в итоге нужно будет получить, так что реализовать все возможные в одно широченное дерево едва ли выйдет. А вот про variant я до этого и не слышал даже. Гляну потом, как работает, может отрапортуюсь о результатах реализации потом.
>>1002340 "In absence of an access-specifier for a base class, public is assumed when the derived class is declared struct and private is assumed when the class is declared class." stackoverflow.com со ссылкой на Стандарт утверждает, что это таки единственная разница между этими ключевыми словами.
>>1002343 Сделай метод в базовом классе для получения/использования нужных данных, наследуй от него все остальные и переопределяй, для каждого со своей логикой.
>>1002333 > vtables есть всегда Не знаю таких ABI, где vtables есть всегда. В известных мне ABI от микрософт и в Itanium C++ ABI vtables есть не всегда.
>>1002357 Ух что ты вспомнил! Когда-то читал об этом, вроде vtables все равно будет создана, но для итогового объекта она будет меньше(на пересечение) суммы vtables объектов-родителей. А вот просто интересно, как часто кому-нибудь приходилось с этим сталкиваться?
>>1002360 Если речь о том, что бы возвращаемым значением брать некий общий для всех возможных тип и потом уточнять в наследниках, то тоже нет, потому что типы могут быть любыми, и между int и std::string связи найти никак не получится.
>>1002367 Я не знаю, как можно поставить обработчик, который бы решил эту проблему, но вот теперь, осознав std::variant, я думаю в Querry вместо std::vector<std::tuple<QuerryResult...>> для хранения результата запроса, использовать что-то вроде std::vector<std::vector<std::variant<int,double,std::string>>>
>>1002216 >Лямбды говно, т.к. позволяют делать анонимные функции. Если даешь имя функции, но есть номенклатура. Если исключить из всех языков то, что может использоваться неправильно, от языков ничего не останется. Есть куча ситуаций, в которых имя функции не более информативно, чем её короткое тело. >>1002244 >мап и фолд вообще не делать. ЧЯДНТ: >>1002243 >>1002257 >си подобное? Уёбищная характеристика. Си - это язык, сочетающий скорость выполнения ассемблера с читаемостью ассемблера. В Си нет ничего того, чего не может быть в других языках, это элементарный язык. Си-подобный язык - это язык без ГЦ, без шаблонов, без классов, безо всего вообще. >>1002298 >Хз, они же там вроде есть? Должны иметь. Иначе реально классы нужны становятся. Что ты пишешь-то, блядь? Структура в C - это кусок данных без методов и привата. Структура в С++ - это данные с методами, с виртуальными функциями, с приватом - тот же класс. Что ты сказать хотел-то? >>1002323>>1002312 Ну что ты за ебанат-то? Что за counter? В плюсах нет ГЦ, пока не попросишь. >>1002329 >и ловятся там ошибки уровня int i = "hui" и бесконечных циклов. Что значит "ловятся"? Ты никогда этих ошибок не видишь, так как они сразу исправляются. >>1002333 Ничто не мешает сделать виртуальный метод в структуре. http://ideone.com/K12dLb
>>1002454 >Если исключить из всех языков то, что может использоваться неправильно и научить программеров писать код правильно, то в языке будет только то, что нужно. Пофиксил тебя. Не бомби.
>>1002591 Это значит, что ссл в бусте требуют дополнительного всего, нужно дбоавть хедеры опенссл и линкануть библиотеки.
у меня все это есть, как видно на скринах - БЕЗ линка статических библиотек проект НЕ собирается, но после того как их линкуешь он все равно требует .dll. Я гуглил, и очень много. Даже пробовал другие версии опенссл (но там буст их не воспринимает, скрин 50 постами выше). Если дать ему .длл - все работает отлично, но мне нужна именно статическая сборка без .длл.
>>1002595 Это дурацкая идея, но всё равно хочу предложить: запуст текстовый поиск по этому названию по всем файлам, которые моггуцт быть использованы в процессе компиляции: - папка MinGW - папка ОпенССЛ Тоталкоммандером, например.
ананасы, почему мое приложение на qt не работает на винде? Компилятор mingw32. Программа компилируется и запускается, но после нажатии кнопки вылезает runtime error пикрелейтед. В папку с экзешником клал папку platforms, но ошибка не уходит. Еще само приложение работает намного медленнее.
>>1002616 как раз таки через QtCreator и запускается, но потом крашится. если запускать экзешник, то он вообще не запускается, говорит, что нету Qt5Cored.dll, Qt5Guid.dll, Qt5Sqld.dll. я попробовал sqldrivers скинуть в папку с экзешником, но все равно требует Qt5Sqld.dll.
>>1002620 Добавь в системной переменной PATH путь директории QT_DIR/VERSION/bin, соответственно что означают первые два параметра ты должен понять сразу.
>>1002629 Научи, раз ты тут шитпостишь всё равно. И так, чем отличается C от ассемблера? Типизацию я забыл, а ещё чем? Стандартная библиотека - это не часть языка, а часть стандарта реализации. >>1002616 Искать не в названиях файлов, а в содержимом. Искать libcrypto-1_1 >>1002620 Это: >>996792 . Если у тебя программа рушится - это говнокод в 99,99% случаев, а не проблемы с Qt.
>>1002705>>1002700 Большую часть технологий применяют по трём причинам: - есть наработки - методики и код - синдром утёнка (работать привычным известным инструментом удобнее, чем изучать новый) - доступные альтернативы не обладают преимуществами, компенсирующими затраты на изучение Огромное число задач решается на широком спектре языков: от Баша до Ассемблера. Нет однозначных причин для использования чего-то конкретного. Очень много пользовательского софта написано на плюсах, но в большей части этого софта плюсы не незаменимы. Плюсы либо никогда не уйдут, либо будут очень медленно замещаться в: редакторы звука и видео, гейдев, научный софт, компиляторы и интерпретаторы, любые алгоритмы обработки больших объёмов данных. Это из-за того, что в плюсах есть много инструментов (разной степени удобства) для описания отношений между типами и для вычисления во время компиляции (constexpr стал применим к сложным структурам данных) и нет обязательного GC. При это, если не лезть в дебри языка, программа на плюсах может быть читаемой и понятной.
Как называется присвоение численной переменной символьной константы? Имею в виду пикрелейтед, например. В частности, нужен аналог для 64 битного числа.
>>1002728 Ни в какую VS для 64 бит не завезли. И правильно сделали. Пишите переносимый код (расширения GNU — можно), мрази. Для этого в VS2017 дополнительно завезли ключик, отключающий майкросовтовские расширения C++.
Я бы мог простить коделиту многое. Я бы мог простить коделиту тупой алгоритм автоотступов, бледную подсветку, отсутствие подсказок для enum class, рандомный пропуск одно из аргументов в подсказках для функций.
Но когда я обнаружил поиск/замену, работающий по принципу НАМ, меня прорвало.
Почему на винде русские символы занимают 1 байт? Какая там кодировка по умолчания? Я что-то не пойму, вроде пишет UTF8, но в UTF8 русские символы занимают 2 байта. Подскажите.
>>1002897 Исходный код и кодировка char-ов - разные вещи. В чарах не может быть UTF-8, это невозможно, по стандарту нельзя. Именно поэтому u8 и ввели в последних стандартах.
>>1002899 >В чарах не может быть UTF-8, это невозможно, по стандарту нельзя В смысле не может? Храни там что угодно, другое дело, что печататься будет мусор вместо текста.
>>1003033 upd Заметил, что boost::asio::connet / async_connect работает только через basic_resoler::iterator. Причем если брать чистый tcp сокет, то можно все еще использовать Ip::tcp::endpoint, а если использовать для ssl boost::asio::ssl::stream<boost::asio::ip::tcp::socket>, то функция async_connect/connect там отсутствует. Следовательно вопрос, как подсоеденить boost::asio::ssl::stream<boost::asio::ip::tcp::socket> по ip::tcp::endpoint ? В целом, ssl почти всегда используется для 443 портов которые весьма удоюно получать ресолвером, однако в том же QSslSocket все еще можно коннектится по любому порту. Просто не хочется дырявых абстракций.
На второй пикче у тебя ок, потому что ты передаёшь итератор, который ты и должен передавать. Пихаешь свой эндпоинт в любой контейнер с итератором и передаёшь итератор.
>>1003042 Блять, я аж в голос заорал с этих охуительных неймспейсов. boost::asio::ssl::stream::nebo::allah::moha::govno::hui::pizda::jigurda Как хорошо, что я больше не пишу ничего на крестах.
>>1003086 >Блять, я аж в голос заорал с этих охуительных неймспейсов. Этим говном страдает только boost::asio. Ну ладно, ещё пару библиотек из буста. >Как хорошо, что я больше не пишу ничего на крестах. Альтернативу без GC и без ебли головой о стену вроде раста уже придумали?
Такой вариант сработал. Если я правильно понял из документации, то servicename и hostname они запихнули туда для красоты, а нужны они только для ресолвера.
>>1003097 Ну, давай, предложи, только нормальную, чтобы и кроссплатформенность, и версии под старые компиляторы и чтобы хуй в жопу.
>>1003105 Дедлайн через 2 дня, с Qt ебли много, на их IDE еще перекатываться придется, а она говно мне не понравилась. >>1003106 Через WinAPI имеешь в виду? Или в MVC++ есть что то для сети вкусное?
>>1003107 IDE шикарная, лучше нет, серьезно, им бы еще возможность включения нацисткого автовыравнивания из студии и вообще цены б не было. А ебли много, но это чисто с компоновкой и лицензией >>1003110 Да нет, именно за это мне буст и приглянулся. У них все свое, хоть под домофон компиль.
>>1003113 Хз, у меня как дебаггер не завелся с первого раза и ошибки выдавал на кривой кодировке в виде "втфдцатолфатлфота тпоырпгц4пр89прыоп р08п2н48п2р4п42 Source.cpp алфо ощыуопрщыут 99:33", так я обиделся и забил кхуям. Жаль, что на крестах только на нем GUI и пилить.
>>1003113 Я тебя сейчас разочарую: у тебя в списке ни одного компилятора не поддерживающего хотя бы треть 11-го стандарта нету. Такую хуитку можно к каждой второй библиотеке нарисовать.
>>1003113 >им бы еще возможность включения нацисткого автовыравнивания из студии и вообще цены б не было. Он у них есть, Beautifier, или как там, в плагинах включается. Правда в культякрейтере анализ и автокомплит ну очень деревянные, даже с clang Code model.
>>1003114 Разберешься один раз - всю жизнь проблем не будет. Правда я все еще не могу по-человечески линкануть опенссл без длл. В бусте за один пропущенный плейсзолдер в бинде 120 строчек ошибок. >>1003115 Меня интересовала возможность делать ПО под любую древнейшую хуевину без редистров, и под старыми компиляторами я имел ввиду vс8, к примеру.
>>1003108 Как же заебато, когда разработчик языка навязывает свой стандарт, как, например, с пуфоном, в крестах подключи две либы и все, заебешься то подчеркивания, то CamelCase то еще какая хуйня...
Ананасы, в общем, вопрос такой. При вызове методов setjmp/sigsetjmp/longjmp/siglingjmp (которые, например, я мог вызвать при обработке сигнала программе), деструкторы для объектов в стеке вызваны не будут (и, фактически, если они имеют динамическое содержимое, то память утечет), я так понимаю, или я не прав?
>>1003303 Давай. >Альтернативу C++ - язык общего назначения, так что альтернативой ему является любой язык общего назначения. Уточни, пожалуйста, о какой конкретно сфере применения крестов ты ведешь речь. >без GC Ну давай, поясни мне за то, почему гц - зло вне зависимости от контекста.
>>1003336 Любая софтина, требующая риалтайма (риалтайм — работа за константное время, чтобы и до сюда не доёбывался) и вытекающих из него требований к перформансу. От игрушек и обработки аудио/видео/изображений до майнинга биткоинов и прочего прогрева железа. >Ну давай, поясни мне за то, почему гц - зло вне зависимости от контекста. Не перепрыгивай, у плюсов виден контекст использования. Я же не говорю писать то говнище что клепают на вордпресса и спрингах на плюсах, там с этим всё ок.
>>1003396 То-то кресты даже близко к системного программированию не подпускают. В то же время няшная сишке уже 50 лет замену найти пытаются. Прикрутить бы в си хотя бы неймспейсы - вообще идеальный язык будет.
>>1003402 Их не используют в системном программировании из-за, барабанная дробь... ABI. Хотя смотря что ты под этим понимаешь, например в понимании Пуйка это более чем системный язык.
В виртуальной памяти процесса есть область памяти, N байт из которых я хочу загнать в std::string. Как это лучше сделать? У меня есть адрес необходимой области и её размер, у страницы права на чтение/запись тоже есть. Причем нужно не просто скопировать эти байты, а именно сделать так, чтоб указатель указывал именно на ту область памяти.
>>1003402 >Прикрутить бы в си хотя бы неймспейсы - вообще идеальный язык будет. Братишка, я тебе Oberon принес, там есть модули! А еще ссылки, да с такими-то нуллами!
>>1003490 Потому что это не D, тут хуй тебе а не удобство. Просто это хуйня унаследованная с си ещё со времён, когда не инициализировав кусок памяти на стёке можно было что-то выиграть.
Читаю книгу Майерса "Эффективный и современный C++" 2015 года. Стоит ли прочитать и все предыдущие его книги? Заметил, что хотя эта книга и считается для профессионалов, некоторые вещи в ней изложены не очень полно и как-то мутно по сравнению с тем, как они изложены у Липпмана.
>>1003547 Если бы до этого не искал, не спрашивал бы. Там дичь какая то на 15-30 строк просто чтобы узнать имя процесса. Я думал может есть функция сделатьЗаебись()
>>1003460 >>1003430 У меня просто пр int ничего не делает ну как. У меня есть n функций void и в main они все поочередности призываются из ада ну ето ф теории а на практике - если ставить void то компилятор выводит ошибку на нем, при int ничего не выдает.
>>1003641 >Чего бля.webm int main() { //... } это соответствующее стандарту определение, если с ним не работает ищи ошибки в другом месте, но только не здесь. void main() { //... } не соответствует стандарту, кстати говоря.
Начал вкатываться в кодинг с крестов, это очень плохо? Пока дошел до указателей, вроде все понятно. Надо дальше изучать или лучше все же освоить жаву и с, и только потом лезть в кресты?
>>1003705 Наоборот с крестов лучше, потом вопросов не будет возникать почему это строки это не изменяются а каждый раз создаются в памяти, первое что пришло на ум. На самом деле, зная кресты ты на джаву будешь смотреть свысока (все объекты на куче что за пиздец)
>>1003750 Меня беспокоит то, что для одной и той же цели в крестах есть много функций. Например тот же std::cout и printf. Не знаю, хорошо это или плохо, но мне кажется, что это все же не очень хорошо.
>>1003705 В плюсах много не самых очевидных моментов и возможностей обосраться на ровном месте, готовься к охуенному времяпрепровождению за разгадыванием загадок почему все не так работает и валится.
Советую сразу читать про то, как процесс выглядит в памяти, хип, стек сегменты. Потом про то, как компилятор располагает объекты в памяти, про storage class. Если ты понял указатели, проблем не возникнет.
Зато потом на эти знания отлично лягут современные плюсы, move semantics, умные указатели, лямбда-хуямбда. И ты никогда больше не сможешь всерьез воспринимать остальные язычки программирования.
>>1003836 >Советую сразу читать про то, как процесс выглядит в памяти, хип, стек сегменты. Потом про то, как компилятор располагает объекты в памяти, про storage class. Если ты понял указатели, проблем не возникнет. Для программирования на плюсах всё это знать не нужно. Достаточно следовать стандарту.
От знания железа при изучении плюсов может быть больше вреда, чем пользы.
>>1003837 Я не согласен. Все же это некая основа, то, что происходит в действительности на железке. Без фанатизма, конечно. Низкоуровневые маньяки гипер-оптимизаторы творят страшное, да. Так, ознакомиться хотя бы по диагонали. Тем более, всякие вопросы по размещению объектов любят спрашивать на интервью, или почему плохая идея 10 метров буфера на стеке объявлять.
>>1003557 Вот, насри здесь: >>1001445 (OP) >>1003460 ТРАТИТ РЕГИСТР >>1003705 Вкатываться нужно с того, что интересно. По большому счёту - похер, с чего, если у тебя встроена защита от синдрома утёнка. >>1003763 ага а ещё можно написать a+b и b+a и получить одно и то же, что за пиздец >>1003837 >Достаточно следовать стандарту. И давно ты осилил и законспектировал 1000 страниц заёбистого английского?
>>1003861 >И давно ты осилил и законспектировал 1000 страниц заёбистого английского? Ты меня убедил. Следовать стандарту — невозможно. С сегодняшнего дня (точнее, ночи) прекращаю эту бесперспективную деятельность.
Анон, что скажешь про bigEndian и littleEndian порядки? По сети данные передаются в порядке Network order (bigEndian), а у меня на ноуте процессор от Intel и порядок байтов littleEndian. соответственно. Хотя для точности написал функцию определения порядка.
Так вот что странно. Вот такой код почему-то выдает строку 1D D5 06 84, то есть в порядке bigEndian, хотя должен в littleEndian - 84 06 D5 1D:
>>1003944 Endianness касается только хранения в памяти. Когда число попадает в регистр процессора, endianness теряет смысл - теперь это просто число. Хочешь увидеть littleEndian - читай число побайтово через указатели.
>>1003944 Ну и? Все правильно выдает 1DD50684 == 500500100, что тебя удивляет? Хочешь увидеть порядок байт - выводи побайтово. Еще в студии можно память просматривать, если не ошибаюсь Debug->Windows->Memory.
>>1003951 >>1003953 Погодите, если в памяти число так и содержится, зачем его перегонять через функцию htonl перед отправкой по сети? Во время отладки в памяти показывает значение 500500100.
>>1004022 Я про то, если программа скомпилирована на одном компьютере с little endian, а исполняется на архитектурах с big endian. Стоит ли исходя из этого, переворачивать числа перед их отправкой по сети?
>>1003867 типа >Ты меня убедил. Есть пищу без сахара — невозможно. С сегодняшнего дня (точнее, ночи) прекращаю эту бесперспективную деятельность. Или ты не шутил?
>>1003895 Об обратной совместимости с C ты не слышал, видимо. >что смешали две стандартные библиотеки >и получили это говно вместо языка. Тебя кто-то заставляет использовать две библиотеки одновременно? Сообщи в полицию, это незаконно. >>1003944 >Анон, что скажешь про bigEndian и littleEndian порядки? Я скажу, что ты должен использовать htons/ntols.. и аналоги. Никакая часть стандарта языка не зависит от endianness. >std::hex Число в base16, это тебе не байтоёбство. >>1004018 Тогда это учтено в htons (и аналогах для твоей имплементации). >>1004022 В некоторых архитектурах меняется. >>1004037 > если программа скомпилирована на одном компьютере с little endian, а исполняется на архитектурах с big endian. Если ты так изъбнулся, что создал экзешник (в PE и ELF архитектура описана) так, что ещё и впихнул его не на ту архитектуру - ты еблан. >>1004108 Возвращаю тебя из ссылки, хоть я и не ссылал тебя.
>>1004037 И если ты пишешь на bare metal, и твоя архитектура позволяет менять порядок байт, и ты его не выставил таким, который тебе нужен - ты тоже еблан.
>>1004157 >Об обратной совместимости с C ты не слышал, видимо. Слышал, и мне показалось, что она не нужна. >Тебя кто-то заставляет использовать две библиотеки одновременно? Меня сам язык заставляет это делать, ведь даже С++ код тянет за собой кучу сишных зависимостей.
>>1004164 >Меня сам язык заставляет это делать, Пример в студию. >ведь даже С++ код тянет за собой кучу сишных зависимостей. Любой компилируемый язык может тянуть glibc, если его библиотека написана с сишными функциями (и кучу других зависимостей из ОС, в том числе несовместимых с предыдущими версиями ОС). Тебя это вообще не касается.
>>1004167 >Любой компилируемый язык может тянуть glibc, если его библиотека написана с сишными функциями (и кучу других зависимостей из ОС, в том числе несовместимых с предыдущими версиями ОС). Вот это меня очень сильно и беспокоит. Я считаю, что каждая функция в компилируемом языке должна быть написана с нуля, не используя никакого сишного говна.
>>1004169 Пиши на bare metal на ассемблере, мань. В любом коде, который ты пишешь, будет неявно использован код на C или ассемблерная вставка, компилятор тоже C иногда использует и кучу вставок на ассемблере, правильность которых не доказана. В микрокоде ЦП тоже ошибки находят. А ещё биты в памяти переворачиваются. Язык у него виноват, видите ли.
>>1004169 И ещё ты проверил весь написанный на C++ без использования сишной либы человечеством код, и там нет ни единой ошибки, ни единого reinterpret_cast-а, и стандарт математически доказал верно ведь?
Суть проблемы заключается в том, что проверка (строки с 54 по 77) либо считается неправильно, либо я долбоеб. Также если вдруг кто подскажет как посчитать alpha=alpha(delta).
>>1004212 вот в том то и беда, что типа берется отрезок, и его надо поделить на m частей с шагом 2alpha/m В итоге он почти половину значений дает не найденых. Подсчет ручками говорит что вроде все правильно, но тогда функция должна считаться только по одной точке что-ли
>>1004224 Делаю скрин того что выводит на данный момент с данными m=10 delta=0.004 delta=0.008 На выходе: x - это разбиение в зависимости от h A - это рандомное число f(x) - это по иксу f_del2 - это значения функции с погрешностью Дальше берется отрезок который под пунктом 6, проверяем его на попадание в [0,1], если попадает - то считаем пункт 7 с учетом пункта 6 из пика (который фотка). Если не попадает, то считаем только то, что попадает в [0,1].
>>1004233 То что последняя функция T_alpha дает такие ебические значения, которые точно в [0,1] не попадают, то что с пятой итерации уходит по сути в нуль, но тут скорее всего вот тот момент что alpha=alpha(delta), то есть альфа сама по себе зависит от дельты. Как сказал научник, альфа по сути это "дельта в какой-то степени". Что це значит, моя не понимать.
В моем случае 0.0016 - это шаг разбиения вот этого отрезка который проверяем, это h1.
На нем и должна считаться функция, которая выбросы вот с этого пика должна сглаживать и приближать к первоначальной
Сейчас получается все работает правильно и просто проблема в этой альфе?
>>1002019 Просто пройдись стэком от одной скобки к другой. Закидываешь в стэк если скобка открывающаяся, удаляешь из стека если закрывающаяся. Если стек пустой, останавливаешься. Все, изи епт. Если идешь обратно, то все наоборот. Я бы тебе даже код скинул, но я с телефона.
>>1001370 (OP) Сап, аноны! Я подозреваю, что в треде присутствуют работающие господа, поэтому адресую свой вопрос прежде всего им. Есть ли шанс вкатиться к вам после работы веб макакой (фронт и бек), при отсутствии технической вышки? Обучаемый, могу в ООП, 25 лвл.
И так, вот вопрос: как захэшировать пароль на плюсах так, что бы это работало и под виндой и под линукс? Ебаный в рот, блять! Я уже начинаю думать, что Java - не такое уж и ебаное говно
>>1004602 Написать свою хеш-функцию и кешировать, как блять. Или использовать std::hash — есть имплементацию для всех примитивов и некоторых стандартных контейнеров стд, в том числе строк.
>>1004607 Тогда тащить всякие сторонние библиотеки, вроде botan или си-говнеца которое точно везде есть, на О начинается. Ну или использовать любой фреймворк вроде qt/folly.
Привыкни, в крестах из коробки есть только хай в виде UB. И вечно кривых строк.
>>1004613 Так я про библиотеки и говорю. Но я сумел найти только http://www.openwall.com/crypt/ которая использует всякие #include <sys/time.h>. Даже в сраном C# с этим говном легче. Складывается впечатление, что я - первый человек на земле, который решил захэшировать пароль на C++ с Винды.
>>1004625 Ну, по большому счёту ты из свой области (я так понимаю у тебя есть какой-то опыт работы) решил просто взять и съебать в абсолютно другую, где будешь с нуля начинать со всеми вкатывающимися валенками.
Отвечая на первый вопрос — похуй на умение в ООП, это не джава, тут надо уметь костыли городить. Шансы есть всегда.
>>1004145 >>1004157 Ох, ну вы меня прям растрогали, я аж пошёл шапку подчистил.
Кстати, покидайте свежих книг (если есть таковые) и просто напишите если есть идеи что ещё можно засунуть в шапку (да да, про перевалив мертвых ссылок я сам знаю).
Для вкатывающегося в язык имеет ли большое значение версия стандарта? Например, >Среда Visual C++ соответствует стандарту языка C++ 2003 г. со следующими главными исключениями: двухэтапный поиск по имени, спецификация исключений и экспорт. Кроме того, Visual C++ поддерживает несколько функций C++0x, например лямбда-выражения, ключевое слово auto, static_assert, ссылки на правосторонние значения и внешние шаблоны. Можно ли будет потом перекатиться в более свежие версии стандарта без слишком сильной анальной боли? И как вообще вкатываться в них, брать и просто и без задней мысли читать спецификации?
Байтоёбы, помогите. Нужно взять двухбайтное слово, разбить его на тетрады и поменять местами 2 и 3 тетрады, не трогая 1 и 4. Хуй знает, как это сделать. Есть прога, которая меняет местами 1 и 4 тетрады, не трогая 2 и 3. Можно её как-то переделать? https://pastebin.com/LUNZP5Sw
>>1004812 Я просто думаю, что незачем писать что-то заново, когда можно пару строчек исправить, только что конкретно исправить? Я в байтоёбстве не силен, для меня всё это непонятно.
Возникла необходимость написать примитивное окно на шинапи. В функцию обработки сообщений окна неплохо бы перекинуть указатель на класс окна, но std::bind сосет, msdn ловит залупу жопой(в глаза ебусь). Подскажите как передать в __stdcall функцию неявно параметр.
Анончик, который вчера посоветовал мне Botan. Может ты еще и знаешь, почему он отказывается собираться под виндой? "configure.py --cc=msvc --minimized-build --enable-modules bcrypt,auto_rng,system_rng,sha2_32 --amalgamation" В роли параметров конфигурации. Сначала выпало пару ошибок про std::min/max, которые я поправил, а вот с ошибками линковки сложнее.
botan_all.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp_CryptAcquireContextA в функции "public: __cdecl Botan::`anonymous namespace'::System_RNG_Impl::System_RNG_Impl(void)" (??0System_RNG_Impl@?A0x704a5e4b@Botan@@QEAA@XZ) botan_all.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp_CryptReleaseContext в функции "public: virtual __cdecl Botan::`anonymous namespace'::System_RNG_Impl::~System_RNG_Impl(void)" (??1System_RNG_Impl@?A0x704a5e4b@Botan@@UEAA@XZ) botan_all.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp_CryptGenRandom в функции "public: virtual void __cdecl Botan::`anonymous namespace'::System_RNG_Impl::add_entropy(unsigned char const * const,unsigned __int64)" (?add_entropy@System_RNG_Impl@?A0x704a5e4b@Botan@@UEAAXQEBE_K@Z) .\botan.dll : fatal error LNK1120: неразрешенных внешних элементов: 3
Судя по всему, проблема в crypt32.lib - виндовой(и не только) библиотеке, в которой расположены эти потерянные функции. Я пробовал дописать /DEFAULTLIB:crypt32.lib к команде линковщика, пробовал вставить #pragma comment(lib, "crypt32.lib") в botan_all.cpp, но ничего не помогло.
>>1004873 А что ты делаешь в крестотреде? Я помню тут был чистенько-си тредик специально для таких как ты. Я сюда не язык выбирать пришел, а решить проблему.
Есть какая-то книга по алгоритмам и структурам данных, которые уже реализованы в с++? Т. е. книга, в которой объяснялось бы, как пользоваться вот этим контейнером и для чего он нужен, как пользоваться этим алгоритмом, в каких задачах он полезен.
что можно интересного написать на крестах? в принципе, на джуна более-менее подхожу, но все же, надо гитхаб хорошими проектами заполнять, а идей как обычно нет :с
где искать вакансии джуна? Алсо, как я понимаю, чего-то типо стажировки или неполной занятости почти нет сужу по hh, там в сумме таких вакансий штуки 3
>>1005089 почему же? есть примитивное правило - прибавляй 256 до наименьшего положительного, оно и будет искомым например, -1 + 256 = 255, -267 + 256*2 = 245
>>1005082 >>1005088 Хуёво написано. Остаток от деления отрицательного в C++ — implementation defined. А вот результат присвоения отрицательного числа беззнаковому — определён однозначно.
>>1005111 я не особо эксперт в этом, но первое, что приходит на ум - либо вычитать полученное из модуля типо int a = -1 % 256; if (a<0) a=256+a;, либо кастить к чему-то беззнаковому
>>1005140 Поздравляю вас, господин соврамши. > If both operands are nonnegative then the remainder is nonnegative; if not, the sign of the remainder is implementation-defined.
>>1005142 Ах да, эти implemetation defined отличия. >>1005119 С какого хуя? В теории чисел просто смотрят класс вычетов по модулю, а какой там знак - похуй.
Как уменьшить количество знаков после запятой? У меня float f = 5.23762, а я хочу f = 5.24. Только не вывести в таком формате, а именно сохранить. printf не нужен
>>1004869 Клуб анонимных алкоголиков: >>1001445 (OP) >>1005200 Динамический куб. Никогда не понимал, честно говоря, этих изъёбств. Почему нельзя добавить в STL линеаризацию на ОДНОМ указателе с помощью оператора[]? >>1005210 Строго говоря: никак, двоичное представление не может гарантированно точно выразить десятичную дробь. Можешь попробовать: float precisionMulti=100; //для твоего примера val=std:round(val*precisionMulti)/precisionMulti;; Можешь потерять несколько верхних двоичных разрядов у очень больших чисел. Если изъебнуться, можно и это побороть.
>setbase changes the base used for integer I/O Джва года ждал! >Sets the numeric base of the stream. Дайте джве! >Values of base other than 8, 10, or 16 reset basefield to zero, which corresponds to decimal output and prefix-dependent input. Ах ты, сука, иди сюда, мать твою!
Господа, стыдно сказать, но у меня лаба горит а еще жопа, но это не так важно., поэтому вынужден попросить вас о помощи: Написал класс, но не могу перегрузить операторы ">>" и "+". Не подскажете, что я делаю не так? Заранее благодарен Код здесь: http://ideone.com/aUP0U4
>>1005345 Не исключено, но оператор сложения у меня даже не компилится, выдавая ошибку "error: 'land operator+(int)' must have an argument of class or enumerated type|"
>>1005345 >>1005344 Вопрос закрыт, правильный оператор выглядит как: land operator + (land l, int up){ l.editPopulation(l.GetPopulation() + up); return l; } Спасибо за внимание
>>1005210 Используй decimal для хранения данных (только в стандарте его нет, лел, ну и пиздос, азазаз). Если хочешь выводить в поток есть такой манипулятор с названием std::setprecision, который указывает, сколько знаков после запятой должно выводиться для числа с плавающей запятой. Ну и там, уже очевидно: >> std::string s; >> std::stringstream dummy(s, std::ios::in); >> dummy << std::setprecision(2) << 2.3345f; >> // заебися!
>>1005339 Стандарт все еще без порядка следования байтов в STL, просто охуительно. Библиотека нищенок... Ну хотя бы constexpr if породили, спасибо, теперь будет меньше мозгоебства (хотя стандарт начнуть применять и того позже, а если вспомнить про такую замечательную штуку, как CUDA, так года через 2 только).
>>1004238 >>1004199 графиковый кун снова на связи. Заставил я это дерьмо работать, однако появилась другая проблема: он считает и суммирует все как нужно, но, сука, неправильно. В большом цикле - проверка на попадание разделения отрезка на x-alpha и x+alpha. В цикле же T_alpha должна считать сумму смоделированной функции в каждом шаге разбиения маленького отрезка. Он это вроде бы делает, но значения должен меньше чем f_del2, но и не отрицательные. Может я где-то проебался глазами и не тот индекс поставил? Анон, выручай! https://ideone.com/k5vfOF - проект на ideone, картинка с новыми данными в пикрелейтед
>>1005435 Во-первых, дохуя народу с налом а не кредитками. Во-вторых, многие предпочитают попиздеть "а чо посоветуете?". В-третьих, еду всё равно готовят и раздают человеки.
>>1005473 Да, потому что это моделирование функции с погрешностью. В каждом шаге малого разбиения. В частности, вот тебе пожалуйста формула даже моделирования. Ниже, где этой единицы нет, искусственно возмущаем с помощью N
>>1005485 Если ты возводишь -1 в целочисленную степень (а по-другому и быть не может), тогда тебе проще проверить четен ли индекс и уже подобрать множитель. И если ты хотя бы чуточку знал, что из себя представляет float (IEEE 754), и как работает процессор, когда возводит число в степень, ты бы такой хуйней заниматься не стал (вот, к примеру https://stackoverflow.com/questions/4638473/how-to-powreal-real-in-x86)
>>1005457 За такой код надо палкой пиздить. Во всем этом говне даже разбираться не хочется. При беглом просмотре: отучись использовать директиву using, там где надо использовать стандартную функцию pow, лучше писать std::pow. Также прочитай про функцию rand (так, как ты написал, она всегда будет выдавать значение 41). Больше нет сил читать это.
Столкнулся с какой-то хуитой. Решил подучить цаплю и набросал проект динамической либы в кодоблоках, прожеватор — mingw-w64, примерно gcc5, что ли, режим c++14 и всё такое. Так вот, надрочил пару классов и всё вроде хорошо, но при попытке использовать один из классов в программке почему-то получаю ошибку
>undefined reference to _imp___ZN7Либа7КлассD1Ev' //декораторы могут отличаться
, указывающую на конструктор + ещё примерно два похожих срабатывания туда же. При этом ошибка исчезает, если реализацию деструктора (там delete в цикле + очистка списка) перенести из исходников в заголовочный файл. Схожу с ума, кароч. Логика в заголовочном файле — всё ок. Переношу в исходники — либа собирается, но хостовая прога не хочет.
>>1005429 спасибо за охуительный юмор. Видимо, контингент данного треда полон таких. Алсо, мне даже похуй на оплату, опыт первоочереден. Но нет, тебе надо свои охуительные шутейки вставить
>>1005607 >Допустим нашел я его в коде создания поля для сапера, нахер он там упал? Двумерный массив (двё звёздочки) байтоёбства (ещё одна, и того три), так тоже бывает. Иногда людям принципиально надо не объектами манипулировать, а ссылками на них.
Господа, как пофиксить данную ошибку? "Current compiler 'Intel C/C++ Compiler' doesn't have correctly defined debugger!". Linux mint 18.1, Code::blocks 13.12. Не могу никак разобраться с его настройкой, ЧЯДНТ? Ответ: "программируешь" не принимается
>>1005855 А переводчик использовать уже запретили, да?! У тебя отладчика нету для Intel C Compiler, маня. Скорее всего, gdb, подойдет, но тут хуй знает, никогда с интелом дела не имел.
Да, это действительно проблема линкера. Починил проблему линковкой libmylib.a (указал до неё путь и добавил -lmylib в параметры), теперь вроде всё норм. Спасибо, ананас.
>>1005862 Вот только GDB у меня и стоит, проверил в настройках. Всё равно не может найти его путь и ипользовать. Нихуя не понимаю, сорре, всю жизнь работал в VS как обезьяна. Таки откуда взять эту срань? Ошибка не исчезает и если меняешь Intel на обычный GNU
>>1005874 >Ошибка не исчезает и если меняешь Intel на обычный GNU Значит дело не в том, что компилятор от Intel, как это пытаются местные маньки выставить. Вообще формат отладочной инфы давно стандартизирован и ICC выдаёт инфу в нём.
>>1005874 CodeBlocks не IDE потому что. Поставь QtCreator как вот этот >>1005877 господин говорит и не еби мозги ни себе ни другим, если не смог разобраться. Если не дурачок, то можешь прямо с консоли отлаживать, GDB прекрасно справляется даже с самыми изощренными запросами. Или поставь себе CLion и, как в случае с QtCreator, забудешь о проблемах с отладкой (зато будут другие проблемы).
>>1005902 даже если и нет. Хотя, может все от того, что я еле дотягиваю до джуна алсо, какие есть нормальные ide-подобия? clion? нет, спасибо. Kdevelop разве что
>>1005909 >> Kdevelop Ты с гор слез что ли?! Если так, то под линуксом ни одной идеально рабочей IDE нет, вот уж извините, но QtCreator не дотягивает до полноценной IDE, потому что многих жизненно необходимых фич, типо рефакторинга (не просто переименования, а изменения объявления и т.д.) в ней нет. CLion сильно глючный и очень тормозной, очень... При проекте 400kloc и примерно 20 подпроектами он лагает люто и притом баги валятся с незавидной постоянностью.
Ну, если ты собираешься пилить что-то по мелочи, то и QtCreator'а тебе будет за глаза.
>>1005915 >CLion сильно глючный и очень тормозной, очень... При проекте 400kloc и примерно 20 подпроектами он лагает люто и притом баги валятся с незавидной постоянностью.
Прямо как решарпер в моём цесаркином студенчестве. Тогда писал на цесарке и хуел с того, как у коллег тупит это малополезное поделие.
>>1005925 >Прямо как решарпер в моём цесаркином студенчестве. Тогда писал на цесарке и хуел с того, как у коллег тупит это малополезное поделие.
Решарпер и сейчас пиздец как тормозит всю студию. Оттого то я и в одно время перелез на Visual Assist X, который тоже вполне неплох но гораздо быстрее и обладает более гибкими сниппетами (у решарпера они просто уебищные). Ну, как говорится, managed code не тормозит, да ведь?!
>>1005928 У меня под линупсом CLion. Под виндой и студия и CLion (да, я ебанат, но редактор IntelliJ мне очень нравится своим функционалом, хотя он и глючный)
>>1005932 Ну если глянуть на стек вызовов, то там да, он в такую кашу раскручивается. Кто-то явно переел паттернов, но, я как понимаю, это все в угоду гибкости и масштабируемости IDE сделано, поэтому такое месиво. Самая забава в том, что в некоторые моменты CLion начинает сжирать по 2.5 гига памяти, и потом потребление падает до 600 мегабайт.
>>1005935 Патерномакаки — бич мира разработки. Как из «я придумал такой подход и для конкретных случаев иногда он неплох» можно было вывести «любой ценой реализовать как можно больше паттернов не вникая в суть» — не понимаю, но джавистам за заражение нормальных людей спасибо.
>>1005881 CodeBlocks отличный вариант для ньюфага потому что там очень крутые галочки для компилера и линкера. Я с 2011 года пишу на С++ и многих флагов для GCC не знаю, а там всё можно мышкой потыкать. В QtCreator ненужный qmake либо кривая поддержка CMake (работать можно, но не ньюфагу разбираться с тонкостями костыльной поддержки CMake проектов).
>>1005957 Пффф, ни на кодоблоках, ни на кодолайте, ни на девсиси не пришлось ни разу возиться с *make. Вообще ни разу. Хотя девсиси может выбрасывать там ошибки, но это обычно к месту даже.
>>1005974 CMake в любом случае понадобится чтобы проект можно было распространять и собирать где угодно, а также открывать в любой IDE, он из коробки может транслироваться в разные файлы проектов, а если чего нет то можно найти в интернете.
>>1004659 ахахахахаха, ты аж джун, ох лол, вот петуч. ну ты дядя. мимо машинный кодер-стажёр 10034ш39498292357287598г89ц4не34н38954г8 кккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккк в атомную единицу времени.
Ответы на все вопросы - http://en.cppreference.com/w/ http://www.cplusplus.com/reference/
Прошлый
Теги: кресты, cpp