Этого треда уже нет.
Это копия, сохраненная 28 июня 2017 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
75 Кб, 400x400
C++ #53 #1001370 В конец треда | Веб
Вместо шапки - https://github.com/sosachbot/cppthreadhat/wiki
Ответы на все вопросы - http://en.cppreference.com/w/ http://www.cplusplus.com/reference/

Прошлый >>993446 (OP)

Теги: кресты, cpp
#2 #1001374
https://stackoverflow.com/questions/9282354/static-variable-link-error

Что это за уёбский язык такой? На кой ляд заново переписывать все статики наружу?
1001472
#3 #1001379
Причём у меня боилерплейт в мейн.cpp, но статики всё равно надо скопировать за скобки, так что ли?
1001395
#4 #1001395
>>1001379
Там проблема не в статике, а в том что в классе нельзя определять переменные которые должны хранится в памяти как объекты. Внутри класса можно определять только константные статические поля интегрального типа (в тим числе енумы). Сделали так из-за какой-то хуйни, походу никто точно не понимает нахуя. У СТРАУСА в "дизайне и эволюции" должно пояснятся скорее всего, но я что-то никак не соберусь почитать.
1001417
#5 #1001414
Как приучить Qt, чтобы билды были вида
ProjectName
--src
----main.cpp
--build-ProjectName-gcc5.3.0
----ProjectName.exe

Максимум, что получилось - закинуть все билды всех проектов в отдельную папку.
#6 #1001417
>>1001395
Чем класс принципиально отличается от функции? Почему в функции может быть любой статический объект без пердолинга?
#7 #1001419
>>1001414
Используй СMake
1001428
#8 #1001428
>>1001419
И как его на Qt натянуть?
#9 #1001429
>>1001414
Использовать обычный make?
#10 #1001431
>>1001414
Посмотри в настройки проекта, там где-то есть путь к билду относительно папки проекта.
#11 #1001472
>>1001374
Плохой, негодный язык. Возвращайся к PHP.
1001480
#12 #1001480
>>1001472
Можешь рассказать мне о том, почему статики в функциях любые, а в классах - только интегральные или с внешним определением?
#13 #1001485
>>1001480
Потому что в случае функции ясно, где выделить место под переменную: в той же единице трансляции, в которой определена функция.

В случае класса нужно явно определить, в какой единице трансляции будет располагаться переменная.
#14 #1001489
>>1001480
Потому что статические переменные создаются в объектном файле, и надо явно указывать где именно она будет лежать с помощью внешнего определения.
#15 #1001491
>>1001480
Не проверял, но предположу, что использование статической переменной в функции компилируется в обращение к какому нибудь фиксированному участку виртуальной памяти. Класс же - лишь структура, созданная для удобства программиста. В виртуальной памяти она представляет из себя либо массивы байт в стеке треда, равные по размеру ширине стека, или просто где нибудь последовательная область памяти в куче (а того и еще хуже объект пидорасит на маленькие кусочки с ссылками на следующие участки, так вроде в сисярпах). Раз статическая переменная принадлежит не объекту, а его описанию, то надобно где то в коде объявить эту переменную, чтобы компилятор выделил под нее память. Почему бы еще на этапе компиляции сразу на старте не выделить под статические переменные участок памяти? Ну, наверно потому что ты статическим можешь сделать что нибудь большое, что положит весь стек к хуям, поэтому сам контролируй размещение и выгрузку статической переменной.
1001623
#16 #1001603
В C++17 завезли inline static переменные, уебаны.
#17 #1001623
>>1001491
И что это такоэ?
#18 #1001705
>>1001480
Зачем присваивать переменные в хедере? Если реализация функций вне хедера, то и переменные логично вынести из него, даже не учитывая особенности компилятора.
1002015
#19 #1001762
Двач, хелп. Мне нужен мэп, где ключ - строка. А значение - объект класса. При этом при создании новых объектов класса вызывается конструктор со значением. Я написал так:
https://pastebin.com/492Fa3ef
Втоарая часть - конструктор.
Пишет, что не может найти подходящий конструктор в строке созания. Что это может быть?
10017631001835
#20 #1001763
>>1001762
emplace
1001835
#21 #1001795
Конструктор по умолчанию у string с C++17 стал таким.

>basic_string() noexcept(noexcept( Allocator() )): basic_string( Allocator() ) {}


>explicit basic_string( const Allocator& alloc ) noexcept;


Что это вообще за хуйня? Что там происходит, можете пояснить?
10018051002061
#22 #1001805
>>1001795

> noexcept(noexcept( Allocator() ))


Служебный спецификатор, подсказывающий компилятору, что конструктор строки не кинет исключение, если конструктор аллокатора так же не кинет исключения. Фактически, под пустую строку место не выделяется, поэтому сам конструктор строки, если бы он не использовал аллокатор, мог бы быть помечен только при помощи noexcept, однако, конструктор аллокатора может бросить исключение, поэтому, чтобы не спровоцировать undefined behavior во время выполнения, делается такое.
Сам же по себе noexcept в крестах - некий способ оптимизации, который должен в теории избавить программу от некоторых оверхедов на обработку исключений (сейчас используются zero-overhead исключения, которые, правда работают достаточно плохо, потому что большинство доступов к таблице переходов будет сопровождаться кэш-промахами)
#23 #1001835
>>1001762
>>1001763
Нет.
Короче я поспрашивал, почитал, нужен конструктор по умолчанию, обязательно.
#24 #1001924
Не могу понять как мне глобальные переменные объявить в системе из 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 полями как в джаве (если тут так возможно)?
1001965
#25 #1001928
Я сегодня (или вообще) тупой, но не могу решить задачу.
Есть int arr[] типа
2, 0, 3, 4, 5, 6, 4, 5, 6, 4, 5, 6
Количество элементов конечно. Сами значения могут быть любые, а не 0 .. len(arr)-1.

Как найти цыклы? Иными словами, в определенном месте начинается цикл (3 в примере), который имеет определенную длину (3).

Флойд про другое.
10019291001944
#26 #1001929
>>1001928
Добавлю. Цикл начинается с определенного индекса и повторяется до конца массива.
1002015
#27 #1001944
>>1001928
Смотри i + 1 в цикле for
1001945
#28 #1001945
>>1001944
Цикл в цикле? Массив большой, долго будет выполняться.
#29 #1001947
Тут, видимо, можно как-то использовать hare and tortoise algorithm, но у меня уже голова закипает от теории.
#30 #1001957
Вроде понял. Нужно создать новый массив с индексами исходного и уже там выполнять hare and tortoise.

Спасибо, программач.
#31 #1001965
>>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

Но глобальные переменные - это плохо, пнятненько? Если ты на плюсах пишешь, то у тебя их вообще быть не должно.
#32 #1001966
Двач, что у крестов с сетевым программированием? Мне нужно поднять клиент-серверную связь. Клиент и сервер могут друг другу сериализованные данные. С++ или на крайний случай WinAPI позволяют это делать удобно испоткаропки, или придется брать сторонние решения от boost или еще откуда?
1001979
#33 #1001971
>>1001965

>это плохо, пнятненько?


Конечно. Я пока изучаю язык, моя задача - сломать его как можно большим количеством способов, проверить на работоспособность какие-нибудь извращённые конструкции. Отсюда и вопросы такие.
#34 #1001979
>>1001966
Удобно проходишься бесконенчым циклом по списку сокетов до победы. Лабу сделать хватит.
1002016
#35 #1002015
>>1001705
Какой ещё хеадер? У меня всё кучей в main.cpp.
>>1001929
Как нехуй: начинаешь с конца массива и ищешь суффикс массива в том, что читаешь. Как только находишь совпадение, длящееся до текущей позиции, цикл найден.
1002083
#36 #1002016
>>1001979

>Лабу сделать хватит


А если нужно сделать что то более гибкое и функциональное?
1002129
#37 #1002019
Господа, помогите нюфагу, пожалуйста.
В общем, суть в следующем: На основе двусвязного списка нужно реализовать редактор правильных скобочных последовательностей с тремя операциями: L и R двигают курсор влево и вправо соответственно, а D удаляет скобку, на которой находится курсор, соответствующую ей парную и все между ними.
Вот полное условие
http://codeforces.com/problemset/problem/670/E?locale=ru
Написав некоторый говнокод я смог сделть перемещения и удаление в том случае, если курсор смотрит на открывающую скобку. Попытался аналогично сделать удаление, если курсор на закрывающей скобке -- насосался. Что я делаю не так?
Вот код: http://ideone.com/XhomLw
Проблемы идут с 155 строки
И да, список необходим именно самописный
#38 #1002021
>>1001965

>Если ты на плюсах пишешь, то у тебя их вообще быть не должно.


Ага, вместо этого будет целый статик класс, работающей так же.
#39 #1002025
>>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. Накидайте примерную схему реализации.
#40 #1002033
Анон, работал кто с Qt?
Никак не могу создать массив из QChart'ов, аж бесит.
Строка типа [code]QChart *ch = new QChart[4][/code] выпинывает экзешник с прекращением работы
1002035
sage #41 #1002035
>>1002033

> 2017 год


> сишные массивы

1002039
#42 #1002039
>>1002035

>>2к17


>>до сих пор не уметь в Си

1002050
#43 #1002041
>>1002019
А там есть задачи попроще? codewars.com выглядит приятнее из-за разнообразия уровней сложности
1002043
#44 #1002042
>>1001965

>Но глобальные переменные - это плохо


Схуяли? Чем они хуже синглтона, например?
#45 #1002043
>>1002041
Конечно есть, но мне необходимо именно эту. Эту задачу мне дали как лабу
1002049
#46 #1002048
>>1002019

>насосался. Что я делаю не так?


>Олимпиадное программирование

1002051
#47 #1002049
>>1002043
Покажи раздел. Где не тыкну - везде охуительная графомания уровня научных исследований.
1002053
#48 #1002050
>>1002039
Ты совсем дурачок?
1002057
#49 #1002051
>>1002048
Блет, ну лабу мне такую дали, ну чессслово.
Я и ответы там же нашел, но все на стеке работают
1002054
#50 #1002053
>>1002049
http://codeforces.com/gyms
Здесь настройки сложности
#51 #1002054
>>1002051
Где учишься?
1002055
#52 #1002055
>>1002054
Это неважно
1002058
#53 #1002057
>>1002050
Не осилятора порвало
несите нового
10020641002082
#54 #1002058
>>1002055
Ну а хули ты пиздишь-то?
1002059
#55 #1002059
>>1002058
Клянусь, братишка.
Как бы то ни было, если не можешь помочь -- то уж не провоцируй, пожалуйста?
#56 #1002061
>>1001795

>Конструктор по умолчанию у string с C++17 стал таким.


>>basic_string() noexcept(noexcept( Allocator() )): basic_string( Allocator() ) {}


>>explicit basic_string( const Allocator& alloc ) noexcept;


>Что это вообще за хуйня? Что там происходит, можете пояснить?



Для новых ньюфагов есть отдельный загон. Хватит тут всякую элементарную хуйню спрашивать.
#57 #1002064
>>1002057

>Не осилятора


Значение знаешь?
#58 #1002082
>>1002057
неосилятора чего? Сишных массивов?
#59 #1002083
>>1002015

>Как нехуй: начинаешь с конца массива и ищешь суффикс массива в том, что читаешь. Как только находишь совпадение, длящееся до текущей позиции, цикл найден.


Код?
1002107
#60 #1002084
Долбать, а почему нет функции sincos в с++? Есть же инструкция даже специальная, fsincos. Это надо что, вручную такой мусор писать? Я так посмотрел, оптимизации в gcc это дело совсем не решают, два отдельных вызова.
10020871002088
52 Кб, 886x271
#61 #1002087
>>1002084

> Я так посмотрел, оптимизации в gcc это дело совсем не решают, два отдельных вызова.


Пизди в другом треде. https://godbolt.org/g/jZSb96
10020901002097
7 Кб, 421x69
#63 #1002089
>>1002088

>Есть


Нет.
1002092
#64 #1002090
>>1002087
Он у тебя sincos из гнутой math.h вызывает. Под виндой ее может не быть даже в минге.
#65 #1002092
>>1002089
Ну напиши ifdef для спермы, делов-то.
#66 #1002094
sincos - это у нас инструкция на x86 и x64, если память не изменяет. На армах, рисках etc этого же нет?
17 Кб, 381x187
#67 #1002097
>>1002087
Чудеса. Я и O2, и O3 ставил. Не знаю как это всё сочетается с дебаггером, но по замерам времени до fsincos никак не оптимизируется, если сравнивать с ассемблерной вставкой. Не знаю, видимо codelite меня обманывает, и вообще за эти полторы недели как я его использую он себя что-то не очень показывает.
1002099
#68 #1002099
>>1002097
Как ты себе представляешь оптимизацию в этом плане?
1002114
#69 #1002100
>>1002019
Господа, крайне стыдно возвращаться к этому, но без вас я скорее всего не справлюсь, посмотрите пожалуйста
1002232
#70 #1002107
>>1002083
КМП-поиск в обратном порядке. С построением таблицы для ускорения поиска будет немного сложнее, но её можно сделать unordered_set-ом.
Код писать не буду: лень и есть другие дела сейчас.
45 Кб, 566x511
#71 #1002114
>>1002099
Не понял какой ты имеешь ввиду план.
Вот замеры (N=1024102416). То есть cos и sin по отдельности не оптимизируются от слова совсем, и даже нет разницы считаю я синус и косинус от одного аргумента или от разных.
#72 #1002129
>>1002016
Понятия не имею. Интернет в помощь.
#73 #1002171
Объясните, стоит ли вкатываться в С++ в 2017?
На нем еще будут писать новые проекты или он целиком и полностью погрузился в legacy?
1002189
#74 #1002189
>>1002171

>На нем еще будут писать новые проекты


Да, будут

>стоит ли вкатываться


Раз спрашиваешь об этом - то нет.
1002195
#75 #1002194
Знает ли кто хорошую либу по работе со строками? Нужна платформонезависимость и поддержка всех кодировок уникода.
#76 #1002195
>>1002189
Просто пока читал треды, сложилось такое ощущение, что в С++ сделано все через жопу, и поэтому плодится такое количество говнокода
10021971002205
#77 #1002197
>>1002195
C++ действительно сделан через жопу, но лучше его нет.
1002199
#78 #1002198
Почитал https://github.com/sosachbot/cppthreadhat/wiki
Просто поражаюсь тому, насколько много говнокниг дается новичкам.

Сраный Мейерс и Александреску... Нет, чтобы дать Страуструпа и Степанова...
#79 #1002199
>>1002197
Почему лучше него нет языков?
1002204
#80 #1002204
>>1002199

>Почему лучше него нет языков?


Все языки, которые мы сейчас имеем делятся на три вида:
Функциональщина
Скриптовые
C/C++/C#/Java etc

Функциональщина - говно, т.к. непрактична.
Скриптовые - медленные и нетипизированные. Из-за нетипизированности есть проблемма того, что невозможно проверить типы на этапе компиляции, сделать хорошую IDE, хорошо делать профайлинг etc

Остаются си-подобные языки, где король C++. Он бюрократизирован, но среди сиподобных он, имхо, лучший.
10022061002209
#81 #1002205
>>1002195
Не

>в C++ сделано все через жопу


а

>с помощью C++ сделано все через жопу



Для C++ нужны очень прямые руки.
1002208
#82 #1002206
>>1002204

>но среди сиподобных он, имхо, лучший.


Добавлю. Просто из альтернатив есть
C - но он слишком низкоуровневый.
C#, но для него нужно с собой носить дот нет среду.
Java - нужно носить JVM.
#83 #1002208
>>1002205
I disagree. В стандарт включили много говна. Взять те же лямбды...
#84 #1002209
>>1002204

>C/C++/C#/Java


Шобля?

А вообще охуенная классификация

>Все живые существа делятся на три вида


>Жирные


>Четвероногие


>Голуби/Птеродактили/Свиньи/Коровы

1002211
#85 #1002211
>>1002209
Problems?
1002213
#86 #1002212
>>1002208
Потому и нужны прямые - соблазна много. И указатели, и макросы, и темплейты, и oop, и пляски с move/copy semantics, и перегрузка всего, и теперь еще и лямбды.
1002216
#87 #1002213
>>1002211
Не на моей стороне
1002216
#88 #1002214
>>1002208
Плюсы конечно говно, но дело явно не в лямбдах, они просто отлично сделаны. Что тебе не нравится?
1002216
#89 #1002215
>>1001370 (OP)
Я в си( и в программирование в общем) полный нуб, как можно реализовать такую штуку как log? То есть, нужно все слова введенные в консоли послать в файл.

И еще вопрос: как потом этот файл куда-нибудь послать. Я хочу чтобы этот лог файл посылался мне, от другого человека, что использует мою программу.
1002217
#90 #1002216
>>1002212
Понимаешь, при таком большом стандарте начинаются траблы с поддержкой компилера.
>>1002213

>Не на моей стороне


Я пролог забыл, ок.
>>1002214

>Плюсы конечно говно, но дело явно не в лямбдах, они просто отлично сделаны. Что тебе не нравится?


Лямбды говно, т.к. позволяют делать анонимные функции. Если даешь имя функции, но есть номенклатура.
#91 #1002217
>>1002215
А мамку тебе не выебать?
Ищи про

>open


>read


>write


>stdin



>как потом этот файл куда-нибудь послать


Открыл email клиент, приложил файл, послал.
1002221
#92 #1002220
>>1002216

>пролог


В списке си-подобных?

>Лямбды говно, т.к. позволяют делать анонимные функции


Правильно. Каждому однострочному говницу, примененному в одном месте - свое имя!
1002223
#93 #1002221
>>1002217

>Открыл email клиент, приложил файл, послал.



Это программа сама должна сделать? То есть такое можно реализовать в программе?

Хотелось бы именно, чтобы автоматом отсылалось.

Прошу прощения за глупые вопросы и спасибо, что ответил.
1002224
#94 #1002223
>>1002220

>В списке си-подобных?


В логических. Так твоя классификация будет полной.

>Правильно. Каждому однострочному говницу, примененному в одном месте - свое имя!


Да. Лучше прочитать имя и понять, что делает функция, чем разбираться. Это называется номенклатура.
10022271002231
#95 #1002224
>>1002221

Отправлять через внешнюю программу: ищи про system (хотя это очень хуевый api, но сойдет) - вызывай хоть sendmail, хоть rm-rf

Отправлять по сети самостоятельно: читай про сокеты - отправляй/посылай по сети любое говно
1002230
#96 #1002225
>>1002208

>В стандарт включили много говна. Взять те же лямбды...


дзен заключается в понимании того что крестовые лямбды - синтаксический сахар и что это правильно, тк настоящие лямбды крестам не нужны
1002228
#97 #1002227
>>1002223

>Лучше прочитать имя и понять, что делает функция


>int slozit_x_i_dva(int x) { return x+2 }


Без названия действительно хуй разберешься, а часто в лямбдах идут функции именно такого уровня сложности.
Плюс у лямбд в c++ есть еще capture list.
1002229
#98 #1002228
>>1002225

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


Язык должен быть простой. Сахар убрать. ООП убрать. Оставить только генерики и концепты.
Классы убрать.
#99 #1002229
>>1002227

>int slozit_x_i_dva(int x) { return x+2 }


Из-за таких профессиАналов, как ты мы имеем столько говнокода.
1002234
#100 #1002230
>>1002224
Большое спасибо. Буду гуглить.
#101 #1002231
>>1002223
Кстати, а почему C# и Java в си-подобных? Из-за скобочек?
1002233
#102 #1002232
>>1002100
Ты свой код на стандартном списке тестировал?
#103 #1002233
>>1002231
Считаешь, они не спиподобные?
1002239
#104 #1002234
>>1002229
Не как я, а как ты. Ты ведь за имена для всего говна агитируешь
1002235
#105 #1002235
>>1002234
В твоем примере вообще функции использовать нет нужды.
1002241
#106 #1002238
>>1002216

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


Пиздец долбоеб.
Я вот уже вижу, как ты без вложенных функций и лямбд для каждого одноутробного говнища уровня collection_of_zalupa.map([] {++i;}) пишешь свою отдельную функцию в глобальном (и потом еще миллиард шаблонного говнища чтобы заинлайнить это дело, вместо одного простого шаблона).
#107 #1002239
>>1002233

>Java: ООП язык на виртуальной машине


>C#: ООП язык с функциональными элементами на виртуальной машине


>C: Процедурный кросплатформенный ассемблер


Где тут подобие-то?
#108 #1002240
>>1002239

>Где тут подобие-то?


В задачах и методах.
1002242
#109 #1002241
>>1002235
А map и fold на шаблонах делать?
10022431002244
#110 #1002242
>>1002240
Ну тогда и питон си-подобный. И visual-basic
1002244
#111 #1002243
>>1002241
Я уже вижу как его сейчас прорвёт: НИНУЖНА
1002454
#112 #1002244
>>1002241
мап и фолд вообще не делать.
>>1002242
Питон скриптовой. Он медленный, без стат. типизации.
10022471002454
#113 #1002245
>>1002239
Для него все императивные С-подобые ОО-языки видимо на одно лицо.
1002246
#114 #1002246
>>1002245
Историю этих языков почитай для начала.
1002251
#115 #1002247
>>1002244

>Питон компилится в байткод.


>Ява компилится в байткод.


Тогда ява тоже скриптовый
10022481002251
#116 #1002248
>>1002247

>Тогда ява тоже скриптовый


Нет.
1002250
#117 #1002250
>>1002248
Чому? Потому-что ЕНТЕРПРАЙЗ? Потому-что компилится долго?
#118 #1002251
>>1002247
Дык дохнет тоже в свой байт код компилируется.
>>1002246
А ещё javascript что-то там кроме названия унаследовал от жявы, да.
1002256
#119 #1002253
>>1002250

>Чому? Потому-что ЕНТЕРПРАЙЗ? Потому-что компилится долго?


Стат. типизация и JIT.
10022571002260
#120 #1002254
>>1002250
А еще отсутствие отступов.
#121 #1002256
>>1002251
Ну, раз пошла такая пьянка, то и C в байткод компилится иногда
1002260
#122 #1002257
>>1002253
JIT - PyPy.

>Стат. типизация


Т.е. все со статической типизацией - си подобное?
10022621002454
#123 #1002258
>>1002250
В целом можно сказать, что скриптовой - это когда пишешь, а потом узнаешь, что делает.
1002265
#124 #1002259
>>1002239
Очевидно, в синтаксисе. В нормальных языках нет такого говна, как инкремент/декремент внутри выражения, ебанутый синтаксис цикла FOR, ненужных скобок в IF и WHILE, замусоривающих код.

Ну и петушиная лексема ; совершенно не нужна - рудимент из тех времен, когда экраны были маленькими, и приходилось писать несколько statement'ов в одной строке. В 21-м веке statement'ы должны разделяться переводами строк.
#125 #1002260
>>1002253
Ну так в рантайме там точно так же нет никаких типов, от этого всякие скалы и прочие статические (с реальной статической системой типов, а не полудинамической залпы из Явы) страдают. И питон тоже житом обладает (хоть и не в основном интерпретаторе).
>>1002256
Любой LLVM компилятор сразу в байт код компилирует, не перепрыгивай. Сишка в байткоде разве что в исследовательской буйнее вроде Грааля используется.
10022641002269
#126 #1002261
>>1002250
А еще постоянно лазишь в хелп, чтобы узнать имя метода.
#127 #1002262
>>1002257
Кстати о C и статической типизации.
Я вот могу сделать recv из фаила, и read из сокета. И никакой type-check этот элементарный проеб не ловит.
Получается си - скриптовый язык?
10022671002280
#128 #1002263
Опять диванные спесиалисты устроили срач.
#129 #1002264
>>1002260

>И питон тоже житом обладает


Не обладает твой питон житом. Там другой питон.
1002266
#130 #1002265
>>1002258
Ну тогда все, что не Coq (и иже с ним) - то скриптовый язык.
1002267
#131 #1002266
>>1002264
А ещё у GCC своя собственная сишка и плюсы, как у микросовтовского компилера.
#132 #1002267
>>1002262

>Получается си - скриптовый язык?


Просто ты профессианал.
>>1002265
Питонист сначала пишет код, потом запускает и пытается поймать exception.
1002271
#133 #1002268
Господа, я хочу хранить в одном контейнере разные специализации одного класса-шаблона. Могу ли я это сделать, не прибегая к void* и reinterpret_cast?
10022811002299
#134 #1002269
>>1002260

>Любой LLVM компилятор сразу в байт код компилирует


Если он тебе байткод на диск не пишет - это не значит, что его там нет. На расшифровку самого названия LLVM посмотри.
1002281
#135 #1002270
FORTRN, BASIC, Ruby, SQL - нормальные языки с человеческим синтаксисом
Python имеет альтернативный синтаксис, включаемый с помощью from __future__ import braces (блоки выделяются не отступами, а фигурными скобками). Если бы этот синтаксис был основным, тоже был бы нормальный язык.
10022751002279
#136 #1002271
>>1002267
А в C/С++/Java/C# формальными методами верность программы статически доказывают. Так?
1002274
#137 #1002272
Странно, что нет срача по поводу классов.
1002281
#138 #1002274
>>1002271
В сиподобных такие баги отлавливает (в большинстве случаев) компилятор. В питоне, руби etc приходится дебажить.

Что тебе не ясно то?
10022801002281
#139 #1002275
>>1002270
Про COBOL забыл. Все для людей.
#140 #1002279
>>1002270
DELETE FROM thisthread WHERE post_id=1002270;
1002283
#141 #1002280
>>1002274

>В сиподобных такие баги отлавливает (в большинстве случаев) компилятор.


Тогда си - не сиподобный.
>>1002262
#142 #1002281
>>1002268
Нет. Каждый экземпляр шаблонного класса для отдельного типа шаблонного аргумента — это новый класс, сгенерированный компилятором.
>>1002272
А что на их счёт сказать-то?
>>1002274
Лол.
>>1002269
Пиздос ты даун. Ну тогда и GCC байт код генерирует.
#143 #1002282
>>1002281

>А что на их счёт сказать-то?


То, что они не нужны?
10022871002291
#144 #1002283
>>1002279

>thisthread


В каком-то движке борд делалось по таблице на борду и действительно был треш типа

>SELECT * FROM $this_board

#145 #1002284
>>1002281

>Лол.


Что лол? Я некоторое время писал на питоне. Говорю, как практик лол.
1002289
63 Кб, 1621x795
90 Кб, 1611x792
#146 #1002286
Не собираются либы OpenSSL под бутом.

Когда использую версию 1.1.0 - все собирается, но программа все еще ищет динамические либы

Потом решил использовать версию 1.0.2 (Qt не скомпилился с 1.1.0) - теперь оно совсем не собирает.

В чем проблема может быть?
#147 #1002287
>>1002282
программирование нинужна
1002288
#148 #1002288
>>1002287
Зачем нужны классы, когда есть структы?
1002294
#149 #1002289
>>1002284
А я пишу на плюсах. И даже последние стандарты не многое позволяют ловить по сравнению с каким нибудь окамлом где такой хуйни писать вообще нельзя или растом.
1002292
#150 #1002291
>>1002281
И все равно я чувствую, что что-то не так.
Может можно как-то без шаблонов обойтись? Задача-то, всего ничего, хранить запросы к БД, пока она их выполняет вместе с набором запрошенных значений.
>>1002282
Ой да ладно, даже процедуры, порой, бывают полезны. А хотя погоди-ка, кажется я тебя помню
1002296
#151 #1002292
>>1002289
Не сравнивай это с питоном.
1002298
#152 #1002294
>>1002288
В них можно поля в начале написать без private. В структуре придётся в конец пихать и писать private для того же размера кода.
1002295
#153 #1002295
>>1002294

>В структуре придётся в конец пихать и писать private для того же размера кода.


В структах же public/private не имеют эффекта, так?
1002298
#154 #1002296
>>1002291
Ты код-то покажи, хотя бы пример.
В слепую могу сказать только что можно просто пихунить в контейнер tagged union.
10023001002306
#155 #1002298
>>1002295
Хз, они же там вроде есть? Должны иметь. Иначе реально классы нужны становятся.
>>1002292
В плюсах не вылетают эксепшены и ничего вообще не падает в рантайме?
#156 #1002299
>>1002268
Смотри boost.polycolection.
1002308
#157 #1002300
>>1002296
Не имеют и не могут иметь.
>>1002298

>В плюсах не вылетают эксепшены и ничего вообще не падает в рантайме?


В плюсах большинство моих багов в питоне выявляется компилером. Счастье просто.
1002308
#158 #1002302
>>1002298

>Хз, они же там вроде есть? Должны иметь.


Есть. Public и private работают.
#159 #1002303
>>1002298

>Иначе реально классы нужны становятся.


Совершенно не нужны. Нужны структы и концепты. ООП не нужно.
#160 #1002305
>>1002303
Истину глаголишь.
16 Кб, 579x520
#161 #1002306
1002313
#162 #1002308
>>1002299
Ему нужно пихать шаблонные класс в контейнер, а не унаследованные.
>>1002300
Значит ты очень хуёвый программист на питоне.
>>1002303

>концепты


Дык фп же нинужна, выше выяснили. А тут оказывается аналог тайпклассы нужны, вот те на.
10023101002315
#163 #1002309
>>1002303
Так, еще раз, в чем у наз там разница, между struct и class, за вычетом дефотного public/private?
1002312
#164 #1002310
>>1002308

>Значит ты очень хуёвый программист на питоне.


Хуй знает. Видел других таких же, получают нормально. Может мы все хуевые тогда.
1002316
#165 #1002312
>>1002309
В том, что классы требуют много памяти под инфраструктуру, а структы нет.
#166 #1002313
>>1002306
Если у тебя в QueryResult будут шаблонные классы — то переписывай всё на наследовании или tagged union-ах (можешь просто std::variant взять), что больше нравится. Иначе насрать.
1002343
#167 #1002315
>>1002308

>Значит ты очень хуёвый программист на питоне.


Но я тебе могу сказать, что на питоне это норм, когда пишешь, а потом дебажишь.
1002318
#168 #1002316
>>1002312
А теперь заснуть в структуру методы и открой рот еще раз.
>>1002310
Я видел человека, который пишет функции с 26-ю аргументами и получает за это деньги. Зп — это показатель умения проходить собеседования.
1002320
#169 #1002318
>>1002315
Ну на плюсах это тоже норм. Как и на джаве с си.
1002324
#170 #1002319
>>1002312
Под какую инфраструктуру?
1002323
#171 #1002320
>>1002316

>А теперь заснуть в структуру методы и открой рот еще раз.


Просто пиши методы для структуры.
#172 #1002323
>>1002319

>Под какую инфраструктуру?


counter, vtables etc.
#173 #1002324
>>1002318

>Ну на плюсах это тоже норм.


На плюсах все намного проще. IDE помогает, компилер ловит баги уже на этапе написания строки.
В питоне такого нет. И repl тут не заменит ide.
1002329
#174 #1002326
>>1002323

>counter


че?

>vtables


Только если объявлены виртуальные методы
10023331002357
#175 #1002329
>>1002324
IDE у плюсов работают ровно до момента шаблонной дрисни/использования нестандартных расширений (без которых не обходится ни один большой проект, из-за чего например ядро линукса компилируется только gcc), и ловятся там ошибки уровня int i = "hui" и бесконечных циклов.
#176 #1002330
>>1002323
А что хранится в vtables, если класс у класса нет наследников и предков?
А что на счет структур с наследниками и предками?
10023331002334
#177 #1002333
>>1002326
Попробуй создать массив из классов и массив из структов. Посмотри, что тратит больше памяти.
>>1002330
Я уже точно не помню, но кажется vtables есть всегда. Они есть на случай, если ты начнешь химичить с rttl.
#178 #1002334
>>1002330
Еще возможно, что наличие vtables зависит от компилятора.
1002339
#179 #1002335
>>1002329
Истину глаголишь. Как говорится, на компилятор с IDE надейся, а сам не плошай.
#180 #1002338
>>1002329
У питона, считай, вообще нет IDE. Самое лучшее, что там есть - это repl (bpython or ironpython).
1002341
#181 #1002339
>>1002333
>>1002334
По дефолту об RTTI нужно отдельно попросить. а vtable появляется только если туда есть что положить.
1002340
#182 #1002340
>>1002339

>По дефолту об RTTI нужно отдельно попросить. а vtable появляется только если туда есть что положить.


Вроде так и есть, но в дизасмах часто видел vtables без нужды. Возможно, зависит от компилятора тогда.
1002346
#183 #1002341
>>1002338
Да нет, есть, причём весьма кошерная (и уже даже не одна).
>>1002333

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


И как это замерить? С учётом всей залупы с выравниванием и страничной адресации памяти, и прочей платформоспецефичной хунты конкретного аллокатора.
1002342
#184 #1002342
>>1002341

>И как это замерить?


Просто создай большой массив и посмотри в первом приближении.
#185 #1002343
>>1002313
А как на наследование переписать? У меня и близко представлений нет(почти) какие могут быть запросы и что в итоге нужно будет получить, так что реализовать все возможные в одно широченное дерево едва ли выйдет.
А вот про variant я до этого и не слышал даже. Гляну потом, как работает, может отрапортуюсь о результатах реализации потом.
1002350
#186 #1002346
>>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 со ссылкой на Стандарт утверждает, что это таки единственная разница между этими ключевыми словами.
10023481002349
#187 #1002348
>>1002346
Ты постом промахнулся. Но разницы в структах между public и private нет вроде. Или уже добавили?
1002356
#188 #1002349
>>1002346
Да, между структурами и классами нет разницы, кроме дефолтного доступа к членам и при наследовании.

Даже трейт есть std::is_class, который даёт true, если тип объявлен с ключевым словом class или sgtruct. Трейта std::is_struct не существует.
1002351
#189 #1002350
>>1002343
Сделай метод в базовом классе для получения/использования нужных данных, наследуй от него все остальные и переопределяй, для каждого со своей логикой.
1002358
#190 #1002351
>>1002349

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


А там есть приватный доступ?
1002355
#191 #1002354
>>1002333

> vtables есть всегда


Не знаю таких ABI, где vtables есть всегда. В известных мне ABI от микрософт и в Itanium C++ ABI vtables есть не всегда.
#192 #1002355
>>1002351
struct zalupa {
private: int x;
};
#193 #1002356
>>1002348

>Или уже добавили?


Была всегда.
#194 #1002357
>>1002326

>>vtables


>Только если объявлены виртуальные методы


А как же виртуальное наследование?
1002361
#195 #1002358
>>1002350
если ты имеешь ввиду что-то типа
class base
{
virtual <type> getData();
};

class derived_forInt : public base
{
virtual int getData();
}

то не получится, потому что можно переопределить логику, но не возвращаемое значение. Если ты имеешь ввиду что-то другое, то что?
10023601002367
#196 #1002360
>>1002358

> но не возвращаемое значение


Ограниченно можно переопределить. covariant return type, всё такое.
1002365
#197 #1002361
>>1002357
Ух что ты вспомнил! Когда-то читал об этом, вроде vtables все равно будет создана, но для итогового объекта она будет меньше(на пересечение) суммы vtables объектов-родителей.
А вот просто интересно, как часто кому-нибудь приходилось с этим сталкиваться?
1002366
#198 #1002365
>>1002360
Если речь о том, что бы возвращаемым значением брать некий общий для всех возможных тип и потом уточнять в наследниках, то тоже нет, потому что типы могут быть любыми, и между int и std::string связи найти никак не получится.
1002370
#199 #1002366
>>1002361
vtable при виртуальном наследовании нужна, чтобы хранить указатель (или смещение) на базовый класс.
#200 #1002367
>>1002358
Зато можно написать обработчик который будет сувать их куда надо. Иначе бери std::variant.
1002374
#201 #1002370
>>1002365
Я просто мимо проходил, с чего всё началось — не читал.
#202 #1002374
>>1002367
Я не знаю, как можно поставить обработчик, который бы решил эту проблему, но вот теперь, осознав std::variant, я думаю в Querry вместо std::vector<std::tuple<QuerryResult...>> для хранения результата запроса, использовать что-то вроде
std::vector<std::vector<std::variant<int,double,std::string>>>
#203 #1002454
>>1002216

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


Если исключить из всех языков то, что может использоваться неправильно, от языков ничего не останется.
Есть куча ситуаций, в которых имя функции не более информативно, чем её короткое тело.
>>1002244

>мап и фолд вообще не делать.


ЧЯДНТ: >>1002243
>>1002257

>си подобное?


Уёбищная характеристика. Си - это язык, сочетающий скорость выполнения ассемблера с читаемостью ассемблера. В Си нет ничего того, чего не может быть в других языках, это элементарный язык. Си-подобный язык - это язык без ГЦ, без шаблонов, без классов, безо всего вообще.
>>1002298

>Хз, они же там вроде есть? Должны иметь. Иначе реально классы нужны становятся.


Что ты пишешь-то, блядь? Структура в C - это кусок данных без методов и привата. Структура в С++ - это данные с методами, с виртуальными функциями, с приватом - тот же класс. Что ты сказать хотел-то?
>>1002323 >>1002312
Ну что ты за ебанат-то? Что за counter? В плюсах нет ГЦ, пока не попросишь.
>>1002329

>и ловятся там ошибки уровня int i = "hui" и бесконечных циклов.


Что значит "ловятся"? Ты никогда этих ошибок не видишь, так как они сразу исправляются.
>>1002333
Ничто не мешает сделать виртуальный метод в структуре.
http://ideone.com/K12dLb
1002552
#204 #1002460
Нигде не могу нагуглить, что означают собаки (@) в заголовочных файлах стандартной библиотеки C++?
1002465
#205 #1002465
>>1002460
Теги доксигена?
Либо какое-то нарушение стандартов от MS
1002466
15 Кб, 608x187
#207 #1002469
>>1002466
Теги Doxygen
111 Кб, 1920x1080
110 Кб, 1920x1080
#208 #1002537
Ну помогите инвалиду статически собрать OpenSSL под бустом.

Все линкуется, вроде бы, успешно, но исполянемый файл все равно ищет .dll
1002591
#209 #1002552
>>1002454

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


Пофиксил тебя. Не бомби.
10025551002591
#210 #1002555
>>1002552
Тогда мы все писали бы на ассемблере. Ведь если подумать — все эти абстракции над ними это бесполезная хуита.
1002560
#211 #1002560
>>1002555
Си - это тебе не ассемблер. Ты и на асме никогда не писал, я думаю.
1002591
#212 #1002591
>>1002537
Что такое "опенссл под бустом"?
https://stackoverflow.com/questions/10774937/statically-linking-libraries-in-mingw - и вообще погугли, наверняка что-то найдёшь.
>>1002552
И это будет машина Тьюринга?
>>1002560
Не вижу принципиальных отличий C от ассемблера, кроме препроцессора.
10025951002629
102 Кб, 1920x1080
#213 #1002595
>>1002591
Это значит, что ссл в бусте требуют дополнительного всего, нужно дбоавть хедеры опенссл и линкануть библиотеки.

у меня все это есть, как видно на скринах - БЕЗ линка статических библиотек проект НЕ собирается, но после того как их линкуешь он все равно требует .dll.
Я гуглил, и очень много. Даже пробовал другие версии опенссл (но там буст их не воспринимает, скрин 50 постами выше).
Если дать ему .длл - все работает отлично, но мне нужна именно статическая сборка без .длл.
1002603
#214 #1002603
>>1002595
Это дурацкая идея, но всё равно хочу предложить: запуст текстовый поиск по этому названию по всем файлам, которые моггуцт быть использованы в процессе компиляции:
- папка MinGW
- папка ОпенССЛ
Тоталкоммандером, например.
1002616
30 Кб, 464x251
#215 #1002610
ананасы, почему мое приложение на qt не работает на винде? Компилятор mingw32. Программа компилируется и запускается, но после нажатии кнопки вылезает runtime error пикрелейтед. В папку с экзешником клал папку platforms, но ошибка не уходит. Еще само приложение работает намного медленнее.
1002616
9 Кб, 645x292
#216 #1002616
>>1002603
емм, а что искать то?
Линкуешь их - проект собирается, требует длл, не лиинкуешь - не собирается вообще.

>>1002610
Через сам QtCreator запускается?
10026201002695
#217 #1002620
>>1002616
как раз таки через QtCreator и запускается, но потом крашится. если запускать экзешник, то он вообще не запускается, говорит, что нету Qt5Cored.dll, Qt5Guid.dll, Qt5Sqld.dll. я попробовал sqldrivers скинуть в папку с экзешником, но все равно требует Qt5Sqld.dll.
#218 #1002624
>>1002620
Тебе нужна статическяа сборка всех либ, прогугли. либо лицензию купи
#219 #1002629
>>1002591

>Не вижу принципиальных отличий C от ассемблера, кроме препроцессора.


Да ты, аутист, и палец от жопы не отличишь.
1002695
#220 #1002634
>>1002620
Добавь в системной переменной PATH путь директории QT_DIR/VERSION/bin, соответственно что означают первые два параметра ты должен понять сразу.
#221 #1002695
>>1002629
Научи, раз ты тут шитпостишь всё равно. И так, чем отличается C от ассемблера? Типизацию я забыл, а ещё чем? Стандартная библиотека - это не часть языка, а часть стандарта реализации.
>>1002616
Искать не в названиях файлов, а в содержимом. Искать libcrypto-1_1
>>1002620
Это: >>996792 . Если у тебя программа рушится - это говнокод в 99,99% случаев, а не проблемы с Qt.
#222 #1002700
Так стоит ли учить С++ в 2017, или он уже полностью легаси?
Вчера мне так никто и не ответил
10027011002719
#223 #1002701
>>1002700
Если у тебя возникают сомнения — то не стоит.
1002705
#224 #1002705
>>1002701
Я хотел бы узнать, где его применяют и зачем.
Вряд ли бы ты стал учить что-то, не зная, для чего оно используется.
10027121002719
#225 #1002712
>>1002705

>Я хотел бы узнать, где его применяют и зачем.


Там, где нужны быстродействие и удобство.
#226 #1002719
>>1002705 >>1002700
Большую часть технологий применяют по трём причинам:
- есть наработки - методики и код
- синдром утёнка (работать привычным известным инструментом удобнее, чем изучать новый)
- доступные альтернативы не обладают преимуществами, компенсирующими затраты на изучение
Огромное число задач решается на широком спектре языков: от Баша до Ассемблера. Нет однозначных причин для использования чего-то конкретного.
Очень много пользовательского софта написано на плюсах, но в большей части этого софта плюсы не незаменимы. Плюсы либо никогда не уйдут, либо будут очень медленно замещаться в: редакторы звука и видео, гейдев, научный софт, компиляторы и интерпретаторы, любые алгоритмы обработки больших объёмов данных. Это из-за того, что в плюсах есть много инструментов (разной степени удобства) для описания отношений между типами и для вычисления во время компиляции (constexpr стал применим к сложным структурам данных) и нет обязательного GC.
При это, если не лезть в дебри языка, программа на плюсах может быть читаемой и понятной.
#227 #1002728
На MSVC++ для x64 в VS2017 не завезли ассемблерные вставки?
1002751
3 Кб, 349x60
#228 #1002747
Как называется присвоение численной переменной символьной константы? Имею в виду пикрелейтед, например. В частности, нужен аналог для 64 битного числа.
#229 #1002751
>>1002728
Ни в какую VS для 64 бит не завезли. И правильно сделали. Пишите переносимый код (расширения GNU — можно), мрази. Для этого в VS2017 дополнительно завезли ключик, отключающий майкросовтовские расширения C++.
#230 #1002755
>>1002747

>Как называется присвоение численной переменной символьной константы?


UB
10027561002758
#231 #1002756
>>1002747
>>1002755
Ладно, может и не UB.
Называется multi-character constant.
#232 #1002758
>>1002747
>>1002755
The value of an integer character constant containing more than one character (e.g., 'ab'), [...] is implementation-defined.

В итоге IB, не UB.
#233 #1002814
Помню раньше в шапке были стихи, где сейчас?
#234 #1002838
Я бы мог простить коделиту многое. Я бы мог простить коделиту тупой алгоритм автоотступов, бледную подсветку, отсутствие подсказок для enum class, рандомный пропуск одно из аргументов в подсказках для функций.

Но когда я обнаружил поиск/замену, работающий по принципу НАМ, меня прорвало.
#235 #1002887
Почему на винде русские символы занимают 1 байт? Какая там кодировка по умолчания? Я что-то не пойму, вроде пишет UTF8, но в UTF8 русские символы занимают 2 байта. Подскажите.
1002895
#236 #1002895
1002897
#237 #1002897
>>1002895
Где мне в этом можно убедиться? В редакторе в котором я открыл файл с исходным кодом пишется что это UTF8.
1002899
#238 #1002899
>>1002897
Исходный код и кодировка char-ов - разные вещи. В чарах не может быть UTF-8, это невозможно, по стандарту нельзя. Именно поэтому u8 и ввели в последних стандартах.
10029641003038
#239 #1002964
>>1002899
Что помешает мне засунуть однобайтный unicod`овский символ в char?
1003037
43 Кб, 1478x403
30 Кб, 1231x286
#240 #1003033
Как конвертнуть ip::tcp::endpoint в ip::tcp::resolver iterator ?
Комиплятор требует именно второй. Причем без SSL все работает нормально.
10030421003080
#241 #1003037
>>1002964

>Что помешает мне засунуть однобайтный unicod`овский символ в char?


Если его значение будет больше 127, то твоя строка превратиться в тыкву.
#242 #1003038
>>1002899

>В чарах не может быть UTF-8, это невозможно, по стандарту нельзя


В смысле не может? Храни там что угодно, другое дело, что печататься будет мусор вместо текста.
15 Кб, 684x317
#243 #1003042
>>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 все еще можно коннектится по любому порту. Просто не хочется дырявых абстракций.
#244 #1003065
>>1003042
Боже блять, пиосто дропни это оверинжинирнутое говнище.
1003093
#245 #1003080
>>1003033 >>1003042
http://www.boost.org/doc/libs/1_64_0/doc/html/boost_asio/reference/async_connect/overload4.html
http://www.boost.org/doc/libs/1_64_0/doc/html/boost_asio/reference/ip__tcp/endpoint.html

На второй пикче у тебя ок, потому что ты передаёшь итератор, который ты и должен передавать. Пихаешь свой эндпоинт в любой контейнер с итератором и передаёшь итератор.
1003091
#246 #1003086
>>1003042
Блять, я аж в голос заорал с этих охуительных неймспейсов.
boost::asio::ssl::stream::nebo::allah::moha::govno::hui::pizda::jigurda
Как хорошо, что я больше не пишу ничего на крестах.
10030871003088
#247 #1003087
>>1003086
AbstractFactoryProxyBean?
1003089
#248 #1003088
>>1003086

>Блять, я аж в голос заорал с этих охуительных неймспейсов.


Этим говном страдает только boost::asio. Ну ладно, ещё пару библиотек из буста.

>Как хорошо, что я больше не пишу ничего на крестах.


Альтернативу без GC и без ебли головой о стену вроде раста уже придумали?
1003277
#249 #1003089
>>1003087

>AbstractFactoryProxyBean


AbstractSingletonProxyFactoryBean< AbstractSingletonProxyFactoryBean> abstractSingletonProxyFactoryBean = new AbstractSingletonProxyFactoryBean< AbstractSingletonProxyFactoryBean>();
1003092
15 Кб, 808x331
#250 #1003091
>>1003080
Примерно так я и думал, только

>Пихаешь свой эндпоинт в любой контейнер с итератором и передаёшь итератор


звучит слишком сложно, я не силен в темплейтах, да и вообще дурачек
http://www.boost.org/doc/libs/1_47_0/doc/html/boost_asio/reference/ip__basic_resolver_iterator/create.html
Все что нашел, на скрине реализация, ты это имел ввиду? Что за сервис и хостнейм, я ж блин учусь только.
1003093
#251 #1003092
>>1003089
По сравнению с таким даже auto socket = boost::asio::ssl::stream<boost::asio::ip::tcp::socket>
Не кажется таким пиздецом, лол.
#252 #1003093
>>1003091

> Что за сервис и хостнейм, я ж блин учусь только.


>>1003065

>Боже блять, пиосто дропни это оверинжинирнутое говнище.


Советую прислушаться.
1003094
#253 #1003094
>>1003093
Ну, блядь, мне ж интересно.
Или может пойти доту скачать и пойти работать сисадмином на полставки?
1003097
#254 #1003097
>>1003094
Можно просто взять нормальную библиотеку для сети, а не это говнище из буста, я же не призываю идти грузчиком работать.
215 Кб, 1920x1080
#255 #1003101
Такой вариант сработал.
Если я правильно понял из документации, то servicename и hostname они запихнули туда для красоты, а нужны они только для ресолвера.

>>1003097
Ну, давай, предложи, только нормальную, чтобы и кроссплатформенность, и версии под старые компиляторы и чтобы хуй в жопу.
1003110
#256 #1003102
>>1003097
А какие есть нормальные кросплатформенные библиотеки только для сети? Я сейчас тоже как-раз ищу библиотеку для сети, другой анон.
1003110
#257 #1003103
>>1003097
И я ищу, мне кроссплатформенная нахуй не нужна, для шинды пойдёт.
третий анон
10031051003106
#258 #1003105
>>1003103
Да Qt бери, удобнее не сыщешь, я как раз пилю совмещенную версию для Qt и буста
первый анон
1003107
#259 #1003106
>>1003103
Для шинды и не нужна сторонняя библиотека, стандартные средства, подойдут.
1003107
#260 #1003107
>>1003105
Дедлайн через 2 дня, с Qt ебли много, на их IDE еще перекатываться придется, а она говно мне не понравилась.
>>1003106
Через WinAPI имеешь в виду? Или в MVC++ есть что то для сети вкусное?
1003113
#261 #1003108
Гляньте, может есть что для вас.
https://github.com/fffaraz/awesome-cpp#networking
1003164
#262 #1003110
>>1003101
>>1003102
Старые в 2к17 начинаются с поддержки 11-й версии компилятора (если нужен 03 или 98 — лучше уже ситного говна навалить, чем асио вымазываться):
https://github.com/facebook/folly
https://github.com/facebook/wangle
https://github.com/Microsoft/cpprestsdk
Так же любой большой или не очень фреймворк — Qt, Jute, WX...
1003113
36 Кб, 673x919
#263 #1003113
>>1003107
IDE шикарная, лучше нет, серьезно, им бы еще возможность включения нацисткого автовыравнивания из студии и вообще цены б не было.
А ебли много, но это чисто с компоновкой и лицензией
>>1003110
Да нет, именно за это мне буст и приглянулся. У них все свое, хоть под домофон компиль.
#264 #1003114
>>1003113
Хз, у меня как дебаггер не завелся с первого раза и ошибки выдавал на кривой кодировке в виде "втфдцатолфатлфота тпоырпгц4пр89прыоп р08п2н48п2р4п42 Source.cpp алфо ощыуопрщыут 99:33", так я обиделся и забил кхуям. Жаль, что на крестах только на нем GUI и пилить.
1003118
#265 #1003115
>>1003113
Я тебя сейчас разочарую: у тебя в списке ни одного компилятора не поддерживающего хотя бы треть 11-го стандарта нету. Такую хуитку можно к каждой второй библиотеке нарисовать.
1003118
#266 #1003116
>>1003113

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


Он у них есть, Beautifier, или как там, в плагинах включается. Правда в культякрейтере анализ и автокомплит ну очень деревянные, даже с clang Code model.
#267 #1003118
>>1003114
Разберешься один раз - всю жизнь проблем не будет. Правда я все еще не могу по-человечески линкануть опенссл без длл.
В бусте за один пропущенный плейсзолдер в бинде 120 строчек ошибок.
>>1003115
Меня интересовала возможность делать ПО под любую древнейшую хуевину без редистров, и под старыми компиляторами я имел ввиду vс8, к примеру.
1003121
#268 #1003121
>>1003118

>То самое чувство, когда пытался помочь говноеду-мазохисту...

#269 #1003164
>>1003108
Как же заебато, когда разработчик языка навязывает свой стандарт, как, например, с пуфоном, в крестах подключи две либы и все, заебешься то подчеркивания, то CamelCase то еще какая хуйня...
#270 #1003180
Ананасы, в общем, вопрос такой. При вызове методов setjmp/sigsetjmp/longjmp/siglingjmp (которые, например, я мог вызвать при обработке сигнала программе), деструкторы для объектов в стеке вызваны не будут (и, фактически, если они имеют динамическое содержимое, то память утечет), я так понимаю, или я не прав?
1003186
#271 #1003186
>>1003180
Не знаю. Что тебе мешает проверить это самому?
1003190
#272 #1003190
>>1003186
Лень.
1003229
#274 #1003277
>>1003088

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


Мань, ну не нада демагогии плес
1003303
#275 #1003303
>>1003277
В чем демагогия-то? Давай-ка без абстрактных ответов.
1003336
#276 #1003314
Что в крестах испоткаропки для криптографии есть? AES любой есть поточный?
10033171003483
#277 #1003317
>>1003314
Нихуя нет.
#278 #1003336
>>1003303
Давай.

>Альтернативу


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

>без GC


Ну давай, поясни мне за то, почему гц - зло вне зависимости от контекста.
1003396
#279 #1003396
>>1003336
Любая софтина, требующая риалтайма (риалтайм — работа за константное время, чтобы и до сюда не доёбывался) и вытекающих из него требований к перформансу. От игрушек и обработки аудио/видео/изображений до майнинга биткоинов и прочего прогрева железа.

>Ну давай, поясни мне за то, почему гц - зло вне зависимости от контекста.


Не перепрыгивай, у плюсов виден контекст использования. Я же не говорю писать то говнище что клепают на вордпресса и спрингах на плюсах, там с этим всё ок.
10034021003486
#280 #1003402
>>1003396
То-то кресты даже близко к системного программированию не подпускают. В то же время няшная сишке уже 50 лет замену найти пытаются. Прикрутить бы в си хотя бы неймспейсы - вообще идеальный язык будет.
10034041003491
#281 #1003404
>>1003402
Их не используют в системном программировании из-за, барабанная дробь... ABI. Хотя смотря что ты под этим понимаешь, например в понимании Пуйка это более чем системный язык.
Табрис #282 #1003413
Почему не может работать void main() ???
10034301003460
#283 #1003430
>>1003413
Почему не может? Может оно работать, тебе комплиятор лишь предупреждение выдает (обычно).
1003641
#284 #1003460
>>1003413
Чем тебя не устраивает стандратное int main()?
10036411003861
#285 #1003478
В виртуальной памяти процесса есть область памяти, N байт из которых я хочу загнать в std::string. Как это лучше сделать? У меня есть адрес необходимой области и её размер, у страницы права на чтение/запись тоже есть. Причем нужно не просто скопировать эти байты, а именно сделать так, чтоб указатель указывал именно на ту область памяти.
10034981003506
#286 #1003483
>>1003314

> искаропочки


Нихуя

> AES поточный


cryptopp
#287 #1003486
>>1003396
Если говорить о хай-перформанс приложениях, то да, ты прав.
#288 #1003490
Почему компилятор не инициализирует созданные переменные в стеке значениями по умолчанию?
#289 #1003491
>>1003402

>Прикрутить бы в си хотя бы неймспейсы - вообще идеальный язык будет.


Братишка, я тебе Oberon принес, там есть модули! А еще ссылки, да с такими-то нуллами!
#290 #1003492
>>1003490
А нахуй ему это? Он регистры сложил в кучку, rsp/rbp передвинул - ему заебись. Ты переменные на стеке создал - ты за них и отвечаешь.
#291 #1003498
>>1003478
new std::string(Указатель, Размер);
Ну или то же самое со string_view, если стандартная строка скопирует.
1003513
#292 #1003500
>>1003490
Потому что это не D, тут хуй тебе а не удобство.
Просто это хуйня унаследованная с си ещё со времён, когда не инициализировав кусок памяти на стёке можно было что-то выиграть.
#293 #1003506
>>1003478
placement new
1003507
#294 #1003507
>>1003506
Отбой, невнимательно прочитал.
#295 #1003509
Если бы Страуструп разрабатывал С++ с нуля, т.е С++ не имел ничего общего с чистым С, кроме синтаксиса, был ли у С++ такой ужасный дизайн?
#296 #1003512
>>1003509
Говна было бы раз в 8 меньше, но если бы он так же хаотично развивался 30 лет — его всё равно было бы очень много.
#297 #1003513
>>1003498
Не могу string view найти в experimental
1003516
#298 #1003516
>>1003513
Какой компилятор? Он даже в последних спермостудиях есть.
1003518
#299 #1003518
>>1003516
VC++ 14
72 Кб, 1000x563
#300 #1003527
Читаю книгу Майерса "Эффективный и современный C++" 2015 года. Стоит ли прочитать и все предыдущие его книги? Заметил, что хотя эта книга и считается для профессионалов, некоторые вещи в ней изложены не очень полно и как-то мутно по сравнению с тем, как они изложены у Липпмана.
10035301003532
#301 #1003530
>>1003527
Надо читать абсолютно все книги.
#302 #1003532
>>1003527
Разве что на другие темы, прошлые издания этой не обязательно.

Именно потому что она не для новичков там не обязательно разжевывать всё за тебя и в рот класть.
#303 #1003543
Как узнать имя текущего процесса? Именно имя процесса, а не путь к исполняемому файлу.
1003547
#304 #1003547
>>1003543
Это вопрос к гуглу "как узнать имя процесса API твоя система нейм", а не для крестотреда.
1003555
#305 #1003555
>>1003547
Если бы до этого не искал, не спрашивал бы. Там дичь какая то на 15-30 строк просто чтобы узнать имя процесса. Я думал может есть функция сделатьЗаебись()
1003557
#306 #1003557
>>1003555
А, наебал. Нужно то, что в диспетчере задач называется "Описание".
10038461003861
#307 #1003641
>>1003460
>>1003430
У меня просто пр int ничего не делает ну как. У меня есть n функций void и в main они все поочередности призываются из ада ну ето ф теории а на практике - если ставить void то компилятор выводит ошибку на нем, при int ничего не выдает.
1003698
#308 #1003698
>>1003641

>Чего бля.webm


int main() { //... } это соответствующее стандарту определение, если с ним не работает ищи ошибки в другом месте, но только не здесь.
void main() { //... } не соответствует стандарту, кстати говоря.
1003748
#309 #1003705
Начал вкатываться в кодинг с крестов, это очень плохо? Пока дошел до указателей, вроде все понятно. Надо дальше изучать или лучше все же освоить жаву и с, и только потом лезть в кресты?
#310 #1003747
>>1003705
Наоборот с крестов лучше, потом вопросов не будет возникать почему это строки это не изменяются а каждый раз создаются в памяти, первое что пришло на ум. На самом деле, зная кресты ты на джаву будешь смотреть свысока (все объекты на куче что за пиздец)
#311 #1003748
>>1003698
войд мэйн может стать твоей изюминкой. Вот алёна си++ всегда войд пишет и похуй, хейтерс гона хейт.
#312 #1003750
>>1003509
Чем тебе не нравится дизайн? Всё логично и красиво. Открой руби - говно для петухов.
1003763
#313 #1003763
>>1003750
Меня беспокоит то, что для одной и той же цели в крестах есть много функций. Например тот же std::cout и printf. Не знаю, хорошо это или плохо, но мне кажется, что это все же не очень хорошо.
10038421003861
#314 #1003836
>>1003705
В плюсах много не самых очевидных моментов и возможностей обосраться на ровном месте, готовься к охуенному времяпрепровождению за разгадыванием загадок почему все не так работает и валится.

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

Зато потом на эти знания отлично лягут современные плюсы, move semantics, умные указатели, лямбда-хуямбда. И ты никогда больше не сможешь всерьез воспринимать остальные язычки программирования.
1003837
#315 #1003837
>>1003836

>Советую сразу читать про то, как процесс выглядит в памяти, хип, стек сегменты. Потом про то, как компилятор располагает объекты в памяти, про storage class. Если ты понял указатели, проблем не возникнет.


Для программирования на плюсах всё это знать не нужно. Достаточно следовать стандарту.

От знания железа при изучении плюсов может быть больше вреда, чем пользы.
10038391003861
#316 #1003839
>>1003837
Я не согласен. Все же это некая основа, то, что происходит в действительности на железке.
Без фанатизма, конечно. Низкоуровневые маньяки гипер-оптимизаторы творят страшное, да. Так, ознакомиться хотя бы по диагонали. Тем более, всякие вопросы по размещению объектов любят спрашивать на интервью, или почему плохая идея 10 метров буфера на стеке объявлять.
#317 #1003842
>>1003763
Вот тут надо понимать, что printf -- это функция из стандартной библиотеки C, а cout -- это средство вывода STL, части С++.
10038431003895
#318 #1003843
>>1003842
Даже так, cout это объект в iostream, части C++ Standart Library, а STL другая часть.

И такого задротства в стандарте жопой жуй, поэтому кодить "от стандарта" я не представляю как обучиться.
1003895
#319 #1003846
>>1003557
goto stackoverflow
#320 #1003861
>>1003557
Вот, насри здесь: >>1001445 (OP)
>>1003460
ТРАТИТ РЕГИСТР
>>1003705
Вкатываться нужно с того, что интересно. По большому счёту - похер, с чего, если у тебя встроена защита от синдрома утёнка.
>>1003763
ага а ещё можно написать a+b и b+a и получить одно и то же, что за пиздец
>>1003837

>Достаточно следовать стандарту.


И давно ты осилил и законспектировал 1000 страниц заёбистого английского?
1003867
#321 #1003867
>>1003861

>И давно ты осилил и законспектировал 1000 страниц заёбистого английского?


Ты меня убедил. Следовать стандарту — невозможно. С сегодняшнего дня (точнее, ночи) прекращаю эту бесперспективную деятельность.
1004155
#322 #1003895
>>1003842
>>1003843
В этом то и дело, мне кажется, что смешали две стандартные библиотеки и получили это говно вместо языка.
1004157
#323 #1003905
1003939
#324 #1003939
>>1003905
GC - позор языка.
endianness #325 #1003944
Анон, что скажешь про bigEndian и littleEndian порядки? По сети данные передаются в порядке Network order (bigEndian), а у меня на ноуте процессор от Intel и порядок байтов littleEndian. соответственно. Хотя для точности написал функцию определения порядка.

Так вот что странно. Вот такой код почему-то выдает строку 1D D5 06 84, то есть в порядке bigEndian, хотя должен в littleEndian - 84 06 D5 1D:

uint64_t src = 500500100;
std::cout << "original: " << std::hex << src << std::endl;


Что такое? Ничего не понимаю. Пишу функцию, которая разворачивает байты из littleEndian в bigEndian и теперь вообще запутался где истина.
#326 #1003951
>>1003944
Endianness касается только хранения в памяти. Когда число попадает в регистр процессора, endianness теряет смысл - теперь это просто число. Хочешь увидеть littleEndian - читай число побайтово через указатели.
1003972
#327 #1003953
>>1003944
Ну и? Все правильно выдает 1DD50684 == 500500100, что тебя удивляет?
Хочешь увидеть порядок байт - выводи побайтово. Еще в студии можно память просматривать, если не ошибаюсь Debug->Windows->Memory.
1003972
4 Кб, 562x69
#328 #1003972
>>1003951
>>1003953
Погодите, если в памяти число так и содержится, зачем его перегонять через функцию htonl перед отправкой по сети?
Во время отладки в памяти показывает значение 500500100.
1003980
sage #329 #1003978
В какое унылое УГ скатился тред, хоспаде, в какое УГ!
Ни одного стоящего вопроса. Одни срачи школьников, лабы, WinAPI и конченные дебiли.
10040081004016
#330 #1003980
>>1003972
Если ты одну и ту же программу будешь компилировать для архитектур с разной эндианностью.
1004018
#331 #1004008
>>1003978
Будто раньше было иначе. Только перлоанон что-то там спрашивал.
#332 #1004016
>>1003978
Как будто другие треды на этой доске лучше. Я сюда захожу лишь поржать над неудачниками из ПЕРЕЗВОНИМ-треда.
#333 #1004018
>>1003980
А если в рантайме архитектуры с разной ендианностью?
10040221004157
#334 #1004022
>>1004018
Как ты это себе представляешь?
10040371004157
#335 #1004037
>>1004022
Я про то, если программа скомпилирована на одном компьютере с little endian, а исполняется на архитектурах с big endian. Стоит ли исходя из этого, переворачивать числа перед их отправкой по сети?
#336 #1004047
>>1004037
С с++ ты так не сделаешь. Ты не запустишь код, скомпилированный под одну архитектуру на процессоре с совершенно другой архитектурой.
#337 #1004049
>>1003490
Противоречит идеологии языка. Программист не должен платить за то что не использует
#338 #1004084
И все же, год назад помню тут были годные стихи в оппосте, а теперь только ссылка на пастбин. Печальнг
1004108
#340 #1004108
>>1004084
Ну мне сказали пойти нахуй со своими ситхами, я и пошёл.
97 Кб, 1280x800
#341 #1004131
>>1004108

>ситхами

#342 #1004145
>>1004108
Больше слушай местный мусор.
1004633
#343 #1004155
>>1003867
типа

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


Или ты не шутил?
#344 #1004157
>>1003895
Об обратной совместимости с C ты не слышал, видимо.

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


>и получили это говно вместо языка.


Тебя кто-то заставляет использовать две библиотеки одновременно? Сообщи в полицию, это незаконно.
>>1003944

>Анон, что скажешь про bigEndian и littleEndian порядки?


Я скажу, что ты должен использовать htons/ntols.. и аналоги. Никакая часть стандарта языка не зависит от endianness.

>std::hex


Число в base16, это тебе не байтоёбство.
>>1004018
Тогда это учтено в htons (и аналогах для твоей имплементации).
>>1004022
В некоторых архитектурах меняется.
>>1004037

> если программа скомпилирована на одном компьютере с little endian, а исполняется на архитектурах с big endian.


Если ты так изъбнулся, что создал экзешник (в PE и ELF архитектура описана) так, что ещё и впихнул его не на ту архитектуру - ты еблан.
>>1004108
Возвращаю тебя из ссылки, хоть я и не ссылал тебя.
10041641004633
#345 #1004158
>>1004037
И если ты пишешь на bare metal, и твоя архитектура позволяет менять порядок байт, и ты его не выставил таким, который тебе нужен - ты тоже еблан.
#346 #1004164
>>1004157

>Об обратной совместимости с C ты не слышал, видимо.


Слышал, и мне показалось, что она не нужна.

>Тебя кто-то заставляет использовать две библиотеки одновременно?


Меня сам язык заставляет это делать, ведь даже С++ код тянет за собой кучу сишных зависимостей.
1004167
#347 #1004167
>>1004164

>Меня сам язык заставляет это делать,


Пример в студию.

>ведь даже С++ код тянет за собой кучу сишных зависимостей.


Любой компилируемый язык может тянуть glibc, если его библиотека написана с сишными функциями (и кучу других зависимостей из ОС, в том числе несовместимых с предыдущими версиями ОС). Тебя это вообще не касается.
1004169
#348 #1004169
>>1004167

>Любой компилируемый язык может тянуть glibc, если его библиотека написана с сишными функциями (и кучу других зависимостей из ОС, в том числе несовместимых с предыдущими версиями ОС).


Вот это меня очень сильно и беспокоит.
Я считаю, что каждая функция в компилируемом языке должна быть написана с нуля, не используя никакого сишного говна.
10041751004178
#349 #1004175
>>1004169
Пиши на bare metal на ассемблере, мань. В любом коде, который ты пишешь, будет неявно использован код на C или ассемблерная вставка, компилятор тоже C иногда использует и кучу вставок на ассемблере, правильность которых не доказана. В микрокоде ЦП тоже ошибки находят. А ещё биты в памяти переворачиваются.
Язык у него виноват, видите ли.
#350 #1004178
>>1004169
И ещё ты проверил весь написанный на C++ без использования сишной либы человечеством код, и там нет ни единой ошибки, ни единого reinterpret_cast-а, и стандарт математически доказал верно ведь?
56 Кб, 576x768
#351 #1004199
Сап pr, молю о помощи.
Есть вот такой вот код, который моделирует функцию, заданную с погрешностью: https://pastebin.com/BECUPfrV

Для него необходимо прописать функцию, которая при изменении delta и m будет "выбросы" сглаживать.

Есть теоретическая подводка к тому, что нужно сделать, см. пик номер 1.

По сути нужно запрограммировать 7-й пункт с учетом пункта 5 и 6.

Под это дело получился вот такой вот код: https://pastebin.com/Qm66G1yz

Суть проблемы заключается в том, что проверка (строки с 54 по 77) либо считается неправильно, либо я долбоеб.
Также если вдруг кто подскажет как посчитать alpha=alpha(delta).
10042041005457
#352 #1004204
>>1004199
Вопрос сложный. Фактически ты предлагаешь полностью решить твою лабу.
1004211
#353 #1004211
>>1004204
собственно вопрос только в просчете проверки на отрезке
1004212
#354 #1004212
>>1004211
Проверка рабочая. Разве что по краям могут быть проблемы.
1004215
#355 #1004215
>>1004212
вот в том то и беда, что типа берется отрезок, и его надо поделить на m частей с шагом 2alpha/m
В итоге он почти половину значений дает не найденых. Подсчет ручками говорит что вроде все правильно, но тогда функция должна считаться только по одной точке что-ли
1004222
#356 #1004222
>>1004215
Ну вот если бы ты на ideone полностью рабочую систему скинул, то я бы ещё посидел. А так настраивать это всё не охота.
1004223
#357 #1004223
>>1004222
https://ideone.com/LuoaH5
Да пожалуйста, на плюсах код, который компилится и что выдает
1004224
#358 #1004224
>>1004223
Ну-ка ещё раз, что тут не так. Что ты по идее должен на выходе получить.
1004232
363 Кб, 1920x1080
#359 #1004232
>>1004224
Делаю скрин того что выводит на данный момент с данными
m=10
delta=0.004
delta=0.008
На выходе:
x - это разбиение в зависимости от h
A - это рандомное число
f(x) - это по иксу
f_del2 - это значения функции с погрешностью
Дальше берется отрезок который под пунктом 6, проверяем его на попадание в [0,1], если попадает - то считаем пункт 7 с учетом пункта 6 из пика (который фотка). Если не попадает, то считаем только то, что попадает в [0,1].
1004233
#360 #1004233
>>1004232
Ты меня не понял. Что тебя тут не устраивает?
1004238
53 Кб, 1045x927
#361 #1004238
>>1004233
То что последняя функция T_alpha дает такие ебические значения, которые точно в [0,1] не попадают, то что с пятой итерации уходит по сути в нуль, но тут скорее всего вот тот момент что alpha=alpha(delta), то есть альфа сама по себе зависит от дельты. Как сказал научник, альфа по сути это "дельта в какой-то степени". Что це значит, моя не понимать.

В моем случае 0.0016 - это шаг разбиения вот этого отрезка который проверяем, это h1.

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

Сейчас получается все работает правильно и просто проблема в этой альфе?
10042481005457
#362 #1004241
как сделать это работать

std::shared_ptr<Foo> a;
std::shared_ptr<const Foo
> b;

b = a;
10042441004246
#364 #1004246
>>1004241
блядь, разметка проебалась
http://ideone.com/Ex4WTb
#365 #1004248
>>1004238
Не могу ничем помочь. Слишком далеко вникать надо.
1004261
#368 #1004261
>>1004248
все равно спасибо что попытался
#369 #1004269
>>1002019
Просто пройдись стэком от одной скобки к другой. Закидываешь в стэк если скобка открывающаяся, удаляешь из стека если закрывающаяся. Если стек пустой, останавливаешься. Все, изи епт. Если идешь обратно, то все наоборот. Я бы тебе даже код скинул, но я с телефона.
#370 #1004271
>>1004246
добавить константность к самому указателю и проинициализировать во время создания.
http://ideone.com/faBlu7
#371 #1004419
>>1001370 (OP)
Сап, аноны!
Я подозреваю, что в треде присутствуют работающие господа, поэтому адресую свой вопрос прежде всего им. Есть ли шанс вкатиться к вам после работы веб макакой (фронт и бек), при отсутствии технической вышки?
Обучаемый, могу в ООП, 25 лвл.
10044651004665
#372 #1004465
>>1004419
Почему ты решил на кресты перейти?
1004625
#373 #1004602
И так, вот вопрос: как захэшировать пароль на плюсах так, что бы это работало и под виндой и под линукс? Ебаный в рот, блять! Я уже начинаю думать, что Java - не такое уж и ебаное говно
10046051004626
#374 #1004605
>>1004602
Написать свою хеш-функцию и кешировать, как блять.
Или использовать std::hash — есть имплементацию для всех примитивов и некоторых стандартных контейнеров стд, в том числе строк.
1004607
#375 #1004607
>>1004605
Но мне же не просто два куска байт на совпадение проверить, мне нужно криптостойкое хэширование. Вроде bcrypt и подобных алгоритмов.
1004613
#376 #1004613
>>1004607
Тогда тащить всякие сторонние библиотеки, вроде botan или си-говнеца которое точно везде есть, на О начинается. Ну или использовать любой фреймворк вроде qt/folly.

Привыкни, в крестах из коробки есть только хай в виде UB. И вечно кривых строк.
10046151004619
#377 #1004615
>>1004613

>хай


хуй*
>>1004613

>виде UB


Тут ,
#378 #1004619
>>1004613
Так я про библиотеки и говорю. Но я сумел найти только http://www.openwall.com/crypt/ которая использует всякие #include <sys/time.h>. Даже в сраном C# с этим говном легче. Складывается впечатление, что я - первый человек на земле, который решил захэшировать пароль на C++ с Винды.
1004622
#379 #1004622
>>1004619
Ну значит я тебе и ответил — https://github.com/randombit/botan или любой фреймворк.
1004631
#380 #1004625
>>1004465
Захотел так. А что?
1004632
#382 #1004631
>>1004622
Это выглядит как то, что мне нужно. Даже с излишком, учитывая, что у меня уже подключен OpenSSL. Спасибо, анон!
1004632
#383 #1004632
>>1004625
Ну, по большому счёту ты из свой области (я так понимаю у тебя есть какой-то опыт работы) решил просто взять и съебать в абсолютно другую, где будешь с нуля начинать со всеми вкатывающимися валенками.

Отвечая на первый вопрос — похуй на умение в ООП, это не джава, тут надо уметь костыли городить. Шансы есть всегда.

>>1004631
<3
#384 #1004633
>>1004145
>>1004157
Ох, ну вы меня прям растрогали, я аж пошёл шапку подчистил.

Кстати, покидайте свежих книг (если есть таковые) и просто напишите если есть идеи что ещё можно засунуть в шапку (да да, про перевалив мертвых ссылок я сам знаю).
#385 #1004639
>>1001370 (OP)
Тут ваш сородич за 10ку работать готов. Все плюсовики настолько ущербны?
https://www.youtube.com/watch?v=bn4MTzP0d5Q
жс-бог получаю 80к
10046481004654
#386 #1004648
>>1004639

>бог


>эти жалкие попытки самоутвердиться

#387 #1004654
>>1004639

> 80к


Заработок слабого мидла. С чего ты себя богом называешь?
1004659
#388 #1004659
>>1004654
с того что я джун
1007607
#389 #1004664
Для вкатывающегося в язык имеет ли большое значение версия стандарта? Например,

>Среда Visual C++ соответствует стандарту языка C++ 2003 г. со следующими главными исключениями: двухэтапный поиск по имени, спецификация исключений и экспорт. Кроме того, Visual C++ поддерживает несколько функций C++0x, например лямбда-выражения, ключевое слово auto, static_assert, ссылки на правосторонние значения и внешние шаблоны.


Можно ли будет потом перекатиться в более свежие версии стандарта без слишком сильной анальной боли? И как вообще вкатываться в них, брать и просто и без задней мысли читать спецификации?
#390 #1004665
>>1004419
Если тебя прут всякие треды, всякие std::enable_if, то прошу пожаловать к шалашу
1004674
#391 #1004674
>>1004665

>std::enable_if


>template <class T> typename std::enable_if<std::is_integral<T>::value, bool>::type s_odd (T i) {return bool(i%2);}


а в нормальном языке просто

>bool someHuita(T)(T i) if(isIntegral!T) {return I % 2; }

10047891004926
#392 #1004785
Где есть годные мануалы по написанию читов на игры?
1004787
#393 #1004787
>>1004785
В Интернете.
sage #394 #1004789
>>1004674

>нормальный язык


>D


Плохая попытка, Dаун
1004855
#395 #1004809
Байтоёбы, помогите. Нужно взять двухбайтное слово, разбить его на тетрады и поменять местами 2 и 3 тетрады, не трогая 1 и 4. Хуй знает, как это сделать. Есть прога, которая меняет местами 1 и 4 тетрады, не трогая 2 и 3. Можно её как-то переделать?
https://pastebin.com/LUNZP5Sw
10048101004812
#396 #1004810
>>1004809

>слово


число*
#397 #1004812
>>1004809
Разбиваешь слово на тетрады в отдельных переменных оператором И, собираешь как надо операторами ИЛИ и сдвига.
1004813
#398 #1004813
>>1004812
Я просто думаю, что незачем писать что-то заново, когда можно пару строчек исправить, только что конкретно исправить? Я в байтоёбстве не силен, для меня всё это непонятно.
1004827
#399 #1004827
>>1004813
Значит ты слишком ленивый для программирования. Не мучай себя и других, найди занятие по душе.
#400 #1004855
>>1004789

>эта жопаболь

#401 #1004869
Возникла необходимость написать примитивное окно на шинапи. В функцию обработки сообщений окна неплохо бы перекинуть указатель на класс окна, но std::bind сосет, msdn ловит залупу жопой(в глаза ебусь). Подскажите как передать в __stdcall функцию неявно параметр.
10048731005225
#402 #1004871
Анончик, который вчера посоветовал мне 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, но ничего не помогло.
1004923
#403 #1004873
>>1004869
Использовать си, а не приплюснутый си. Какие, нахуй, bind, ты ебанулся, крестух?
1004874
#404 #1004874
>>1004873
А что ты делаешь в крестотреде? Я помню тут был чистенько-си тредик специально для таких как ты.
Я сюда не язык выбирать пришел, а решить проблему.
1004923
#405 #1004923
>>1004874
Здесь не решают спермопроблемы.

К >>1004871 это тоже относится.

Выйдите оба из треда.
1004927
#406 #1004926
>>1004674

>>template <class T> typename std::enable_if<std::is_integral<T>::value, bool>::type s_odd (T i) {return bool(i%2);}


template <class T> std::enable_if_t<std::is_integral_v<T>, bool> s_odd (T i) {return bool(i%2);}
1004944
#407 #1004927
>>1004923
У тебя какие-то проблемы?
1004928
#408 #1004928
>>1004927
Нет. У меня всё собирается.
#409 #1004937
Где бесплатно взять Qt Creator ?
1004945
46 Кб, 604x447
#410 #1004938
Есть какая-то книга по алгоритмам и структурам данных, которые уже реализованы в с++? Т. е. книга, в которой объяснялось бы, как пользоваться вот этим контейнером и для чего он нужен, как пользоваться этим алгоритмом, в каких задачах он полезен.
10049391004940
129 Кб, 858x664
#411 #1004939
>>1004938
Или видео курс какой-то.
#412 #1004940
>>1004938
Джосаттис C++. Стандартная библиотека.
Очень годно.
1004981
#413 #1004944
>>1004926
Всё равно очень зашумленное говнище по сравнению с D.
#414 #1004945
>>1004937
На их сайте.
1004949
#415 #1004949
>>1004945
Там триал, а я спрашивал про бесплатно.
1004953
#417 #1004954
>>1004953
Благодарю!
#418 #1004981
>>1004940
спасибо, посмотрю
#419 #1004985
что можно интересного написать на крестах? в принципе, на джуна более-менее подхожу, но все же, надо гитхаб хорошими проектами заполнять, а идей как обычно нет :с
1004992
#420 #1004992
>>1004985
Напиши чятик красивый и бота для него.
125 Кб, 1261x421
#421 #1005082
Объясните долбоебу, что тут написано.
Я не могу понять от чего берется остаток от деления.
#422 #1005083
где искать вакансии джуна? Алсо, как я понимаю, чего-то типо стажировки или неполной занятости почти нет сужу по hh, там в сумме таких вакансий штуки 3
1005125
#423 #1005085
>>1005082
смотри, в тот же unsigned char пишешь 300, он запишет 44, так как 300 % 256 == 44
вроде понятно описано, хз
1005089
#424 #1005087
>>1005082
От значения, которое ты хочешь присвоить.
Так, скажем,
unsigned char a = 323;
в итоге будет содержать число 67.
1005089
86 Кб, 640x134
#425 #1005088
>>1005082
Вот так написано в оригинале.
1005112
#426 #1005089
>>1005085
>>1005087
Ну это хорошо, но ведь -1 % 256 не равен 255?
1005092
#427 #1005092
>>1005089
почему же? есть примитивное правило - прибавляй 256 до наименьшего положительного, оно и будет искомым например, -1 + 256 = 255, -267 + 256*2 = 245
1005097
13 Кб, 1000x456
13 Кб, 910x379
#428 #1005097
>>1005092
Спасибо, не знал о таком правиле.
Кстати заметил, что почему-то кресты не умеют в правильное взятие остатка или я дебил?, а питон умеет.
10051081005140
#429 #1005108
>>1005097
просто с отрицательным берет -258 выведет -2 соответственно
10051111005117
#430 #1005111
>>1005108
Как-то исправить можно (кроме как прибавлять 256 перед любым действием)? Весьма неудобная фича.
1005116
#431 #1005112
>>1005082
>>1005088
Хуёво написано. Остаток от деления отрицательного в C++ — implementation defined. А вот результат присвоения отрицательного числа беззнаковому — определён однозначно.
#432 #1005116
>>1005111
я не особо эксперт в этом, но первое, что приходит на ум - либо вычитать полученное из модуля типо int a = -1 % 256; if (a<0) a=256+a;, либо кастить к чему-то беззнаковому
1005118
#433 #1005117
>>1005108
Так а что правильней и в чем разница?
Прости, я правда немного глуповат.
1005119
#434 #1005118
>>1005116
не вычитать, а прибавлять, оно же отрицательное. нутыпонял
#435 #1005119
>>1005117
из математики - то, что берется по модулю, должно быть от 0 включительно до модуля не включительно в данном случае - от 0 до 255
1005155
#436 #1005125
>>1005083
бамп же :с
#437 #1005140
>>1005097
Знак результата совпадает со знаком первого операнда.
1005142
#438 #1005142
>>1005140
Поздравляю вас, господин соврамши.

> If both operands are nonnegative then the remainder is nonnegative; if not, the sign of the remainder is implementation-defined.

1005155
#439 #1005155
>>1005142
Ах да, эти implemetation defined отличия.
>>1005119
С какого хуя? В теории чисел просто смотрят класс вычетов по модулю, а какой там знак - похуй.
1005156
#440 #1005156
>>1005155
хз, если класс вычетов, то и будет только положительное
#441 #1005200
Поясните, за указатели, а именно нахуя может понадобиться тройной указатель для матрицы
1005225
#442 #1005202
>>1001370 (OP)
Как добавить библиотеку Google Test к VS? Я пробовал чере NuGet, кучу ошибок.
1005591
#443 #1005210
Как уменьшить количество знаков после запятой?
У меня float f = 5.23762, а я хочу f = 5.24.
Только не вывести в таком формате, а именно сохранить. printf не нужен
#444 #1005225
>>1004869
Клуб анонимных алкоголиков: >>1001445 (OP)
>>1005200
Динамический куб. Никогда не понимал, честно говоря, этих изъёбств. Почему нельзя добавить в STL линеаризацию на ОДНОМ указателе с помощью оператора[]?
>>1005210
Строго говоря: никак, двоичное представление не может гарантированно точно выразить десятичную дробь. Можешь попробовать:
float precisionMulti=100; //для твоего примера
val=std:round(val*precisionMulti)/precisionMulti;;
Можешь потерять несколько верхних двоичных разрядов у очень больших чисел. Если изъебнуться, можно и это побороть.
1005607
#445 #1005226

>setbasechanges 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.


Ах ты, сука, иди сюда, мать твою!
#446 #1005230
>>1005210
Конвертируй в строку, там отрезай несколько символов, и обратно во float.
#447 #1005281
>>1005210
Вывести в строку, sprintf
#448 #1005339
Когда там уже 17-й стандарт выпустят?
В компиляторах уже почти всё реализовали.
1005370
#449 #1005344
Господа, стыдно сказать, но у меня лаба горит а еще жопа, но это не так важно., поэтому вынужден попросить вас о помощи:
Написал класс, но не могу перегрузить операторы ">>" и "+". Не подскажете, что я делаю не так? Заранее благодарен
Код здесь:
http://ideone.com/aUP0U4
10053451005357
#450 #1005345
>>1005344
У тебя оператор "+" возвращает объект класса "land", значит, внутри надо вызывать "new".
Да и внутри ">>" наверное тоже.
10053501005357
#451 #1005350
>>1005345
Не исключено, но оператор сложения у меня даже не компилится, выдавая ошибку "error: 'land operator+(int)' must have an argument of class or enumerated type|"
#452 #1005357
>>1005345
>>1005344
Вопрос закрыт, правильный оператор выглядит как:
land operator + (land l, int up){
l.editPopulation(l.GetPopulation() + up);
return l;
}
Спасибо за внимание
#453 #1005365
>>1005210
Используй decimal для хранения данных (только в стандарте его нет, лел, ну и пиздос, азазаз). Если хочешь выводить в поток есть такой манипулятор с названием std::setprecision, который указывает, сколько знаков после запятой должно выводиться для числа с плавающей запятой.
Ну и там, уже очевидно:

>> std::string s;


>> std::stringstream dummy(s, std::ios::in);


>> dummy << std::setprecision(2) << 2.3345f;


>> // заебися!

#454 #1005370
>>1005339
Стандарт все еще без порядка следования байтов в STL, просто охуительно. Библиотека нищенок...
Ну хотя бы constexpr if породили, спасибо, теперь будет меньше мозгоебства (хотя стандарт начнуть применять и того позже, а если вспомнить про такую замечательную штуку, как CUDA, так года через 2 только).
#455 #1005382
как вообще и где кроме очевидного hh искать вакансии? Алсо, это нормально, что джунов на неполный день почти нет?дс
1005410
#456 #1005410
>>1005382
А ты думал, кому ты нахуй нужен, нихуя не умеющий, да еще и не на полный день?
1005423
#457 #1005423
>>1005410
Ну охуеть теперь, и как вкатываться вообще? Или всем теперь в веб-макакинг идти?
1005429
#458 #1005429
>>1005423
Говорят, гей-проституция сейчас на подъёме
10054331005769
#459 #1005433
>>1005429
Алсо, грузчики и разносчики пиццы наравне с кассирами в маке всегда нужны.
1005435
54 Кб, 320x451
#460 #1005435
>>1005433

>кассирами в маке всегда нужны

1005470
248 Кб, 1920x1080
#461 #1005457
>>1004238
>>1004199
графиковый кун снова на связи.
Заставил я это дерьмо работать, однако появилась другая проблема: он считает и суммирует все как нужно, но, сука, неправильно.
В большом цикле - проверка на попадание разделения отрезка на x-alpha и x+alpha. В цикле же T_alpha должна считать сумму смоделированной функции в каждом шаге разбиения маленького отрезка. Он это вроде бы делает, но значения должен меньше чем f_del2, но и не отрицательные. Может я где-то проебался глазами и не тот индекс поставил?
Анон, выручай!
https://ideone.com/k5vfOF - проект на ideone, картинка с новыми данными в пикрелейтед
10054651005696
99 Кб, 600x315
#462 #1005465
>>1005457

>pow(1, g)

1005466
#463 #1005466
>>1005465
изначально идет pow(1,i), но так как в этом куске считаем по "малому разбиению", то счетчик по g идет, и поэтому по g и считать
1005471
#464 #1005470
>>1005435
Во-первых, дохуя народу с налом а не кредитками.
Во-вторых, многие предпочитают попиздеть "а чо посоветуете?".
В-третьих, еду всё равно готовят и раздают человеки.
#465 #1005471
>>1005466

>pow(1, g)


>pow(1, g)


>pow(1, g)


>pow(1, g)


http://en.cppreference.com/w/cpp/numeric/math/pow
1005472
#466 #1005472
>>1005471
ты можешь пояснить что тебе не нравится, если pow (1, i) нормально, а pow (1, g) нет?
1005473
#467 #1005473
>>1005472
Ты возводишь 1 в какую-то там степень.
1005474
300 Кб, 1920x1080
#468 #1005474
>>1005473
Да, потому что это моделирование функции с погрешностью. В каждом шаге малого разбиения.
В частности, вот тебе пожалуйста формула даже моделирования. Ниже, где этой единицы нет, искусственно возмущаем с помощью N
10054751005477
#469 #1005475
>>1005474
И что? Ты как не возводи 1 в степень, у тебя только 1 в итоге будет.
#470 #1005477
>>1005474
Но у тебя -1 в степени, а не 1. Это существенно меняет дело.
Мимопроходил
1005485
#471 #1005485
>>1005477
заменил
при тех же входных данных не меняется ровно ничего
1005552
#472 #1005552
>>1005485
Если ты возводишь -1 в целочисленную степень (а по-другому и быть не может), тогда тебе проще проверить четен ли индекс и уже подобрать множитель. И если ты хотя бы чуточку знал, что из себя представляет float (IEEE 754), и как работает процессор, когда возводит число в степень, ты бы такой хуйней заниматься не стал (вот, к примеру https://stackoverflow.com/questions/4638473/how-to-powreal-real-in-x86)
10055531005654
#473 #1005553
>>1005552
Подсказка проверки четности, самое быстрое:

>> bool isEven(const int x) { return x & 1 == 0; }

#474 #1005591
>>1005202

>NuGet


Понос спидозной шлюхи
Пробуй либо vcpkg, либо руками
292 Кб, 1079x1427
#475 #1005607
>>1005225
А куда дальше плясать с этим кубом?
Допустим нашел я его в коде создания поля для сапера, нахер он там упал?
10056181005832
#476 #1005618
>>1005607
Лол, отправить Random под опеку Garbage Collector'а, это уровень, да...
1005808
#477 #1005654
>>1005552
в том то и дело, что возвожу не в целую степень, а в i. Там значения все, кроме последнего, меньше 1
#478 #1005696
>>1005457
За такой код надо палкой пиздить. Во всем этом говне даже разбираться не хочется. При беглом просмотре: отучись использовать директиву using, там где надо использовать стандартную функцию pow, лучше писать std::pow. Также прочитай про функцию rand (так, как ты написал, она всегда будет выдавать значение 41). Больше нет сил читать это.
#479 #1005734
int main, цаплеёбы.

Столкнулся с какой-то хуитой.
Решил подучить цаплю и набросал проект динамической либы в кодоблоках, прожеватор — mingw-w64, примерно gcc5, что ли, режим c++14 и всё такое.
Так вот, надрочил пару классов и всё вроде хорошо, но при попытке использовать один из классов в программке почему-то получаю ошибку

>undefined reference to _imp___ZN7Либа7КлассD1Ev'


//декораторы могут отличаться

, указывающую на конструктор + ещё примерно два похожих срабатывания туда же. При этом ошибка исчезает, если реализацию деструктора (там delete в цикле + очистка списка) перенести из исходников в заголовочный файл.
Схожу с ума, кароч. Логика в заголовочном файле — всё ок. Переношу в исходники — либа собирается, но хостовая прога не хочет.
#480 #1005769
>>1005429
спасибо за охуительный юмор. Видимо, контингент данного треда полон таких. Алсо, мне даже похуй на оплату, опыт первоочереден. Но нет, тебе надо свои охуительные шутейки вставить
36 Кб, 1699x484
43 Кб, 1613x315
#481 #1005782
Как определяется размер данных на http-серверах, которые не дают ни Content-Length, ни Transfer-Encoding: Chuncked?
Фейсбук, к примеру.
1005786
#482 #1005786
>>1005734
Либа линкуется криво, декорация хромает. Я не спец по гцц, больше сказать не могу.
>>1005782
Уходи.
1005814
#483 #1005787
>>1005734
А теперь убери весь свой словесный понос, и перепиши пост нормально.
#484 #1005792
>>1005734

extern "C" используешь?
1005795
#485 #1005795
>>1005792

Только в корневом заголовочнике у либы.

https://pastebin.com/Zn8Sp0FB
1005821
#486 #1005808
>>1005618
Извини, если обидел, но код не мой, а разобраться что тут происходит надо мне, я плюсы эти третий день вижу
1005811
#487 #1005811
>>1005808
Ну я понял, что код не твой. Я просто поржал над тем, как человек демонстрирует свои скиллы (где не надо, естественно).
#488 #1005814
>>1005786
Да ну плз, я не веб-девелопер, мне бота написать..
1005819
#489 #1005819
>>1005814
Не по адресу даже.
#490 #1005821
>>1005795
Прям по ману MinGW, один в один.
И declspec на всех экспортируемых классах у тебя стоит?
1005872
#491 #1005832
>>1005607

>Допустим нашел я его в коде создания поля для сапера, нахер он там упал?


Двумерный массив (двё звёздочки) байтоёбства (ещё одна, и того три), так тоже бывает. Иногда людям принципиально надо не объектами манипулировать, а ссылками на них.
1006089
#492 #1005855
Господа, как пофиксить данную ошибку? "Current compiler 'Intel C/C++ Compiler' doesn't have correctly defined debugger!". Linux mint 18.1, Code::blocks 13.12. Не могу никак разобраться с его настройкой, ЧЯДНТ? Ответ: "программируешь" не принимается
10058591005862
#493 #1005859
>>1005855
Смени говнокомпилятор, говноиде и говноось.
1005860
#494 #1005860
>>1005859
на что сменить компилятор? Ось сменить проблемно, пишу на калькуляторе с умершей видеокартой
1005877
#495 #1005862
>>1005855
А переводчик использовать уже запретили, да?!
У тебя отладчика нету для Intel C Compiler, маня. Скорее всего, gdb, подойдет, но тут хуй знает, никогда с интелом дела не имел.
1005874
#496 #1005872
>>1005821
Только на заголовках.

Да, это действительно проблема линкера.
Починил проблему линковкой libmylib.a (указал до неё путь и добавил -lmylib в параметры), теперь вроде всё норм.
Спасибо, ананас.
1006076
#497 #1005874
>>1005862
Вот только GDB у меня и стоит, проверил в настройках. Всё равно не может найти его путь и ипользовать. Нихуя не понимаю, сорре, всю жизнь работал в VS как обезьяна. Таки откуда взять эту срань? Ошибка не исчезает и если меняешь Intel на обычный GNU
10058791005881
#498 #1005877
>>1005860
поставь какой-нибудь qtcreator и g++ там все изкоробки работает
10058811005886
#499 #1005879
>>1005874

>Ошибка не исчезает и если меняешь Intel на обычный GNU


Значит дело не в том, что компилятор от Intel, как это пытаются местные маньки выставить. Вообще формат отладочной инфы давно стандартизирован и ICC выдаёт инфу в нём.
1005886
#500 #1005881
>>1005874
CodeBlocks не IDE потому что. Поставь QtCreator как вот этот >>1005877 господин говорит и не еби мозги ни себе ни другим, если не смог разобраться.
Если не дурачок, то можешь прямо с консоли отлаживать, GDB прекрасно справляется даже с самыми изощренными запросами.
Или поставь себе CLion и, как в случае с QtCreator, забудешь о проблемах с отладкой (зато будут другие проблемы).
#501 #1005886
>>1005881
>>1005879
>>1005877
Хорошо, спасибо!
#502 #1005893
>>1005881

>CodeBlocks не IDE



Вполне даже IDE и без анальной зависимости от господина. Хотя глюки и надобность крутить настройки вполне могут заебать привыкших к последней VS.

А ведь есть ещё CodeLite, Anjuta, KDevelop.

Правда, хипсторам не объяснишь, у них или кути головного мозга или джетбрэйнсопроктит.
1005899
#503 #1005899
>>1005893
qt creator же классная вещь
10059021005907
147 Кб, 1024x768
#504 #1005902
>>1005899
Только если у тебя кутизависимость.
10059081005909
#505 #1005907
>>1005899
нет
#506 #1005908
>>1005902
Нихуя, QtCreator - свободная от Qt IDE.
#507 #1005909
>>1005902
даже если и нет. Хотя, может все от того, что я еле дотягиваю до джуна
алсо, какие есть нормальные ide-подобия? clion? нет, спасибо. Kdevelop разве что
1005915
#508 #1005915
>>1005909

>> Kdevelop


Ты с гор слез что ли?!
Если так, то под линуксом ни одной идеально рабочей IDE нет, вот уж извините, но QtCreator не дотягивает до полноценной IDE, потому что многих жизненно необходимых фич, типо рефакторинга (не просто переименования, а изменения объявления и т.д.) в ней нет. CLion сильно глючный и очень тормозной, очень... При проекте 400kloc и примерно 20 подпроектами он лагает люто и притом баги валятся с незавидной постоянностью.

Ну, если ты собираешься пилить что-то по мелочи, то и QtCreator'а тебе будет за глаза.
10059251005928
#509 #1005925
>>1005915

>CLion сильно глючный и очень тормозной, очень... При проекте 400kloc и примерно 20 подпроектами он лагает люто и притом баги валятся с незавидной постоянностью.



Прямо как решарпер в моём цесаркином студенчестве. Тогда писал на цесарке и хуел с того, как у коллег тупит это малополезное поделие.

Жетбрэйнс те ещё индусы.
1005926
#510 #1005926
>>1005925

>Прямо как решарпер в моём цесаркином студенчестве. Тогда писал на цесарке и хуел с того, как у коллег тупит это малополезное поделие.



Решарпер и сейчас пиздец как тормозит всю студию. Оттого то я и в одно время перелез на Visual Assist X, который тоже вполне неплох но гораздо быстрее и обладает более гибкими сниппетами (у решарпера они просто уебищные). Ну, как говорится, managed code не тормозит, да ведь?!
1005932
#511 #1005928
>>1005915
Вывод - пользоваться creator-ом и радоваться? Или есть что-то интересное помимо него?
1005931
#512 #1005931
>>1005928
У меня под линупсом CLion. Под виндой и студия и CLion (да, я ебанат, но редактор IntelliJ мне очень нравится своим функционалом, хотя он и глючный)
#513 #1005932
>>1005926
Цесарка нипричом, это джетбрэйнс абизяны.
Нативный код у них не лучше управляемого.
1005935
#514 #1005935
>>1005932
Ну если глянуть на стек вызовов, то там да, он в такую кашу раскручивается. Кто-то явно переел паттернов, но, я как понимаю, это все в угоду гибкости и масштабируемости IDE сделано, поэтому такое месиво.
Самая забава в том, что в некоторые моменты CLion начинает сжирать по 2.5 гига памяти, и потом потребление падает до 600 мегабайт.
1005953
#515 #1005953
>>1005935
Патерномакаки — бич мира разработки.
Как из «я придумал такой подход и для конкретных случаев иногда он неплох» можно было вывести «любой ценой реализовать как можно больше паттернов не вникая в суть» — не понимаю, но джавистам за заражение нормальных людей спасибо.
#516 #1005957
>>1005881
CodeBlocks отличный вариант для ньюфага потому что там очень крутые галочки для компилера и линкера. Я с 2011 года пишу на С++ и многих флагов для GCC не знаю, а там всё можно мышкой потыкать. В QtCreator ненужный qmake либо кривая поддержка CMake (работать можно, но не ньюфагу разбираться с тонкостями костыльной поддержки CMake проектов).
1005974
#517 #1005974
>>1005957
Пффф, ни на кодоблоках, ни на кодолайте, ни на девсиси не пришлось ни разу возиться с *make.
Вообще ни разу.
Хотя девсиси может выбрасывать там ошибки, но это обычно к месту даже.
1006007
8 Кб, 585x248
#518 #1006007
>>1005974
CMake в любом случае понадобится чтобы проект можно было распространять и собирать где угодно, а также открывать в любой IDE, он из коробки может транслироваться в разные файлы проектов, а если чего нет то можно найти в интернете.
#519 #1006076
>>1005872
Типичная ошибка новичка.
Хотя и странно, что файлы определений для библиотеки имеют расширение .a, а не .lib.
1006093
#520 #1006089
>>1005832
Спасибо, а как мне найти в коде, где он обращается к ссылкам, если я больше нигде в когда не нашел трех звездочек?
#521 #1006093
>>1006076
GCC же, а не MSVC.
#525 #1007607
>>1004659
ахахахахаха, ты аж джун, ох лол, вот петуч. ну ты дядя.
мимо машинный кодер-стажёр 10034ш39498292357287598г89ц4не34н38954г8 кккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккк в атомную единицу времени.
Тред утонул или удален.
Это копия, сохраненная 28 июня 2017 года.

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

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