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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
sage #2 #1028036
Первый.
#3 #1028038
Будете перекатывать сл. раз - обязательно напишите про то, что братья тех, кто:
- спрашивает про ВинАПИ
- говорит "не работает" без копирования сообщения об ошибке
- спрашивает "как сделать Х", где Х никак к плюсам не относится
сдохнут от СПИДа.
sage #4 #1028042
>>1028038
С этим полностью согласен. Ещё было бы хорошо, чтобы им выдавали бан на годик.
sage #5 #1028044
>>1028038

> говорит "не работает" без копирования сообщения об ошибке


А если не работает не потому, что не компилируется?
#6 #1028047
>>1028044
gcc a.c 2> /dev/null
Остальное для слабаков, да?
#7 #1028051
>>1028044
Ой, тьфу ты, сорян.
Почти все ОС выводят хоть какое-то сообщение.
#8 #1028052
>>1028044
Некоторые даже не пишут, где у них проблема - в рантайме, или в компайлтайме.
23 Кб, 723x655
# OP #9 #1028056
Объясните дебилу, почему этот код выводит 'f', когда по идее должен вывести адрес?
#10 #1028064
>>1028056
Потому что char ЗВЁЗДОЧКА - это строки. Тебе ещё повезло, что он выводит f - может вывести все ненулевые символы, которые в стеке после f.
Если хочешь адрес, приведи к void ЗВЁЗДОЧКА.
sage #11 #1028065
>>1028056
Толсто.
#12 #1028091
>>1028082
Из крестов всегда можно перекатиться в веб за полгода, особенно если уже знаешь алгоритмы и структуры данных.
#13 #1028123
>>1028064
>>1028056
На самом деле потому, что у std::cout оператор << перегружен для поинтера, и автоматически разыменовывает и выводит данные.
145 Кб, 1080x1920
# OP #14 #1028140
>>1028123
Тогда почему здесь не разыменовался?
#15 #1028147
>>1028140
Потому что operator << ostream& o не определен для int*, инстанцируется специализация шаблона для указателей (или просто T, хуй знает, никогда не интересовался что там внутри).
sage #16 #1028198
>>1028056
>>1028140
В первом случае вызывается второй оператор отюсдова http://en.cppreference.com/w/cpp/io/basic_ostream/operator_ltlt2
Во втором — седьмой отсюдова http://en.cppreference.com/w/cpp/io/basic_ostream/operator_ltlt
#17 #1028225
http://boost.2283326.n4.nabble.com/CMake-Announcement-from-Boost-Steering-Committee-tt4696934.html
Поздравляю, ананасы. Не прошло и 20 лет как экосистема плюсов начала объединяться. Наконец-то буст можно будет собирать и подключать без ебли даже на винде.
#18 #1028297
Какую автоматическую систему сборки лучше удобнее использовать для проекта на крестах? Есть прожект в кодеблоксе, но я его хочу сделать удобным для сборки на других пк.
#19 #1028298
sage #20 #1028305
>>1028225
Уважаемым спермогосподам хозяева подарили облегчалку анальных болей. Мои искренние поздравления.
#21 #1028315
>>1028305
У спермогоспод есть VS с отличным отладчиком, а что есть у тебя?
#22 #1028365
>>1028315
У меня майки в cmake устаревший findboost положили, в результате он не правильные постфиксы пытался найти.
Было это пару месяцев назад VS2017, boost 1_64

Такое себе быть спермогосподином.
sage #23 #1028387
>>1028315

>У спермогоспод есть VS с отличным отладчиком, а что есть у тебя?


Анальная девственность.
#24 #1028394
>>1028123
Дело не в "перегрузке для поинтера", а в перегрузке для C-строк.
# OP #25 #1028395
>>1028387
Я бы продал анальную девственность за хорошие инструменты.
#26 #1028398
В каком стандарте появились листы через фигурные { } скобки?
# OP #27 #1028400
>>1028398
Еще в С95 (AMD1) появились
#28 #1028402
>>1028398
Сам я знаю только часть языка по стандарту 2003 года, но сейчас надо понять что делает говнокод написанный по новому стандарту.
#29 #1028405
>>1028315
А у нас есть прекрасный Clion, в котором есть все что есть в студии кроме профайлера, только еще с нормальным редактором текста, и без прибитых к полу деревянных игрушек.
# OP #30 #1028407
>>1028405

>Clion


Он же тормозит как дрисня
sage #31 #1028409
>>1028407
Дрисня как раз быстрая.
#32 #1028419
>>1028407
ШпермоСтудия как раз куда тормознее.
#33 #1028421
>>1028419

>ШпермоСтудия как раз куда тормознее.


Последние версии стали быстрые на самом деле нет .
#34 #1028422
>>1028421
Последние 7 лет штудия от релиза к релизу только деградировала по производительности. Ладно, 7 это я, к конечно загнул, но до 17-й это совсем кромешный пиздец был.
#35 #1028424
>>1028422
Хуй знает, у меня VS работает достаточно быстро на моем не очень мощном ноутбуке с HDD.
#36 #1028427
>>1028400
initializer_list и aggregate initialization - разные вещи.
>>1028398
В 11, вроде.
#37 #1028428

>2017


>сидеть на VS вместо Сlion


не секрет, что диды плохо адаптируются к новым вещам. перемены вызывают у них дискомфорт и страх
#38 #1028429
>>1028424

> не очень мощном ноутбуке с HDD.


Твой HDD влияет только время стартапа. Когда начинаются свопы (или просто 100% нагрузка на цпу анализатором кода) никакой SSD не спасает.
#39 #1028432
>>1028429
У меня i7-3630QM и все летает
#40 #1028433
>>1028432
Хэловорды где угодно летают.
#41 #1028435
>>1028433

>Хэловорды где угодно летают.


Как раз в Clion не летают.
Там редактор кода очень сильно лагает на моей HD4000
#42 #1028437
>>1028435

>редактор кода очень сильно лагает на моей HD4000


совсем ебанулся?
#43 #1028438
>>1028437
Что не так?
Выделение кода сильно лагает, под мою видеокарту плохо оптимизировали
#44 #1028440
>>1028438
Чото я в голосину орнул.
мимо-сижу-на-встроенных-видюхах-5-лет-и-нихуя-не-лагает
#45 #1028447
>>1028440
Она просто старая у меня да еще и мобильная
#46 #1028450
Java не тормозит. Теперь и в крестотреде! Не переключайтесь!
#47 #1028455
>>1028438
Я даже не хочу знать, тролль ты или нет. Просто съебись.
#48 #1028475
На чистых сях (gcc с пакета MinGW) собирается без проблем с двумя хэдерами. Почему на плюсах необходимо не инклюдить gl.h? В ином случае пишет что некоторые функции не определены.
#49 #1028477
>>1028475
Я всё понял, ребята. Я еблан и заинклудил то, чего в примере не было (он не из книги).
#50 #1028480
Насколько сложно крестовику перекатиться забугор?
Или вебмакакой легче?
#51 #1028495
>>1028480
Нам-то откуда знать?
#52 #1028501
>>1028495
Может кто пытался перекатываться/перекатился
#53 #1028504
>>1028501
не, тут только борщи сидят, почитай тред
#54 #1028505
>>1028225
ты само обсуждение читал, лупоглазый? во-первых, там только поднимается вопрос, как к концу года сделать план по переходу на cmake, а не перейти на него. во-вторых, сообщество, скорее всего, пошлёт тот комитет найух.
#55 #1028540
>>1028505
Сообщество стопроцентно против не будет — сплошные плюсы же.
#56 #1028561
>>1028298
Можешь годных гайдов подсказать?
#57 #1028572
>>1028225

>буст


нахуй он нужен?
#58 #1028585
>>1028572
Нахуй ты нужен?
Наверно потому что это главный плюсовый фреймворк.
#59 #1028588
>>1028585
Это не фреймворк, это большая коллекция разнообразных библиотек.
#60 #1028600
>>1028588
Индус блять, куте тоже куча разных библиотек, иии?
#61 #1028615
>>1028600
куте виджет фремворк, а буст сборище какийто нинужной хуеты. че правда смузихлебы для тогоже хэша или ололосортировки прикручивают целый буст?
#62 #1028679
>>1028600
Куты - большая коллекция разных библиотек, использование которых предусматривает использование остальных библиотек, поэтому Куты - фреймворк.
#63 #1028681
>>1028615
Куте виджет фреймворк. Ясно.
Борщехлёб ничего в жизни не писал на крестах и спрашивает зачем языку у которого в стандартной библиотеке есть хуй с кривыми строками нужен буст.
#64 #1028682
>>1028679
В бусте всю его дженерик часть тоже легко использовать вместе.
Ладно, скажем так — буст это то, какой должна быть стандартная библиотека у плюсов, чтобы на них можно было написать что-то большее чем сортировочку.
sage #65 #1028683
Ололо. Индусы не знают, как отличить фреймворк от не-фреймворка.
#66 #1028688
>>1028683

>борщехлеб порвался

sage #67 #1028689
>>1028688
Так зашивайся скорее.
#68 #1028693
>>1028689

>жяваиндус так горит что не может сагу отцепить)

#69 #1028696
>>1028428
Сидеть на джавапараше, которая не может распарсить сложные тимплиты вместо богоподобной студии?
#70 #1028698
>>1028696
Студия, которая как в прошлом треде уже доказали, не поддерживает до конца 98-й стандарт, видимо, распарит их.
#71 #1028703
>>1028698
Не поддерживает какую-то юзлесс хуиту никем не используемую, да?
sage #72 #1028711
>>1028703

>никем не используемую


Ололо. Поэтому у них исправление two-phase name lookup стоит на втором месте по важности после поддержки expressions SFINAE (которое уже запилили).
https://www.reddit.com/r/cpp/comments/3g3aa1/what_do_you_want_to_see_in_vs_2015_update_1/ctukcl4/
https://blogs.msdn.microsoft.com/vcblog/2016/06/07/expression-sfinae-improvements-in-vs-2015-update-3/
sage #73 #1028714
>>1028711
Ещё про поломанный препроцессор и two-phase lookup https://blog.jetbrains.com/rscpp/microsoft-cpp-compiler-bugs-ambiguities/
#74 #1028720
>>1028711
Скорее, все на это клали хуй, и все без этого и так работает без проблем, включая трехэтажное говно из буста
#75 #1028742
>>1028703
и после того как они в бинарники телеметрию свою записывали ты все еще пользуешься разработками от MS? Удивительно сколько человек говна готов сожрать лишь бы оставаться в своей комфортной коробочке.
#76 #1028759
>>1028711
>>1028714
Почему эти дурики не могут сделать переключатель диалектов, чтобы таки можно было включить стандартное поведение? У ГЦЦ есть же диалект gnu++, почему МС так не может?
#77 #1028762
>>1028742
ты читал, что там была за телеметрия вообще? Или увидел слово и сразу истерить? Так вот, это было сделано только для эвентвьювера виндового, и все.

>>1028759
есть такой свитч в 17ой версии.
#78 #1028764
>>1028762

>Так вот, это было сделано...


мне до пизды для чего это было сделано:) очередная попытка damage control от индусятников
sage #79 #1028782
>>1028720
Тебе-то, тупому борщехлёбу с дивана, конечно лучше всех знать, что буст работает без проблем просто так, а не потому, что определяет для MSVC макру BOOST_NO_TWO_PHASE_NAME_LOOKUP и обходит костылями поведение этого недокомпилятора.

>>1028759

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


Потому что написали убогий парсер 30 лет назад и пока бабки текли рекой и никто не задавал много вопросов "почему соответствующий стандарту код ведёт себя у вас как-то странно", его не трогали.
sage #80 #1028786
>>1028762

>есть такой свитч в 17ой версии


Он только отключает нестандартные расширения, типа байндинга неконстантных lvalue-ссылок к временным объектам или передачи строковых литералов по указателю на char (без const). Two-phase name lookup никаким ключом не включается, т.к. там нужно серьёзно лечить парсер.
sage #81 #1028788
>>1028786
Хотя, нагугливается, что у них с месяц-два назад появился ключ /Zc:twoPhase[-]
#82 #1028791
>>1028782
Почему ты такой злобный, сажееб?
sage #83 #1028793
>>1028791
Почему ты такой тупой, борщехлёб?
#84 #1028797
>>1028793
Как тебя коллеги терпят на работе?
sage #85 #1028798
>>1028797
Не беспокойся, я с тупыми не работаю.
#86 #1028801
>>1028798
Я думаю, что ты такой злой только в интернетах, а в реале ты забитый омеженька. Хороший и умный специалист не будет разводить такую злобу на АИБ.
sage #87 #1028803
>>1028801

>Я думаю


Не пизди, ты не умеешь.
#88 #1028808
>>1028803
Судя по всему, я попал в точку.
sage #89 #1028811
>>1028808
Думай что хочешь, борщехлёб.
#90 #1028871

>Лето в /pr/

#91 #1028889
>>1028682
лучше было бы чтобы на плюсах вообще не было стандартной библиотеки
и буста не было бы
а юзали бы алгоритмы и структуры, предлагаемые ядром конкретного фреймворка qt, gtk, mfc, atl..
тогда весь код был бы написан в единообразной манере (и не только сам с собой, но и с кодом фреймворка, который он использует)
24 Кб, 660x308
#92 #1028891
Привет.

Проблема с выводом PWSTR
Выводит непонятную дичь вместо имени процесса.
Прим. на пике (Process name: 004B3FD8 | ...)

Х3 как выводить ЭТО.

1.Касты крашат.
2.<code>std::wcout</code> и прочее крашит.

https://pastebin.com/5ZswuCBC
#93 #1028897
>>1028891
wcout на винде не выводит то, что непредставимо чаром. Гугли, в четвёртый раз эта ебалайка уже.
#94 #1028898
>>1028891
И вообще, смотри третье сообщение треда.
#95 #1028900
>>1028898
Бтв, а за что тут хейтят ВинАПИ?
#96 #1028925
>>1028900
За не переносимость софта использующего WinAPI на другие платформы. Нефига на ровном месте vendor-lock устраивать.
sage #97 #1028930
>>1028900
За то, что это не WinAPI-тред.
#98 #1028940
>>1028925
Ты так говоришь, как будто посих переносим. Никому не нужна твоя программа, если ты привык ограничиваться стл и бутсами.
#99 #1028941
>>1028940
СТЛ и буст - это не посикс, лалка. Ты можешь спрашивать про что угодно, но будешь обоссан, так как мы тут обсуждаем КРЕСТЫ.
sage #100 #1028942
>>1028940

>Ты так говоришь, как будто посих переносим.


Ты знаешь, что значит первая буква в аббревиатуре POSIX?
#101 #1028981
>>1028942
Portable между сортами прыщеблядского говна, да
#102 #1028985
>>1028981
Часть POSIX была/есть в винде. Упс!
https://en.wikipedia.org/wiki/Microsoft_POSIX_subsystem
#103 #1028986
>>1028198
Получается, у char нету вывода адресов и нужно привести указатель на char к типу указателя на void чтобы сработал метод класса ostream №7 из вот отсюда?
http://en.cppreference.com/w/cpp/io/basic_ostream/operator_ltlt

я понимаю, что всего лишь повторяю твои слова, но мне важно разобраться до конца.
Не ОП.
sage #104 #1028988
>>1028986

>нужно привести указатель на char к типу указателя на void чтобы сработал метод класса ostream №7 из вот отсюда?


Да.
#105 #1028989
>>1028033 (OP)
Посоветуйте лучшую ORM для SQLite.
#106 #1028990
>>1028985
Она никогда нормально не работала, и была сделана исключительно для какой-то йоба сертификации в америке ровно настолько, чтобы пройти эту сертификацию. И потом ее нахуй выпилили.
#107 #1029001
>>1028940
POSIX принят как стандарт и работает вообще везде — от линуксов до маков с прочими бздями.

Но сперма дауном мало кривой фс и реестра, и кучей говнища которое тянется еще из доса, они тут сидят выебываются что у них компилятор нормально работает (при том что под ним даже буст, который пишется на самых канонических стандартах, не собирается без допилки костылями коими козыряли выше (привет Borland c++)).
#108 #1029008
>>1028988
Спасибо
#109 #1029018
>>1028990
бла бла бла
а на деле это была разработка сторонеей фирмы, потом ее прикупила майкрософт
и да, на судя по формумам где сотни тысяч сообщений, она таки активно юзалась
блядь, нахуя ультимативно писать о том, в чем не разбираешься?
#110 #1029054
>>1029018

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


ну-ка?
#111 #1029152
Какой будет оверхед по скорости, если кидать массивы туда-сюда по 100 мб через C pipes против разделяемой памяти и Boost.Interprocess?
#112 #1029174
>>1029152
А вот хуй знает. Точно известно только то, что при использовании пайпов придётся на каждую передачу делать по несколько сисколлов и аллоцировать сам массив по 2 раза.

Точнее тебе скажут бенчмарки, если тебе не лень.
#113 #1029217
>>1029152
Напрогай и попробуй. Самый простой вариант - запустить
$ cat /dev/zero | wc -c
и посмотреть IO в iotop или в /proc/ . На винде сложнее. Оверхед зависит от воплощения.

>C pipes


Это POSIX, если что.
#114 #1029358
>>1028989
Я хуй знает как насчет этих говнореализаций маппингов сущностей БД к объектам крестов с использованием макросов относиться (вроде бы это и отвратительно, стоит лишь посмотреть на то, как делаются всякие кастомные классы дескрипторов для COM, но с другой стороны у языка никаких средств для организации статической рефлексии нет), так что я бы предложил использовать внешний парсер для описания сущностей на нейтральном языке, который бы сам генерировал и запросы и исходный код, наподобие protobuf.
Если проект будет долго жить и весьма серьезный, вполне имеет смысл написать собственный такой пре-процессор.
#115 #1029370
>>1029217

>> Это POSIX, если что.


Вроде же в winapi есть свои пайпы, только они там какие-то ебанутые. Я как-то решил попробовать две программулины скрестить при помощи их пайпа, но в итоге говна объелся. Меня люто бомбануло с их LPOVERLAPPED, TCHAR, и прочей поебистики, ну и еще то что это не тот пайп, который я ожидал получить из никсов.
#116 #1029452
Анон, сейчас начал разбираться с тредами и не совсем понимаю.

Есть три класса
Первый класс - основной, содержит в себе основную программу.
В нём, по событию, запускается исполняемая функция из третьего класса и всё работает отлично.
Но, кроме этого события в первом классе создается объект из второго класса, который, в свою очередь создает тред, в котором происходят события, которые запускают функцию из третьего класса и всё, пизда. Причём не работает не весь код третьего класса, а только его часть, связанная с библиотекой. Собственно не стартует CApplication

Как это починить?
Сам код, ниже.

class first
#include "CApplication.h"
...
#include "third.h"
#include "second.h"
...
void first::OnBnClickedCheck()
{
...
third myTimer.stop();
myTimer.start(5);

second::checkIt();
...
}

class second
#pragma once
#include "CApplication.h"
...
#include "first.h"
...
bool checkIt::OnBnClickedCheck()
{
...
CApplication app; // Start Excel and get an Application object.
if (!app.CreateDispatch(TEXT("Excel.Application")))
{
AfxMessageBox(TEXT("Couldn't start Excel and get Application object."));
}
...
}

class third
#pragma once
#include "CApplication.h"
...
#include "first.h"
...
void timer()
{
...
second::checkIt();
...
}
void third::start(int sec)
{
std::thread th1(timer, this, sec);
th1.detach();
}
#116 #1029452
Анон, сейчас начал разбираться с тредами и не совсем понимаю.

Есть три класса
Первый класс - основной, содержит в себе основную программу.
В нём, по событию, запускается исполняемая функция из третьего класса и всё работает отлично.
Но, кроме этого события в первом классе создается объект из второго класса, который, в свою очередь создает тред, в котором происходят события, которые запускают функцию из третьего класса и всё, пизда. Причём не работает не весь код третьего класса, а только его часть, связанная с библиотекой. Собственно не стартует CApplication

Как это починить?
Сам код, ниже.

class first
#include "CApplication.h"
...
#include "third.h"
#include "second.h"
...
void first::OnBnClickedCheck()
{
...
third myTimer.stop();
myTimer.start(5);

second::checkIt();
...
}

class second
#pragma once
#include "CApplication.h"
...
#include "first.h"
...
bool checkIt::OnBnClickedCheck()
{
...
CApplication app; // Start Excel and get an Application object.
if (!app.CreateDispatch(TEXT("Excel.Application")))
{
AfxMessageBox(TEXT("Couldn't start Excel and get Application object."));
}
...
}

class third
#pragma once
#include "CApplication.h"
...
#include "first.h"
...
void timer()
{
...
second::checkIt();
...
}
void third::start(int sec)
{
std::thread th1(timer, this, sec);
th1.detach();
}
#117 #1029455
>>1029452
В первом классе неправильно скопипастил

void first::OnBnClickedCheck()
{
...
third myTimer;
myTimer.start(5);

second::checkIt();
...
}
#118 #1029462
>>1029452
Эту неформатированную хуйню никто читать не будет
#119 #1029465
>>1029462
Сорри.
Вот корректно отформатированный код https://pastebin.com/hcPzckH0
55 Кб, 836x1356
#120 #1029466
>>1029465
И картинка, для тех кому лень идти по ссылке.
#121 #1029467
>>1029466
>>1029465
И я проебался опять, спать хочется кошмарно.
Конечно же не
class second
bool checkIt::OnBnClickedCheck()

А
class second
bool checkIt()
#122 #1029477
>>1028989

>лучшую


>ORM

#123 #1029478
Поясните за c++ builder
#124 #1029482
>>1029478
Это программа.
# OP #125 #1029524
>>1029478
Лучшая IDE своего времени (до выхода Visual Studio 6)
#126 #1029599
>>1029466
Бамп вопросу.
#127 #1029608
>>1029599
Нарисуй диаграмму последовательности и тебе все ясно будет. Uml никому еще не мешал.
41 Кб, 1252x379
#128 #1029625
>>1028033 (OP)
Пацаны, я знаю, я говноед и всё такое, но, пожалуйста, помогите с примером, C++ Builder, надо в dbgrid окрасить ячейку в столбце в зеленый, если ее значение == "Принят", и в красный, если == "0".
Есть вот такой код:
http://ideone.com/DIB0HP

Он работает, но окрашивает всю строку, соответственно вся таблица у меня пикрелейтед, что мне нужно добавить, чтоб окрашивал только в первом солбце? Просто ткните носом, я охуительно буду вам благодарен!
#129 #1029627
>>1029625

>> int DataCol


Это ли, случайно, не та самая переменная, указывающая номер столбца?!
Ну и оттуда уже исходи если это так.
9,2 Мб, webm, 640x340, 2:17
#130 #1029628
>>1029627
спасибо, анон.
я видел эту переменную, но сначала не вдуплял как её задействовать, тугодум с утра маленько.

Огромное спасибо, анон, всё получилось, в if доп.условие прописал.
Тонну нефти тебе
#131 #1029641
>>1029452

>и всё, пизда.


Иди нахуй. Ты даже коды ошибок в консоль не выводишь.
#132 #1029687
Отлично блэд, УРА! После крэша студии у меня наконец начали сыпаться осмысленные ошибки. Что же им до крэша не сыпалось то?
>>1029466 -кун
#133 #1029709
>>1028990

>Майки делают не посикс совместимую систему


>РЯЯЯ ВАШ ПОСИХ НИГДЕ НЕ РАБОТАЕТ!!! НИПЕРЕНАСИМО

#134 #1029715
>>1029709

>ТОЛЬКО МАЙКИ

#135 #1029731
Анончики выручайте. Как использовать каскад Хаара в opencv под vs? Вот у меня есть xml файл https://pastebin.com/9AwMYgsn, как его в проект впихнуть?
#136 #1029740
кросспост - вопрос к плюсобогам:
>>1029737
какой самый анальный метод проверки файла на аутентичность?
#137 #1029742
>>1029740

>какой самый анальный метод проверки файла на аутентичность?


Я хз. Но я бы попробовал прочитать видео ффмпегом. Если читается, то значит без приписок.
С фото наверн тоже аналог есть.
#138 #1029745
>>1029740
Если тебе нужно убрать все лишнее, то проще всего перекодировать.
Иначе нужно обрабатывать КАЖДЫЙ контейнер отдельно, и городить логику сплитинга мержинга (учитывать, что у видео может быть несколько дорожек озвучки, или субтитры, например. или теги в музыкальных форматах)
#139 #1029746
>>1029742

>Если читается, то значит без приписок


Не факт, он вполне может пропустить все до обнаружения контейнера, обработать его содержимое, а на остаток забить.
#140 #1029747
>>1029731
как раз в твоем вопросе и заключается твоя же работа
иди копай, сука
#141 #1029749
>>1029747
Бля, не прокатило. Пойду капать
#142 #1029763
>>1029745
спс
#143 #1029765
>>1029709
им это нахуй не надо, отбитый красноглазик
#144 #1029803
Аноны, а вы юнит тесты гоняйте?
Блять я попытался к проекту линуксовому гугл-тесты подрубить и ахуел, какого хуя Эко система плюсов такая уебищная и сложная?
#145 #1029819
>>1029803
Ну гоняй QTest, если гугловские тебе не нравятся. Проект то в итоге от Qt зависимостей не будет иметь.
#146 #1029824
>>1029803
А что пошло не так? Вроде уж проще чем гуглотест подрубить ничего нет.
#147 #1029829
>>1029824

> А что пошло не так?


У него ошибка в ДНК
#148 #1029844
>>1029829
Охуенно пиздец, когда уже делал что то, задротина ссаная.
#149 #1029864
>>1029829
>>1029824
асислил. Стоило всего лишь загуглить.
#150 #1029881
>>1029740
Самый анальный - только ЖПЕГ. Тебе нужно реализовать поддержку всех контейнеров, никакой общей проверки нет (но тебе не нужно поддерживать все кодеки, например).
sage #151 #1030058
Бамп.
360 Кб, 699x526
#152 #1030068
#153 #1030092
Крч. В новом треде надо было писать
::CoInitialize (NULL);
>>1029466 -кун
126 Кб, 312x272
#154 #1030190
Два года говнокодил в НИИ, используя Qt, потом отдыхал полгода. Недавно попробовал устроиться в коммерческую контору, где дали тестовое задание перед собеседованием. Нужно было сделать за неделю многопоточную внешнюю сортировку с ограничением по выделяемой памяти, используя только STL.
В итоге обосрался. Мерж распараллелить не смог, постоянно смотрел в референсы по каждому чиху, и все это было медленно, больно, и вообще наговнокодил, хотя старался придерживаться принципов SOLID. Два раза просил перенести срок сдачи. Сдал им свой opus magnum через две недели, и уже неделю нет ответа. Пришел к выводу, что я - ебучий макак нужно больше практики.

Посоветуйте где взять задачи, решая которые можно натаскаться на решение настоящих повседневных рабочих проблем, подтянуть знание STL и повысить самооценку.
#155 #1030195
>>1030190

> тестовое задание


> перед собеседованием


нахуя ты вообще за него взялся, лол?
#156 #1030196
>>1030195
Хотел освежить свои навыки, полгода не кодил же. Да и не зря взялся, как оказалось.
#157 #1030208
>>1030190
У сортировки слиянием же минимальное ограничение по памяти равняется памяти исходного массива или я что-то недопонимаю?
#158 #1030212
>>1030208
Не в этом случае. При внешней сортировке размер сортируемого массива данных значительно больше объема доступной оперативной памяти (M), его в ней просто не уместить.
Поэтому он читается кусками размера M, сортируется как угодно и сбрасывается на внешнее хранилище отсортированными кусками. Потом эти куски читаются одновременно во входные буферы, объединяются и пишутся на место оригинального файла.
Здесь описано подробнее. https://en.wikipedia.org/wiki/External_sorting
#159 #1030218
Анон, подскажи. Только начал изучать C++ (второй день), читаю книгу Стивена Праты, всё нравится, но никак не могу ответить на один вопрос. Смотри, тут сказано:

>"1 Байт обычно означает 8-битную порцию памяти. В этом смысле байт представляет собой


единицу измерения, которая описывает объем памяти в компьютере, причем 1 Кбайт
составляет 1024 байта, а 1 Мбайт — 1024 Кбайт. Однако в C++ байт определен по-другому.
Байт C++ состоит из минимального количества смежных битов, достаточного для того,
чтобы вместить базовый набор символов для реализации. Другими словами, количество
возможных значений должно быть равно или превышать число индивидуальных символов.
<...>
С другой стороны, в интернациональном
программировании могут использоваться намного большие наборы символов, такие как
Unicode, поэтому в некоторых реализациях могут использоваться 16-битные или даже 32-
битные байты. Для обозначения 8-битного байта иногда используется термин октет"

Я всегда думал, что байт - это байт и он всегда равен 8 битам (ну, может иногда 9), а тут выходит, в C++ под байтом понимается немного другое.
И что это вообще значит?

>минимального количества смежных битов, достаточного для того,


чтобы вместить базовый набор символов для реализации
Это символы, с помощью которых может быть записан исходный код? Ненавижу, когда в книгах ставится какой-то тезис, но потом он нигде не объясняется. Соре, если вопрос элементарный, можешь назвать идиотом, но объясни, плиз.
#160 #1030219
>>1030218
Неудачно процитировал, книга в пдф, сори. Надеюсь, ты поймешь
085
Самофикс
#161 #1030222
>>1030218
1 байт это 8 бит, не переживай. Исключением являются всякие ебанутые системы, которым по 40 лет.
#162 #1030223
>>1030222
Благодарю
sage #163 #1030240
>>1030218
Как-то немного странно описано. Конечно, байт — char, unsigned char, std::byte — должен вмещать символы из стандартного набора (хранятся в char) и быть как минимум 8 бит (чтобы с помощью char можно было кодировать UTF-8).
Но вообще его размер выбирается как размер минимально адресуемого куска памяти, а не из соображений кодирования базового набора символов.
#164 #1030251
Есть один заголовочный файл и 5 cpp файлов. как откомпилировать в консоли шиндоуса весь проект? g++.exe, а дальше что?
#165 #1030255
>>1030218

>причем 1 Кбайт


>составляет 1024 байта, а 1 Мбайт — 1024 Кбайт.



Наглое гонево. 1024 байта - это кибибайт, а килобайт - это 1000 байт. Винда тоже считает, что гигибайт - это гигабайт.
#166 #1030271
>>1030255
Ну йоу, это же упрощения. Конечно, кибибайт, но их тупо непривычно использовать простым смертным, которые привыкли к стандартным единицам измерения. Поэтому по соглашению, 1 килобайт = 1024 байта. Так просто принято.
Но да, фактически, 1 килобайт = 1000 байт.
#167 #1030289
>>1030271

>Поэтому по соглашению, 1 килобайт = 1024 байта. Так просто принято.


Срочно вытравлять. При переходе на гигабайты разница достигает 10%.
sage #168 #1030294
>>1030255
Всем насрать на СИ (Систему Интернациональную). Что физикам, что айтишникам.
СИ жопой спроектирована.
#169 #1030317
>>1030294
Значение приставки "кило" от твоего взгляда на систему Си не меняется.
sage #170 #1030318
>>1030317
Скажи ещё что скорость света не равна единице.
#171 #1030371
>>1030190
Скинь свой код, я как-то делал абсолютно тоже самое. Только я использовал in place parallel merge sort написанный с нуля где часть кода была написанна на avx intrinsicts, для сортировки блоков и priority queue для слияния отсортированных блоков ( на самом деле там было несколько вариантов алгоритвом слияния, priority queue был дефолтным ). В качестве либы для потоков использовал Intel TBB. Вообще там я долго возился с оптимизациями, прифилировал и замерял производительноть практически каждой инструкции. Но на моей машине все упиралось в memory bandwidth на фазе сортировки ну и соответственно IO делей хоть я и использовал всякие техники для оптимизации IO и memory paging.
#172 #1030379
>>1030371
Ты слишком крут.
Я едва наговнякал параллельную сортировку на тредах из STL с интросортом, и слияние при помощи priority queue. Пытался его распараллелить, но не осилил вовремя. Рожал это с перерывом на сон и еду в течение двух недель.
Не знаю зачем это тебе. Посмейся хоть https://my.mixtape.moe/pfruig.7z
#173 #1030394
>>1030379
Собрать не смог на Arch Linux GCC 7.1.1
make[2]: No rule to make target 'CMakeFiles/large_file_sort.dir/src/settings.cpp.o', needed by '../tests/check_sort_order'. Stop.

Но беглый осмотр кода, показался мне слишком запутанным с этими разными классами, и я не понял момента с потоками. Ты создаешь тред пул на n потоков и потом читаешь туда n чанков при заданном лимите в 512 мб это уже получает 512
n что на 8ми ядерной системе уже будет уже 4 гб памяти только для данных. Да и использовать поток для сортировки каждого блока мне кажется не лучшей затеей, мне кажется работадатель прежде всего хотел бы увидеть как ты реализуешь параллельный алгоритм сортировки. Покури divide and conqueror алгоритмы типа мерж сорта которые хорошо паралеллятся, хоть он и не inplace по дефолту, но существуют inplace реализации, конечно не так просты в реализации как оргинальный алгоритм, но если не заморачиваться над производительностью то реализация в лоб тоже не плоха и достаточно проста. А можешь вообще юзать memory mapped file в качестве auxiliary массива.
И кстати мелочи, но все же, твоя очередь с названием Atomic ничего общего с atomic не имеет, она Blocked. Могут подумать что ты не шаришь в этом.
#174 #1030395
>>1030394

>Blocked


То есть Blocking
#175 #1030396
>>1030371

>TBB


>avx


Зачем? Просто интересно чем обычный вотерфольный код не зашел.
#176 #1030401
>>1030212
А все, допер, внешняя жи. Спасибо.
#177 #1030404
>>1030394
А я и правда не особо шарю.
Я использовал там доморощенный контроллер выделения памяти вместо аллокаторов, потому что не знал как их использовать. Не знаю и сейчас, лол. Он делит заданный объем памяти на определенное количество "слотов".
В такой слот читается кусок исходного массива, затем слот перемещается в задачу сортировки, которая в свою очередь скармливается пулу потоков. В этот же пул отправляется ещё одна задача, которая по завершении сортировки запишет содержимое слота во временный файл на диск. И так до конца исходного массива.

Когда "слот памяти" выходит из scope, он сигнализирует об окончании своего существования из деструктора в контроллер памяти. Таким образом контроллер делает очередной слот доступным. В итоге используется только заданный объем памяти плюс оверхед хуй знает на что где-то в пять мегабайт. По умолчанию предел выделяемой памяти равен 512 МБ, но можно указать другое значение из командной строки.

Спасибо за совет мудрый, так и сделаю. Иначе мне нехуй в этой профессии делать.
#178 #1030454
>>1030190

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


Мне одному, блядь, кажется, что "многопоточная" - то не о тредах на ЦП, а о N-way merge?
#179 #1030583
Короче, быстро решительно накидайте ссылок или ключевых слов, чтобы написать бота для игры, т.е. мышка сама должна двигаться находить участок на мониторе для клика (то окно игры), кликать, двигаться и снова кликать и двигаться и снова кликать. В чем пейсать вижуал студио или QT? Кресты учить лень, я веб макакен, просто накидайте в какую сторону гуглить и какие либы накатывать или что там.
#180 #1030597
>>1030583
https://www.autoitscript.com/site/autoit/ и быстро решительно иди нахуй с таким отношением.
#181 #1030606
>>1030597
спасибо и тьфу на байтоебов))
#182 #1030607
>>1030597

>Compatible with Windows XP / 2003 / Vista / 2008 / Windows 7 / 2008 R2 / Windows 8 / 2012 R2


оу вей, оно 10ку не поддерживает??
#183 #1030633
>>1030607
Зато десятка поддерживает говно еще с икспи. Где-то книжка даже была про long term support в сперме, где рассказывалось как в хп и висте даже старые баги эмалировали чтобы софт на них накостыленный работал.
sage #184 #1030634
>>1030607
Тебе лень попробовать запустить, уёбок? Иди нахуй из крестотреда, пидорас.
#185 #1030640
Ребята, стоит ли начинать вкатываться к вам с си или с спп?
Читал что спп это тот же си только с классами, пояснити за это.
Спасибо, Максим
#186 #1030643
>>1030634
воу, кокой грубый))
да уже все запустилось, прикольная штука. а как можно кому-нибудь на комп секретно установить этот аутольт, чтобы прожки на нем запускались?))
sage #187 #1030644
>>1030640
С Хаскеля начни.
#188 #1030665
>>1030644
Чем докажешь что ты не монада?
#189 #1030699
#190 #1030702
>>1030699
я к тому, что называть кресты "С с классами", глупо
#191 #1030754
Гайз, нид хелп. Как последовательно воспроизводить видеофайлы, не меняя постоянно сурс в коде? Файлы имеют почти одинаковые имена, кроме цифр. типа file1.avi file2.avi
#192 #1030757
>>1030754
Какое отношение это имеет к крестам?
sage #193 #1030778
>>1030754
Ты дверью ошибся, съебись.
47 Кб, 315x183
#194 #1030794
Пасибки за совет ЯП, уже столько сырья накрафтил :3
#195 #1030805
Обьясните нулевоу. Что мне скачать для обучения с?

Ткните ссылкой в торрент. Там этих вижул студий 150 разновидностей.
sage #196 #1030808
>>1030805
Ставь vim
#197 #1030810
>>1030808
Что это?
sage #198 #1030811
>>1030810
Компилятор.
#199 #1030817
>>1030754
int i = 0;
While (1) {
i++;
std::string nameBegin("file"), extension(".avi"), fullname;
fullname = nameBegin + i + extension;

// do smth w fullname

}
#200 #1030819
>>1030805
Качай Айвора Хортона и соответствующую версию VS
#201 #1030902
>>1030805
если тебе принципиально VS - качаешь community edition, тебе хватит. Бесплатно, с офф сайта
#202 #1030995
Что делает приведенная ниже функция?

double f(int x)
{
return (pow(x, -6) - 15 pow(x, -3)) / (5 - pow(x, -3)) + pow(((pow(x, -3) - 9) / 25 - pow(x, -6)), -1)((pow(x, -3) / pow(x, -3) - 5) - 4 pow(x, -3) / (pow(x, -6) - 10 pow(x, -3) + 25));
}
#203 #1030997
>>1030995
Как-то оно не очень хорошо вставилось сюда. Быстрофикс.
https://pastebin.com/MsFDqk9Y
#204 #1031012
Как присоеденить два компа по UDP, если каждый из них находится в своей подсети (нет глобального IP / port forwarding).

Скайпы и прочие средства коммуникации не передают же все данные через помежуточный сервер?
#205 #1031026
>>1030995
Возвращает double
#206 #1031028
>>1030805
Если точно с, а не с++ и собираешься изучать это по K&R, ставь codelite c mingw https://www.codelite.org
#207 #1031042
>>1028033 (OP)
аноны, сап, вкатился только что, объясните почему так
то есть, там же бляжд не должно быть хелло ворлд
Что не так?
#208 #1031047
>>1031042
Твой прошлый проект был hello world ?
Вот он его и запускает.
#209 #1031051
>>1031042
выброси нахуй кодеблокс, поставь студию
#210 #1031053
>>1031042

>execution time 5.5 секунд


Ваши оправдания, байтобляди?
#211 #1031055
#212 #1031056
>>1031053
У челика калькулятор вместо ЭВМ либо ЖД дохнет.
#213 #1031057
>>1031053
WINDOWS XP
#214 #1031059
>>1031012
UDP hole punching
#215 #1031060
>>1031047
А как сделать, чтоб он запускал нынешний?
#216 #1031061
>>1031056

>>1031053
На работе кодю
#217 #1031062
>>1031057
>>1031056
Я бы охуел на его месте.
#218 #1031066
>>1031060
Я хз, как это точно в код-блокс, проверь что ты запускаешь программу через debug->start
#219 #1031074
>>1031062
я вкатился минут 5 назад
sage #220 #1031935
mods=gods
5 Кб, 487x89
#222 #1031964
>>1031961
solved
#223 #1031974
Я всё продолжаю потихоньку читать книгу из шапки "Принципы и практика С++" и возникают некоторые вопросы. Дело в том, что я чёрт знает где, и до места, где ловит интернет надо больше часа ехать, а с собой загрузил только несколько книг.
Заместо звёздочки • пишу, звёздочка уходит в разметку.

Прочитал главы про классы, и там много воды и недосказанностей.

Картинка 1.
Т1 наследует Т2. При этом все члены Т1 переносятся в Т2. Насколько я понял, переопределить можно только виртуальные методы. И через =delete можно удалить любой метод. Выходит, наследуемый класс может только дополнять предка, и очень ограниченно его изменять?
1. Как сделать так, чтоб в 45 строчке вызывался только конструктор для Т2, без Т1. Например, какая-то инициализация данных замещается другой и старая уже не нужна. Можно конечно в T1 сделать ещё один конструктор и в T2() вызывать именно его.
2. Размер T1 - 4 байта, Т2 - 8 байт, то есть старая 'а' из Т2 ещё жива. Как получить к ней доступ без функции T1::аа()? Из того, что я смог придумать работает только жуткое static_cast<T1&>(h).а, остальные варианты порождают временые копии, вызывают всякие деструкторы и ругаются на lvalue.
3. Есть ли возможность изменить тип 'а' или вовсе удалить это поле у потомков? Не вижу никаких технических причин, почему классы могут только расширяться. Если не использовать виртуальных методов, то это будет просто более краткой записью.
4. Почему если я объявляю деструктор виртуальным, то вызывается всё-равно оба? По видимому в ~T2() неявно вызывается ~Т1() для наследуемой части, верно?

5. Про new/delete. Предположим, существует массив на 200 мб. Для того что бы добавить один элемент, нужно выделить ещё один массив на 200 мб памяти (+1 элемент), скопировать туда первоначальный массив и только потом его удалить. То есть фактически для функционирования программе нужно в два раза больше памяти, чем она реально потребляет. Тем не менее все вокруг пользуются new/delete (даже, если верить книге, STL работает по умолчанию через них) и никого нисколько не задевает эта проблема. Это нормально? Я немного не понимаю как это вообще так.
Чем был плох сишный realloc? Немного допилить, чтоб оно не требовало непрерывного приведения типов, да и всё.

6. Если я в объявлении T1(const T1& n) пропущу const, это существенно? Компилятор сам в тривиальных случаях довешивает const, inline и прочее или надо каждый раз писать всякие const char• const str, лол?

Картинка 2.
7. Что имелось ввиду то про const? В книге это пункт 18.5.1, но в реальности всё работает вполне логичным образом.
8. void• operator new() В книге ничего про это нет, случайно в подсказках ide увидел такую конструкцию. Выяснил, что можно перегружать даже оператор ->, только как это использовать не совсем ясно. Посоветуйте хорошую книгу или статью про перегрузки, пожалуйста.

9. Использую qtCreator+cmake. Есть проект, в его папке находятся файлы h, cpp, CMakeLists.txt и CMakeLists.txt.user. Как-то по нормальному его можно скопировать в другую папку? Если не удалять CMakeLists.txt.user, то он лезет в оригинальные директории. Заменять в нём пути через поиск попахивает извращением, а если удалять этот файл, то заместо красивых папок "Release"/"Debug" там чудовища. Это мелочь, конечно, но всё же. Может быть как-то в CMakeLists.txt можно строго определить некоторые настройки из CMakeLists.txt.user, не знаю.

10. Есть h-файл (картинка 3) c реализацией функций(в нём не только определения), в нём обычный #ifndef, но если я через include подключаю его более чем в одном cpp файле, то он ругается на multiple defenition функций. Если вынести реализацию в cpp файл, который цеплять в CMakeList.txt, то всё ок. Если явно вставить это в код в двух разных cpp, то та же ошибка. То есть #ifndef работает как будто независимо. Нельзя создать немного кода в h-файле, так чтоб для подключения не приходилось вообще трогать CmakeList.txt? Прощу прощения - это очень-очень нубский вопрос, но мне просто прочитать негде, в книгах, что имеются, про это вообще ничего нет, а искать что-то очень сложно, страницы по две-три минуты открываются, если вообще открываются. Сейчас же новые веб технологии - страницы жутко тяжёлые.
#223 #1031974
Я всё продолжаю потихоньку читать книгу из шапки "Принципы и практика С++" и возникают некоторые вопросы. Дело в том, что я чёрт знает где, и до места, где ловит интернет надо больше часа ехать, а с собой загрузил только несколько книг.
Заместо звёздочки • пишу, звёздочка уходит в разметку.

Прочитал главы про классы, и там много воды и недосказанностей.

Картинка 1.
Т1 наследует Т2. При этом все члены Т1 переносятся в Т2. Насколько я понял, переопределить можно только виртуальные методы. И через =delete можно удалить любой метод. Выходит, наследуемый класс может только дополнять предка, и очень ограниченно его изменять?
1. Как сделать так, чтоб в 45 строчке вызывался только конструктор для Т2, без Т1. Например, какая-то инициализация данных замещается другой и старая уже не нужна. Можно конечно в T1 сделать ещё один конструктор и в T2() вызывать именно его.
2. Размер T1 - 4 байта, Т2 - 8 байт, то есть старая 'а' из Т2 ещё жива. Как получить к ней доступ без функции T1::аа()? Из того, что я смог придумать работает только жуткое static_cast<T1&>(h).а, остальные варианты порождают временые копии, вызывают всякие деструкторы и ругаются на lvalue.
3. Есть ли возможность изменить тип 'а' или вовсе удалить это поле у потомков? Не вижу никаких технических причин, почему классы могут только расширяться. Если не использовать виртуальных методов, то это будет просто более краткой записью.
4. Почему если я объявляю деструктор виртуальным, то вызывается всё-равно оба? По видимому в ~T2() неявно вызывается ~Т1() для наследуемой части, верно?

5. Про new/delete. Предположим, существует массив на 200 мб. Для того что бы добавить один элемент, нужно выделить ещё один массив на 200 мб памяти (+1 элемент), скопировать туда первоначальный массив и только потом его удалить. То есть фактически для функционирования программе нужно в два раза больше памяти, чем она реально потребляет. Тем не менее все вокруг пользуются new/delete (даже, если верить книге, STL работает по умолчанию через них) и никого нисколько не задевает эта проблема. Это нормально? Я немного не понимаю как это вообще так.
Чем был плох сишный realloc? Немного допилить, чтоб оно не требовало непрерывного приведения типов, да и всё.

6. Если я в объявлении T1(const T1& n) пропущу const, это существенно? Компилятор сам в тривиальных случаях довешивает const, inline и прочее или надо каждый раз писать всякие const char• const str, лол?

Картинка 2.
7. Что имелось ввиду то про const? В книге это пункт 18.5.1, но в реальности всё работает вполне логичным образом.
8. void• operator new() В книге ничего про это нет, случайно в подсказках ide увидел такую конструкцию. Выяснил, что можно перегружать даже оператор ->, только как это использовать не совсем ясно. Посоветуйте хорошую книгу или статью про перегрузки, пожалуйста.

9. Использую qtCreator+cmake. Есть проект, в его папке находятся файлы h, cpp, CMakeLists.txt и CMakeLists.txt.user. Как-то по нормальному его можно скопировать в другую папку? Если не удалять CMakeLists.txt.user, то он лезет в оригинальные директории. Заменять в нём пути через поиск попахивает извращением, а если удалять этот файл, то заместо красивых папок "Release"/"Debug" там чудовища. Это мелочь, конечно, но всё же. Может быть как-то в CMakeLists.txt можно строго определить некоторые настройки из CMakeLists.txt.user, не знаю.

10. Есть h-файл (картинка 3) c реализацией функций(в нём не только определения), в нём обычный #ifndef, но если я через include подключаю его более чем в одном cpp файле, то он ругается на multiple defenition функций. Если вынести реализацию в cpp файл, который цеплять в CMakeList.txt, то всё ок. Если явно вставить это в код в двух разных cpp, то та же ошибка. То есть #ifndef работает как будто независимо. Нельзя создать немного кода в h-файле, так чтоб для подключения не приходилось вообще трогать CmakeList.txt? Прощу прощения - это очень-очень нубский вопрос, но мне просто прочитать негде, в книгах, что имеются, про это вообще ничего нет, а искать что-то очень сложно, страницы по две-три минуты открываются, если вообще открываются. Сейчас же новые веб технологии - страницы жутко тяжёлые.
#224 #1031990
>>1031974
1. Конструктор родительского класса будет в любом случае вызван перед вызовом конструктора наследуемого класса, при этом, если конструктор не указан явно, будет выполнена попытка вызова конструктора по-умолчанию.
2. Измени области видимости переменной на protected, к примеру
3. Удалять члены из родительского класса нельзя. Это привело бы к печальным последствиям, к примеру, взять урезание типов (когда классы передаются по значению, а не по указателю или по ссылке)
4. Сначала вызывается деструктор наследуемого класса, потом родительского в порядке обратном инициализации конструкторов, насколько я помню.
5. Ты не можешь постоянно хранить данные в стеке (смотри что это такое), при этом размер стека на поток очень ограничен (например в моем линупсе он 8 мегабайт на процесс), конечно, можно увеличить лимит стека, только вот принципа работы стека это не меняет.
7. Например, у тебя есть два объявления:
a. void T1::a() const; и
b. void T1::a();
Тогда если в конструкторе с переданным в него константным объектом ты вызовешь метод n.a(), то будет вызвана перегрузка a, а если конструктор определен как:
T1::T1(T1 &n) { n.a(); }
тогда будет вызвана перегрузка b
8. Ну ебать
9. CMakeLists.txt каак правило, является единственным скриптом, ответственным за генерацию проекта CMake (хотя есть и множество ислючений)
#225 #1031992
>>1031974

>> инициализации конструкторов


вызова конструкторов, конечно же

>>1031990
10. За объявления отвечает one definition rule, его сразу сложно описать, так что лучше тебе посмотреть на cppreference и заодно прочитай про линковку.
Если не хочешь сильно заморачиваться, можешь просто добавить inline к объявлению твоего метода и тогда все должно заработать.
#226 #1032082
Как по человечески перекатывать гору кода из 2012 студии в 2017? Ясен хуй в 2017 оно не собирается просто так, ошибок дохуя и за ними идут новые, гугл почти нихуя дельного по ним не пишет. Лопатить 500 метров исходников не улыбается, там ещё и зависимости урчат на студию. Киньте ссылок, чтоб я в человека превратился.
#227 #1032090
>>1032082
Ты что auto_ptr использовал где ни попадь. Сильно много с тех времен из станарта не удалили или дело в том, что студия криво импортирует старый проект?
31 Кб, 371x450
#228 #1032097
>>1032090

> студия криво импортирует старый проект?


Вроде ровно, предложила обновить целевую платформу, но что-то пару проектов так и не осилила. Там какие-то батники, из которых ошибки лезут, выход с кодом 2 и прочая ересь. Ну и вообще ошибок мне 1386 штук накидал. Мне теперь руками всё это пердолить? Я, если что, это говно вообще не трогал раньше, но у людей по 2012 студией собиралось.
#229 #1032106
>>1032097
Покажи ошибки, может я подскажу что такое.
#230 #1032111
>>1032106
Ну вот например на пиках обновил до 141, а ему всё 140 мерещится. Можно ещё раз обновить, он напишет - да, обновил, заебись теперь, но нихуя.
#231 #1032116
>>1032111
Ебать. Ну с такой хуйней я точно никогда не сталкивался. Можно попробовать батником каким-нибудь пройтись по всем файлам проектов (vsproj которые) и посмотреть вхождения 140 версии, больше мне на ум ничего не приходит.
Я оттого давно и пересел на внешнюю систему сборки, потому что обновить проект на студии это как обновлять линупс до нового релиза, без еботы почти никогда не бывает.
#232 #1032263
Парни. А в какую сторону САМОРАЗВИВАТЬСЯ. Я вот год сервак для игор в ДС на плюсах катаю, думаю чему бы еще научиться?
Выбираю между вкатом в системщину под линукс (embedded, драйвера итд) и чем то рядом с МАШИН ЛЕРНИНГОМ и обработкой изображений.
Есть идеи?
#233 #1032294
>>1032263
В бабло вкатывайся
#234 #1032302
>>1032263
специализируйся, углубляй знания того что уже дает работу, денежку
не распыляйся на сторонние вещи
# OP #235 #1032305
>>1032263

> Саморазвитие


> На плюсах


В ближайшие 10 лет работы на крестах будет все меньше и меньше, в целом все будет медленно загнивать.
Можете скринить
#236 #1032322
>>1032305
10 лет назад так же говорили.
Однако я в ДС год назад работу джуном меньше чем за неделю нашел.
#237 #1032326
>>1032305
он на бекенде геймдейва, зп там маленькие, вернее неадекватные требуемым скиллам, но работка есть
sage #238 #1032378
>>1032116

>обновлять линупс до нового релиза, без еботы почти никогда не бывает


Диванного кукаретика видно сразу. Апнул версию абанты уже как минимум 3 раза. Самое еботное что при этом нужно было делать — перезагружать ЭВМ. Ну это, впрочем, как при любом обновлении ядра.
#239 #1032506
>>1032378
ты доебан попробуй обновить у которого релизы раз в пятилетку выходят
А если у тебя была ката от амуде и ты ставил фглрх, вот тогда то и начинается поебота, если его не удалить
#240 #1032522
https://pastebin.com/6WGeCbiu

Может ли алгоритм BFS вывести сам путь? Как его можно модифицировать?
#241 #1032524
>>1032522
По сути в очереди должны храниться все точки? Может из очереди точки кинуть в массив?
sage #242 #1032555
>>1032506

> производитель поставляет кривой драйвер — виноват линукс



Л — Логика.
#243 #1032566
>>1032555
я говорю о том, что это контрольный выстрел, там дохуя проблем вылазит, перелезь со своей попсы на что-то другое (только не на rolling версию) вероятность прихуеть от смены версий увеличится
#244 #1032569
>>1028033 (OP)
привет
кто нить пробовал линукс поковырять, например допилить шифрование и доп функционал?
я не про бужедор ось, а просто подпилить что то к существующей оси
#245 #1032654
>>1032569
кто допиливал свою ось? или чью правки принял Торвальдс?
#246 #1032660
>>1032654
Нет, например добавить в дебиан шифрование. Весь входящий трафик, а также информацию на диске шифровать.
#247 #1032664
>>1032569
Сделай микроядро из монолитного
sage #248 #1032681
>>1032660

>Весь входящий трафик, а также информацию на диске шифровать.


Гугл не для нас с тобой, детка, мы летаем выше!
#249 #1032746
>>1032522
Нихуя не понял. Что за col и row? Что такое k, и почему итерируется только до 4? У графа какая-то сомнительная реализация. Почему не используешь контейнеры?
А по делу, visited можно хранить индекс предыдущей вершины, а когда найдешь искомую вершину пройтись по visited в обратном порядке. Если путь неважен, то вместо вершины можно сумарную дистанцию пихать.
#250 #1033044
>>1028064
Нахуя это сделано?
67 Кб, 239x222
#251 #1033045
>>1031042
Не слушай эту студиеблядь ( >>1031051 ), ставь MinGW и Cmder, вписывай папку bin в PATH и радуйся :3
#252 #1033054
>>1033045
А в чём плюсы Cmder'а?
#253 #1033069
>>1033045
щас бы пердолиться даже в винде, вметсо нажатия одной кнопки, лучшей IDE и волшебного дебаггера.
#254 #1033081
>>1033069
Вот всегда не понимал этого. Причем обычно этим занимаются те, кто пишет на всякой хуйне вроде ruby или php.

То есть как байтоёбить, так это пердолинг. Только байтоёбство и отсутствие абстрактной хуиты приносит пользу.

А вот то что ты git юзаешь из консоли и набираешь код в vim'е - пользы тебе не дает никакой.
Всю жизнь сидел в студии, юзил решарпер, отладчик и оконные приложения для контроля версий. Вот зачем?
#255 #1033083
>>1033081
кнопкодрочер уровня бох. з.ы. большего говна чем вс не сыскать, даже джетбрейнс не такое говно.
#256 #1033087
>>1033081
я ходил на собесы в москвоский Яндекс недавно. Спецом спрашивал про студию у людей, т.к. заебало сидеть с красноглазой парашей.

Так вот - мегакрутые чуваки, которые меня собесили (бывшие работники гуглов\майкрософтов и прочего), все пользуются студией и им норм. А илитарии с двачей юзают исключительно вим и тратят хуеву гору времени на то, что нормальные люди делают 1 клико.м
#257 #1033091
>>1033087

>мегакрутые чуваки


это которые контекстную рекламу делают?
#258 #1033092
>>1033087

Помню у меня в универе был один такой арчеблядок. У него вечно бомбило когда я его спрашивал вопросы по железу. Например "от скольки вольт работает процессор", или чем "RISC отличается от CISC", или "чем отличаются защищенный режим от реального"?

Вот скажите, линяри, почему пердолиться с софтом это благородно, а пердолиться с железом - зашквар? Компьютер - это электронное устройство. Я считаю что его надо знать. А компьютеры поставлять в наборе "спаяй сам". А то раньше мой батя звуковуху сам паял, были времена.

Упрощение - это хорошо.
#259 #1033094
>>1033092

>звуковуху сам паял,


тебя тоже сам спаял?
#260 #1033095
>>1033094
С твоей мамкой. Но мы не братья, он её в жопу ебал с:
#261 #1033098
>>1033091
которые сделали топ2 поисковый движок и кучу ин-хаус вещей для машинного обучения
#262 #1033140
>>1033098

>поисковый движо


который кроме рекламы и говна нихуя не находит, впрочем как и гуглапараша

>для машинного обучения


хуинного, бигдата и машинленинг бесполезная хуета для развода лохов
мимонюфаг третий день кодю #263 #1033143
аноны, в чем хуйня? cpp.sh/66fmk впервые с такой ошибкой столкнулся
#264 #1033145
Насколько уёбищно с архитектурной точки зрения запускать метод класса в другом потоке?
#265 #1033148
>>1033143

> ...


> line 12: coat << "Vvedite ocenki, dlya vihoda napishite -1";


> ...


> 12:5: error: 'coat' was not declared in this scope


> 'coat'


>'COAT'


Быть может там всё же должен быть cout?
#266 #1033151
>>1033148
ой, спасибо. очень жаль что я сам не додумался. теперь работает
#267 #1033153
>>1033145
Ничего плохо, если правильно синхронизируешь. Ну и не используешь потоко-зависимые хендлы, которые нельзя создавать в одном потоке, а использовать в другом
265 Кб, 1920x1200
#268 #1033185
#269 #1033202
>>1028033 (OP)
Пишу приложение для расчета зарплаты на QT + SQLite. Уже охуел от архитектуры. Посоветуйте книги по ООП-дизайну приложений, чтобы не охуевать так.
#270 #1033240
>>1033202
Двачую этого
#271 #1033252
>>1033044
Так можно про все плюсы спросить. Для C-строк это сделано, читать могёшь?
#272 #1033256
Короче, есть статически скомпилинная кутя. Всё компилится, линкуется и запускается, но QAudioDeviceInfo и QCameraInfo наотрез отказываются обнаружать динамики, микро и камеру хотя с обычной кутей все заебись. Есть предположения что это и как исправить?
#273 #1033259
>>1033256
смотри флаги с которыми скомпилин кьют
#274 #1033273
>>1033256
Самый тупой вариант: собрать дебуг-версию и подрубить к дебуггеру. Что бы ни было проблемой, ты это найдёшь.
#275 #1033283
>>1033256

>есть статически скомпилинная кутя


Лицензию-то уже купил?
#276 #1033285
>>1033140

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


Я тебя понял
#277 #1033289
АНАНАСЫ, не пойму что я делаю не так. Нужно найти QWidget в std::vector<QWidget>. std::find работает, выдает итератор. Пытаюсь удалить объект delete *iter, а потом убрать из вектора .erase(iter), но программа крашится.

http://ideone.com/sywQxB
#278 #1033293
>>1033092

>У него вечно бомбило когда я его спрашивал вопросы по железу.


А при чем тут те, к кому ты обращаешься?
#279 #1033326
>>1033092

>Компьютер - это электронное устройство. Я считаю что его надо знать


Нахер иди. Это нужно знать только если ты школьник с васма и разрабатываешь вирусы. Там постоянно ведутся вялотекущие срачи об архитектуре штеуда и его реальном и защищенном режимах. Зачем все это знать человеку, который не пишет драйверы или малварь? Не навязывай людям свои интересы, и не будешь послан или унижен, не ответив, в чем разница между pop и ROP
sage #280 #1033359
>>1033092

>от скольки вольт работает процессор


От 220.
6 Кб, 332x389
#281 #1033365
Поясните за пикрил. Эта хрень имеет какой-то смысл? Если не имеет, то почему на нее не ругается компилятор?

Можно ли безболезненно удалить один экземпляр void operator++?

Код не мой. Его не правили уже лет 20.
sage #282 #1033368
>>1033365

>Код не мой. Его не правили уже лет 20.


Тебе его тоже не стоит трогать. С твоим-то уровнем.
42 Кб, 866x490
#283 #1033378
>>1033368
Я не виноват, что Страуструп намеренно придумал язык, в котором нет никакой логики. Такая хуйня даже под наркотиками не может прийти в голову. Он намеренно делал ебанутый язык, чтобы не пердоля 5 лет книги по нему нельзя было вкатиться.
sage #284 #1033379
>>1033378

>Страуструп намеренно придумал язык, в котором нет никакой логики


Нет или ты не видишь?

> Такая хуйня даже под наркотиками не может прийти в голову.


Твой вариант синтаксиса для перегрузки префиксного и постфиксного ++
#285 #1033382
>>1033379
Ты просто сектант.

Все что придумал Страуструп -- это лютая нечеловеческая бессмысленная хуета. Достаточно выучить любой функциональный язык, чтобы это понять.
sage #286 #1033385
>>1033382

>Достаточно выучить любой функциональный язык


С твоим подходом вряд ли ты выучил хоть один из них, лол.
#287 #1033407
>>1033382
Есть 2 типа языков, на которые все ругаются, и которыми никто не пользуется.
#288 #1033410
>>1033252
Да ясно, что C-строки, но почему так, а не через отдельный тип данных?
#289 #1033416
Паршу файлик через boost spirit x3. Следуя примерам из доков получается что-то вроде: https://pastebin.com/VZ5LGwQ8
Много кода дублируется, и возник вопрос, можно ли сделать из
x3::rule<class %rule_name%, %SynthAttrType%> %rule_name% = "%rule_name%";
auto const %rule_name%_def = %some_nonterminals%;
BOOST_SPIRIT_DEFINE(%rule_name%);

что-то вроде
MakeRule<%SynthAttrType%> %rule_name% = %some_nonterminals%;
?
#290 #1033418
>>1033054
Ну, во-первых, стандартный cmd.exe пиздецки уебищный и неудобный, Cmder поприличней будет. Во-вторых, есть встроенные linux-комманды (типа "ls", "cat", "sh" и т.д.).

В принципе, может кому-то и удобно стандартную консоль использовать, и наверняка многим linux-комманды не нужны, я просто предложил как вариант.
#291 #1033419
>>1033407

>


>


Два бидона чая сиру
#292 #1033421
>>1033359
Вы вольты с ваттами перепутали
sage #293 #1033423
>>1033421
Хорошо хоть не с люменами.
#294 #1033424
>>1033421
Вы чувство сарказма потеряли.
#295 #1033425
>>1033069
Никогда не любил студии, лично для меня они неудобные. Консоль, к тому же, в отличие от IDE, дает тебе полный контроль над файлами. Не люблю я, когда студия сама решает, что и куда ей девать.
#296 #1033426
>>1033425
А что и куда она девает вне рабочей папки проекта?
#297 #1033427
>>1033425
Плюс, в процессе программирования нет ничего лишнего, только консоль и текстовый редактор. Все максимально минималистично.
#298 #1033433
>>1033426
Я не говорю, что файлы пропадают из рабочей папки проекта. Я просто хочу самостоятельно контролировать каждый файл. Я не хочу, чтобы в папке с проектом лежали еще какие-то спец. файлы (например .toml файл у rust). Я не хочу нажимать на ебаные кнопки, при этом не понимая, что конкретно они делают.
#299 #1033437
>>1033087
Не понимаю зачем использовать Vim, если есть нормальные текстовые редакторы, типа Sublime Text, например. Консоль использую чисто для компиляции/запуска программы.
#300 #1033438
>>1033433

>нажимать на ебаные кнопки, при этом не понимая, что конкретно они делают


обычно на них написано весьма конкретно что они делают.

>Я просто хочу самостоятельно контролировать каждый файл


но ты и так контролируешь все файлы ПРОЕКТА, все остальное это выхлоп компилятора и системы сборки, и они в папку проекта не лезут.
#301 #1033441
>>1033437
define 'нормальные текстовые редакторы'.
Вим тащит своим функционалом. Но чтобы его использовать нужно просто привыкнуть.
#302 #1033442
>>1033151
Блядь, ты хоть читаешь то, что тебе выдает компилятор?
#303 #1033446
>>1033416
Ну чтож вы крестаны? Никто не знает?
#304 #1033458
>>1033438

>обычно на них написано весьма конкретно что они делают.


Я имею ввиду на более низком уровне. Какие параметры передаются компилятору, линкеру. Мне важно это контролировать.
#305 #1033460
>>1033441

>Вим тащит своим функционалом


Чем именно?
#306 #1033467
>>1033458
Это все в свойствах проекта содержится, где твоим параметрам еще быть.
>>1033460
Спроси у какого-нибудь кто пользуется вимом. Вроде как там можно мутить крутые макросы.

>Vim (сокр. от Vi Improved, произносится «вим») — свободный текстовый редактор, созданный на основе более старого vi. Ныне это один из мощнейших текстовых редакторов с полной свободой настройки и автоматизации, возможными благодаря расширениям и надстройкам.


>Одна из главных особенностей редактора — применение двух основных, вручную переключаемых, режимов ввода: командного (после запуска редактор находится в нём) и текстового (англ. insert mode, режим непосредственного редактирования текста, аналогичный большинству «обычных» редакторов). Существуют и другие режимы.

#307 #1033474
>>1033467

> Вим тащит своим функционалом


> Вроде как


Ты сам то им пользовался? Нах ты утверждаешь, при том, что сам не можешь быть уверен. "Я им не пользовался, но это охуительный редактор."
#308 #1033480
>>1033474
Ахуительный редактор. Я, когда пытался его освоить, так ахуевал, что словами не описать говно какое-то, имхо
#309 #1033483
>>1033474
Это прежде всего инструмент, под свои задачи. Кто как хочет тот так дрочит, что ты сразу раскукарекался: "гувну какуето, засен ано нузна?"
#310 #1033489
>>1033483
Когда я сказал, что это говно? Ты сказал:

> Вим тащит своим функционалом


Я задал логичный вопрос:

> Чем именно?


И тут оказывается, что ты этим редактором вообще не пользовался

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


А дальше ты отвечаешь текстом из википедии.
Вопрос: нахуя писать, что это крутой текстовый редактор, если ты, мало того, что не можешь объяснить почему именно, так еще и не пользовался им вообще.
#311 #1033495
>>1033293
То шо такие же долбоёбы.

>>1033326
Именно. А программисту не обязательно учить vim и git, не зазорно юзать GUI-Версии.
Я наоборот сказал что знать, с таким как у вас подходом, нужно дохуища.
>>1033359
Редко превышает 3.3
#312 #1033501
>>1033418
Посмотрел, годнота. Беру :)
#313 #1033504
>>1033427
В мире С++ возможно сделать 100% верное и правильное автодополнение и статический анализ. Когда ты просто делаешь ставишь точечку, и тебе IDE показывает, что с этим можно сделать. Такая самодокументация. Ошибки в коде, которые тебе IDE услужливо подсказывает, чтобы двадцать раз не перекомпилировать. Подсказки, предложения по рефакторингу.

А ты выбираешь карго-культ тех времен, когда топовой тачкой был пентиум.
#314 #1033506
>>1033489
Ты спросил, я ответил. Тебя вообще ебет пользовался я им или нет?

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


Потому что мне так сказала википедия, например.
#315 #1033507
>>1033504
С этим, пожалуй, соглашусь. Это одно из немногих преимуществ IDE перед текстовыми редакторами.
#316 #1033509
>>1033506
По-моему, нехуй пиздеть, если не знаешь точно.
#317 #1033511
>>1033506
че за даун))
#318 #1033515
>>1033507
Может тогда проще сделать в ide режим минималистичного функционала, чтобы кроме текстового файла и подсветки с автодополнением ничего не показывалось?
VS вроде поддерживает перепиливание компоновки окон?
68 Кб, 1920x1168
#319 #1033518
>>1033515
Я вот так работаю вообще

1033504-кун
#320 #1033522
>>1033518
Не достаточно, лично меня отвлекает все, что наверху.
#321 #1033535
>>1033515
Неужели не существует ни одного "умного" текстового редактора, который умеет просматривать импортированные файлы и показывать какие есть функции/свойства у объекта? А ведь вполне реализуемо.
Хмм.. может самому сделать?
#322 #1033540
>>1033535
Для разбора шаблонов чуть ли не пол компилятора придется написать, наверное.
#323 #1033549
>>1033540
И то верно. Сложно, но ведь не невозможно
sage #324 #1033563
>>1033535

>Неужели не существует ни одного "умного" текстового редактора, который умеет просматривать импортированные файлы и показывать какие есть функции/свойства у объекта?



Completion с помощью clang сейчас не завёз в свой текстовый редактор только ленивый.
#325 #1033573
>>1028033 (OP)
Расскажите о разнице между типами unsigned int и unsigned long. Какой тип выбрать для использования аппаратных регистров целиком?
#326 #1033578
>>1033573
Long больше
#327 #1033584
>>1033573
зависит от железяки и битности.

А вообще #include <cstdint>
#328 #1033597
>>1033283
1) LGPL (под которой выпускается Qt) не обязывает к распространению исходников, всего лишь надо предоставить любой способ замены либ Qt на произвольные, например - распространять .obj-файлы и инструкцию о компиляции.
2) Пока он ничего не распространяет, он вообще ничего не должен.
>>1033289
В этом куске всё правильно, ищи ошибку в другом месте.
>>1033365

>Эта хрень имеет какой-то смысл?


Первое - это прединкремент. Второе - постинкремент. Поищи обсуждение в прошлых тредах.
>>1033410
Предлагаешь писать string("huypizda") вместо "huypizda"?
>>1033416

>BOOST_SPIRIT_DEFINE


Это макро. Вместо макро может быть только другое макро, тимплитом ты его не заменишь (если ты не знаешь, что делает это макро.
В бусте не шарю.
>>1033424
А у тебя его и не было.
>>1033425
Сколько строк/байт в самом большом твоём проекте?
>>1033458

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


Специальная страничка в свойствах есть, где это написано, и напротив большинства свойств написан компиляторный свитч.
>>1033522
КутыКректор тебе подойдёт, как и мне, но он не без недостатков.
>>1033540
Clang Code Model.
>>1033573

>Какой тип выбрать для использования аппаратных регистров целиком?


1) Посмотреть размер регистров.
2) Использовать uint32_t, uint64_t и так далее.
#328 #1033597
>>1033283
1) LGPL (под которой выпускается Qt) не обязывает к распространению исходников, всего лишь надо предоставить любой способ замены либ Qt на произвольные, например - распространять .obj-файлы и инструкцию о компиляции.
2) Пока он ничего не распространяет, он вообще ничего не должен.
>>1033289
В этом куске всё правильно, ищи ошибку в другом месте.
>>1033365

>Эта хрень имеет какой-то смысл?


Первое - это прединкремент. Второе - постинкремент. Поищи обсуждение в прошлых тредах.
>>1033410
Предлагаешь писать string("huypizda") вместо "huypizda"?
>>1033416

>BOOST_SPIRIT_DEFINE


Это макро. Вместо макро может быть только другое макро, тимплитом ты его не заменишь (если ты не знаешь, что делает это макро.
В бусте не шарю.
>>1033424
А у тебя его и не было.
>>1033425
Сколько строк/байт в самом большом твоём проекте?
>>1033458

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


Специальная страничка в свойствах есть, где это написано, и напротив большинства свойств написан компиляторный свитч.
>>1033522
КутыКректор тебе подойдёт, как и мне, но он не без недостатков.
>>1033540
Clang Code Model.
>>1033573

>Какой тип выбрать для использования аппаратных регистров целиком?


1) Посмотреть размер регистров.
2) Использовать uint32_t, uint64_t и так далее.
#329 #1033598
>>1033584

>зависит от железяки и битности


Как это? В C++ нет типа, который на любой платформе процецируется полностью на регистр?
#330 #1033618
>>1033597

>распространять .obj-файлы и инструкцию о компиляции.


По существу, если это "работа, которая использует библиотеку", тогда должна быть возможность линковки программного обеспечения с новой версией продукта, лицензируемого под LGPL. Самый часто используемый метод это сделать это использовать "подходящий механизм разделяемых библиотек для линковки". В качестве альтернативы разрешена статическая линковка если предоставлен исходный код или объектные файлы для линковки.[2]
https://ru.wikipedia.org/wiki/GNU_Lesser_General_Public_License
Ога
#331 #1033620
>>1033598
С++ (и даже C) - это высокоуровневый язык. Максимум того, что ты можешь найти - uint32_fast_t. Есть процессоры с 32-битными адресами и 64-битными регистрами. Есть и ARM - в 64-битных операциях пара регистров используется, как один, и никакой практической разницы между парой и одним регистром нет.
Если ты дошёл до использования регистров, ты пишешь под одну архитектуру, и размер регистров ты знаешь.
#332 #1033631
>>1033620

>С++ (и даже C) - это высокоуровневый язык


Да не, это хуево задизайненный низкоуровенный язык и еще один язык от него эту хуевость унаследовавший. Хотя в то время, когда С появился,пока все писали себе компиляторы сами и это проблемой не было.
#333 #1033637
>>1028033 (OP)
Анон, кто нить пробовал переписать драйвер для какой нибудь железки. Например мп3 плеер, чтобы помимо всего прочего он отправлял данные (как делают антивирусы и многий другой софт);
#334 #1033662
>>1033597

>Предлагаешь писать string("huypizda") вместо "huypizda"?


Зачем, если можно писать "huipizda"s ?
#335 #1033678
>>1033662
Юзер-дифайнд литерал или уже есть в стандарте?
sage #336 #1033679
>>1033678
Начиная с 14-го.
10 Кб, 720x480
#337 #1033772
Нужен tab bar из андроида (material) в Qt Widgets. Как такое реализовать? Наследоваться от QTabBar, а потом что? Как там кастомные кнопки делать?
Или можно как-то с quickcontrols вытащить?
#338 #1033819
>>1033772
Можно либо использовать мобильные контролы на мобилках с мобильным QML, либо использовать десктопные виждеты на десктопе.

>Наследоваться от QTabBar, а потом что?


А потом с нуля всё обрисовывать ручками, писать всю логику вроде переключения табов и их анимации.
#339 #1033898
>>1028033 (OP)
Какого хуя uint8_t выводится в std::cout как символ?
Как вывести эти значения как байты в 10-чной или 16-ричной системе?
#340 #1033906
>>1033898
uint8_t a = 65;
cout << +a;
#341 #1033909
>>1033819
как? я так понимаю мне нужно реимплементнуть paintevent, но не у qtabbar ведь? или нужно создать новый виджет, потом реимплементнуть addTab и каким-то образом пририсовывать полоску выделения снизу?
#342 #1033912
>>1033898

>Какого хуя uint8_t выводится в std::cout как символ?


Возможное объяснение тебя не устроит. uint8_t - это typedef char uint8_t на большинстве архитектур, а char - это тип для букв в Си.
Мне бы тоже хотелось, чтобы uint8_t выводился числом, а char - символом.
6 Кб, 356x249
#343 #1033913
Поясните в чем смысл подобной декларации класса Hash внутри пространство имён Foo::Bar?

Чтобы не нужно было инклудить хедер? Программа потом линкуется с либой, где этот класс определен. Очень часто в файлах, которые я рассматриваю классы декларируется таким образом, но никак не используются. Т.е. если сделать Ctrl+F по файлу, то слово Hash там встретится 1 раз -- только в самой декларации. В таком случае можно эту декларацию удалить?
sage #344 #1033921
>>1033912

>uint8_t - это typedef char uint8_t


Только unsigned char :)
#345 #1033939
Forward declaration; Класс в неймспейсе, если его задекларировать не его, он не отрезолвится
#346 #1033940
#347 #1034089
Подскажите сайт с задачками, чтобы подтянуть скилл в C++
#348 #1034133
>>1028315
NetBeans+gcc.
#349 #1034143
>>1034089
Напиши кроссплатформенный (windows xp-7-8-10(metro-интерфейс тоже) x32x64, linux, MacOS) ежедневник с почтовым клиентом и интеграцией с мобильными (ios, Android 4 и выше, WP) приложениями (их тоже напиши)
#350 #1034153
>>1033939

> Класс в неймспейсе, если его задекларировать не его, он не отрезолвится


Я один нихуя не понял?
#351 #1034154
>>1034143

> (windows xp


Зачем писать под трупов?
#352 #1034164
>>1034154
Просто, чтоб заебаться.
# OP #353 #1034214
>>1034154
В ентерпрайзе до сих пор ms dos есть, а на вин хр еще очень много машин осталось.
sage #354 #1034229
>>1034214
Там очень не хватает ежедневника с почтовым клиентом.
#355 #1034262
Вкатываюсь в С++.
Есть какие-то охуенные задачки и манулалы к прочтению и изучению?
#356 #1034273
>>1034153

>> Я один нихуя не понял?


да
sage #357 #1034279
>>1034262
Стандарт — охуенный.
#358 #1034296
>>1034229

>подтянуть скилл

#359 #1034317
>>1031961
Для флага -std=c++xx в cmake используют другое. set(CMAKE_CXX_VERSION xx), насколько помню
#360 #1034318
>>1034317
set(CMAKE_CXX_STANDARD xx)
hotfix
#361 #1034320
>>1034296
Языком вдоль уздечки подтяни.
512x512
#362 #1034333
Ребзя, го попердолим чонибуть))
Браузер свой запилим или джаваскрипт sasach_version ))
Что мы ради хеловротов учим си пюспюс
#363 #1034334

>Если я в объявлении T1(const T1& n) пропущу const, это существенно? Компилятор сам в тривиальных случаях добавляет const, inline и прочее или надо каждый раз писать всякие f(const char* const str) const {...}, даже для функции на одну строчку, лол?


Всё ещё очень интересно и любопытно.

>>1031990
Понятно местами, благодарю.
2. Кстати говоря, я подобрал. Можно использовать h.T1::a и h.T2::a для получения доступа к "а" предка и потомка. И как я сразу не догадался. Конечно, всё ещё не совсем понятно, зачем мне такой синтаксис.
#364 #1034343
>>1034333

>Браузер свой запилим


Форчонг/г пилит, можешь с ними поделать.
>>1034334

>f(const char* const str) const {...}


Второй конст не нужен, третий конст - только для методов конст-классов. Что ты порешь? Это консты с тремя разными ролями.

>это существенно?


Всего лишь не сможешь передавать часть констант, делов-то.
# OP #365 #1034361
>>1034229
Представляешь себе, на msdos действительно нужен почтовый клиент, потому что без него сложно в энтерпрайзе.
#366 #1034365
>>1034361

>msdos действительно нужен почтовый клиент


Кстати, неплохая идея! Почтовый клиент с календарём под мсдос на псевдографике.
#367 #1034368
Вопрос скорее не про C++, а про ООП в целом.

Есть ли какой-то традиционный синтакс/способ для обозначения членов класса с разными модификаторами доступа public, private, protected в документации? Цветом или еще как-то (звездочками, крестиками, плюсиками)?

Какой-нибудь стандартный стиль?
#368 #1034370
>>1034368
Прайвет часто ообозначают замком в ИДЕ, например. Про протектед не знаю.
#369 #1034371
>>1034361
msdos в энтерпрайзе это какое-нибудь управление станком с ЧПУ.
#370 #1034373
>>1034368
Ищу в гугле. Один ваш запрос — 50$. Первый бесплатно.
https://www.google.com/search?q=uml+protected
4 Кб, 440x156
#371 #1034415
В чем смысл создания таких классов? Когда такое бывает нужно?
#372 #1034424
>>1034415
Каких "таких"? Уточни вопрос.
#373 #1034426
>>1034415
Когда программист ебланит и пишет костыли. Виртуальный деструктор может быть нужен только в базовом виртуальном классе, но явно не в унаследованном интерфейсе.
63 Кб, 711x461
#374 #1034440
>>1034424

>Каких "таких"? Уточни вопрос.


Таких ебанутых, как на пике. Я до сих пор не понял зачем все это нужно. Класс Foo потом еще раз наследуется в Foo2, который в свою очередь наследуется в Foo3.
9 Кб, 366x406
#375 #1034494
Почему подобный класс (у которого член его же типа) не создает ошибки ни во время компиляции ни во время работы программы?
#376 #1034498
>>1034494
http://en.cppreference.com/w/cpp/language/static
The declaration inside the class body is not a definition and may declare the member to be of incomplete type (other than void), including the type in which the member is declared
#377 #1034512
я правильно понимаю, что для сложного бота в игре нужно писать распознаватель картинок, т.к. доступа к апи игры нет, тока к изображению?
#378 #1034526
>>1034512
Что за игра? Лучше бы в gd спрашивал. Хотя там тоже нет смысла.
Нужны скриншоты и насколько сложные штуки должен делать бот.
Думается, с таким подходом оно не сможет в реальном времени работать, а если и сможет, слишком это ненадёжно и кучи нерегулярных ошибок будут. Только миникарту и другие детали интерфейса потрогать есть смысл, ну или если игра двухмерная, конечно.
#379 #1034540
Аноны подскажите норм компилятор под дроид да я знаю это извращенство для изучение сабжа
#380 #1034542
>>1034526
А если игра трехмерная? Как вообще тогда делают ботов для 3Д игор? Я именно про сложных ботов, способных самостоятельно гасить мобов, распознавать, умер ли моб, где умер, есть ли личные сообщения и приглосы. Про данжи пока не говорю.
#382 #1034552
>>1034542
Никак без АПИ не сделаешь. Все полноценные боты пишутся авторами игры.
#383 #1034556
>>1034440
Я думаю нет тут глубинного смысла. Тем более с такой иерархией наследования. Просто кто надергал кусков из гугла\SO и попытался слепить то, что скомпилится.
#384 #1034656
>>1034542
Снифаешь трафик между клиентом и сервером, пытаешься понять протокол.
#385 #1034775
>>1034512
Сложный бот читает память процесса игры
sage #386 #1034884
>>1034542

Читаешь память, перехватываешь функции в самой игре (обмен сетевыми данными и тд)

Для этого тебе потребуетсяя Winapi и скилл. Функции вроде WriteProcessMemory/ReadProcessMemory и тд.

Перехват пакетов на уровне Winsock (Send/Recv) и тд.

Это дело не легкое но интересное. Нужно хоть чуток АСМ-а еще знать.
#387 #1034981
Я понять не могу, qvector что, не умеет хранить объекты без конструктора копирования?
#388 #1034996
анон что за хуйня? двое суток уже разобраться не могу.
#389 #1034997
>>1034996
Пэ.Сэ после консоли просто вылетает и всё.
#390 #1035008
>>1034997
Может ты не тот проект запускаешь?
#391 #1035010
>>1035008
а как тот?
#392 #1035012
>>1035010
Ну а че за хуйня у тебя ConsoleApplication3.cpp не ебу даже. В списке проектов смотри, жирным выделен активный. Может ты вхуячил гору проектов и выбрал пустой для запуска, а изменяешь совсем другой.
4 Кб, 480x205
#393 #1035014
>>1035012
новая хуйня
#394 #1035016
>>1035014
Ты олигофрен?!
#395 #1035018
>>1035016
настолько, насколько это возможно. В чем моя ошибка?
#396 #1035023
>>1035014
Андрей, иди нахуй
#397 #1035024
>>1035023
ну чего ты
#398 #1035113
>>1034981
По-другому автоматическое расширение вектора ты не организуешь. Более того, std::vector тоже не может без констр. копирования (если я правильно помню).
#399 #1035147
Объясните на пальцах, как работают ядра процессора и их потоки. Какими единицами оперируют ядра и потоки, - процессами?

Если php или java приложение работает в одном процессе, оно может выполняться на нескольких ядрах и потоках? Есть ли смысл брать процессор 6 ядер (12 потоков), вместо 4(4)?
#400 #1035150
>>1035147
Ядро - это физическая единица, поток - логическая. С помощью разных ухищрений разработчики могут упихать команды в одно ядро так, чтобы оно исполняло команды в два потока быстрее, чем в один (но в каждом потоке будет медленнее).
Обычно делают два потока на ядро, в Ксеон Фи 6 потоков на ядро.

>Если php или java приложение


Пошёл нахуй. Тут мёдом намазано? Как вы находите именно этот тред для своих уёбищных вопросов?
#401 #1035162
>>1035150
Все что ты написал понятно и ребенку, не нужно мне пересказывать вики. Чем оперируют ядра и потоки ты не назвал, и можно ли параллелить один процесс на несколько ядер и потоков, тоже не ответил.
#402 #1035189
>>1035162
Процесс может иметь несколько потоков, почти все ОС разносят потоки по логическим ядрам. Если твоё говно работает в несколько потоков (ГЦ, например, в отдельном потоке или внутри программы есть создание потоков), то смысл есть.
#403 #1035199
>>1035189
Спасибо за вменяемый ответ. Получается с ядрами работает ОС, с потоками ядер процессор уже сам? Собственно выбираю процессор между i5-7600K и Ryzen 5 1600. В райзене 6 ядер и 12 потоков, против 4 и 4 у интел. Поэтому возникла дилемма выбора, смогут ли большинство программ использовать много ядер, или же стоит выбрать высокую производительность в однопоточных задачах.
#404 #1035203
>>1035199
Либо пиши про свои ядра в контексте программирования на c++, либо пиздуй в /hw.
#405 #1035206
>>1035203
Там никто не шарит. Поэтому здесь спрашиваю. У меня есть путаница в голове, потоки на уровне ядра, потоки на уровне ОС, процессы, threads, fibers, actors, поток выполнения,конкурентность, параллелизм, и т.п, все это смешалось у меня в голове. Еще интерпретаторы и виртуальные машины, у них свои единицы выполнения, они же тоже как-то ложатся на процессы и потоки ОС.
#406 #1035210
>>1035206
А с чего ты взял что здесь "шарят"? Мы тут сремся за ide и не можем компилять хелоуворлды. Тут тебе спрашивать не чего.
# OP #407 #1035230
Когда стехи?
#408 #1035232
>>1035210
Печально всё это. Никто не пытается понять общую картину получается. Джависты пишут под JMV и не знают, что происходит вне её. Кто пишет на C/C++, знает только как что работает в контексте C/C++. Джаваскриптеры вообще не имеют понятия о многих вещах, потому что этого нет в языке и в V8. Рубисты не знают о конкурентности и параллелизме ровным счетом ничего. На винде свои абстракции, на линуксе свои. У всех свои абстракции, и их так много, что можно ногу сломать.
#409 #1035233
>>1035206
Таненбаума читай иди, хрюря пампукская
#410 #1035237
>>1035232
А у тебя нет выбора, умник. Рулить тредами все равно будет менеджер ОС. И выделять процессорное время им, когда посчитает нужным.
#411 #1035239
Кто-нибудь подскажите, что я делаю не так?
#412 #1035240
>>1035239
Если переместить реализацию конструктора Bar в bar.h, то всё компилируется
#413 #1035241
>>1035239
Думаю, Bar пытается после своего деструктора выбвадь деструктор Foo, но не может, так как ты его не реализовал.
#414 #1035244
>>1035239
У виртуального деструктора в любом случае должно быть тело, даже если он чисто виртуальный.
#416 #1035248
>>1035247
Стандарт запрещает тело после = 0, выноси в .cpp.
#417 #1035249
>>1035247
лол.
#418 #1035250
>>1035248
А не лучше объявление прям там сделать?
типа Foo::~Foo() {}
#419 #1035253
>>1035250
или =0 или { }. Стандарт носит не рекомендательный а обязательный характер.
#420 #1035255
>>1035247
https://habrahabr.ru/post/51398/

>>1035253
Вне класса же. Я хедер имел ввиду

class Sample {
public:
virtual ~Sample()=0;
};

Sample::~Sample() {
}
#421 #1035257
>>1035248
Пиздец какой-то. Теперь новая срань пикрил 3.
Студия без проблем жрёт варианты и без тела деструктора и с телом после = 0;

Но тогда ещё вопрос
#422 #1035258
>>1035257
Но тогда ещё вопрос
быстрофикс
#423 #1035259
>>1035257
В глаза ебусь, у Bar забыл конструктор.
Всё работает, благодарю
#424 #1035261
>>1035257
Может ты забыл реализовать деструктор Bar?
#425 #1035262
>>1035259
Деструктор
опять быстрофикс
#426 #1035263
>>1035255
Нельзя, odr поломается. Объектники компилятся независимо, гарды на хедер не помогут. Линкер сообщит об одинаковых символах.

>>1035257
Студия имеет воз и маленькую тележку послаблений в плане стандарта, особенно по референсам и шаблонам. Чтобы их отключить раньше флажок был -Ze
31 Кб, 1131x860
#427 #1035267
Так, а почему тогда если всё вынести в хидеры он компилирует без тела деструктора для Foo?
#428 #1035269
>>1035232
>>1035206
Берёшь Process Explorer или другую тулзу для твоей ОС и смотришь активность потоков. Если у тебя один на 100% одного ядра - жопа. Если у тебя много с сопоставимой загрузкой - уже лучше. Берёшь свой php, java и запускаешь и пробуешь.
>>1035239
Ты запрещаешь существование деструктора для базового класса и потом другой класс от него наследует. Такого быть не может, деструктор должен быть всегда.
http://ideone.com/5wjvrN
Вот сообщения от GCC.
#429 #1035270
>>1035267
А он используется?
#430 #1035273
>>1035270
А, действительно. Совсем забыл
Всё ещё раз благодарю за помощь
#431 #1035274
>>1035269

>Ты запрещаешь существование деструктора для базового класса


Нет, это просто чисто виртуальный деструктор. Его нужно реализовать в наследнике, но это не значит, что его вообще нет.
#432 #1035275
>>1035267
Можешь считать это багом студии.
#433 #1035279
>>1035273
Обращайс.
#434 #1035282
>>1035275
Блет, это не студия.
>>1035274
>>1035273
>>1035270
Извиняюсь, но теперь я не понял. То, что он должен быть определён в наследнике - понятно, но почему перенос КОНСТРУКТОРА в другую единицу компиляции что-то меняет?
#435 #1035283
>>1035282
Перенос конструктора ни на что не повлиял.
#437 #1035287
>>1035286
1. Судя по всему у класса было 0 единиц трансляции (см. 2).
2.
Во втором случае была ошибка: автор перестал использовать класс foo, а отслеживание корректности неиспользуемых функций не требующих диагностики (т.е. не завязанных на инстанциацию) - оставлены на откуп реализации компилятора. MinGW/GCC во многих случаях не считают это ошибкой.
#438 #1035292
>>1035287
Правда ли то, что без реализации деструкторов всех классов в иерархии нельзя использовать класс (т.е. определить его)?
#439 #1035294
#440 #1035295
#441 #1035440
Сап анон. Есть ли тут, кто занимается open source проектами? Какой уровень знании требуется для участия в них?
Веб макака, которая перекатывается в плюсы.
sage #442 #1035449
>>1035440

> Какой уровень знании требуется для участия в них?


Выше твоего, не умеющая гуглить амеба.
#443 #1035450
>>1035440
Для участия в opensource-проектах (дефис, блядь, это русский язык) нужны разные уровни знаний. Во многих продуктах велика доля кода уровня C. Если ты никогда в жизни этим не интересовался, ты сломаешь лицом сто граблей и прочитаешь несколько книг перед тем, как начнёшь писать надёжный код.
#444 #1035570
Блять, хотел взять QT и пилить свою недостратежку, не осилил даже настройку Креатора. Пойду теперь пытаться для обычных Си найти аналогичную либу. Не на винапи же писать, в самом-то деле. Выглядеть будет хуево
#445 #1035573
>>1035570
Че за хуйню ты выдумал? Возьми юнити или другое говно для умственно отсталых.
#446 #1035576
>>1035573
Я слишком отсталый, чтобы осилить C#.
#447 #1035578
>>1035570
Нахуй писать недостратежку на Qt? Возьми sdl, sfml, что угодно.
#448 #1035580
>>1035578
Есть подозрение, что я не осилю реализацию интерфейса. Но вариант хороший, да.
#449 #1035581
>>1035578
Лучше Python+Kivy
43 Кб, 316x474
#450 #1035583
>>1035580
Для тебя даже книжку написали, про недостратежки.
#451 #1035598
>>1035576
Смочь в ресты/си и не смочь в шарп? Это тип толстота такая?
#452 #1035643
Чтобы инициализировать контекст тебе достаточно будет GLFW и GLEW в нему в придачу (хотя последнее не понадобится, если ты некрофил), для аудио используй OpenAL, например. API у них схожий, насколько я понимаю, так что это не вызовет бугурта при переходе от одного к другому (а если ты белый человек, то вместо того, чтобы делать постоянные вызовы:
glGenTextures
glBindTexture
glTexStorage2D
glTexImage2D
...
ты завернешь в какие-нибудь свои вызовы), ну и там еще дохуя либ потянется.
Действительно, проще использовать Qt.
#453 #1035644
>>1035583

>нет русека

#454 #1035645
>>1035643

>ты завернешь в какие-нибудь свои вызовы


По хорошему, под это дело нужно свои менеджеры писать, а для этого нужно представлять как будет выглядеть архитектура движка. А это уже довольно сложно.
#455 #1035655
>>1035644
Есть же.
#456 #1035669
>>1035645
В этом то и дело. Если начинать проектировать приложение без представления хотя бы общего вида архитектуры, в конечном счете все это выльется в дикий рефакторинг и расхочется работать дальше или все будет переделываться заново.
2 Кб, 464x78
#457 #1035779
Что означают такие функции? У которых в аргументах есть тип, но нет имени переменной?
#458 #1035780
>>1035779
Переменная есть, только её имя не называется в предварительном объявлении. Означают то же самое, что и те, в которых есть названия параметров.
#459 #1035783
>>1035780
Спасибо!
#460 #1035873
>>1035780
Зачем в функцию передавать аргумент, если к нему нельзя обратиться?
#461 #1035876
>>1035873
Почему нельзя? К нему обратиться можно, просто это предварительное объявление (forward declaration), а сама функция находится где-то далеко в другом месте, и, возможно, к ней даже нет исходников, и она в какой-нибудь библиотеке, скажем. А для обращения к ней имена параметров знать не нужно, нужно знать только их типы.
sage #462 #1035877
>>1035779

>Что означают такие функции? У которых в аргументах есть тип, но нет имени переменной?


Ещё и тела нет. Совсем ппц. >_<
sage #463 #1035878
>>1035877
Жил один рыжий человек, у которого не было глаз и ушей. У него не было и волос, так что рыжим его называли условно.
Говорить он не мог, так как у него не было рта. Носа тоже у него не было.
У него не было даже рук и ног. И живота у него не было, и спины у него не было, и хребта у него не было, и никаких внутренностей у него не было. Ничего не было! Так что не понятно, о ком идет речь.
Уж лучше мы о нём не будем больше говорить.
#464 #1035879
>>1035877
Это скомпилируется, но не слинкуется.
#465 #1035987
>>1035779
Это прототип функции append, который получает в качестве аргумента адрес Foo
#466 #1035994
#467 #1036002
>>1028315
Atom и миллион плагинов для разработки, сборки, дебага и прочей хуйни
#468 #1036015
>>1030251
пишешь простецкий make-файл и всё
по сути каждый cpp файл компилируется в объектные файлы, потом эти объектные файлы уже линкуются в исполняемый файл
#469 #1036021
>>1033256
Как ты ее закомпилил? А то я что-то гайды читал-читал, глядел-глядел, нихрена не понял. Все гайды какие-то древние, какие-то еще на 4 версию, какие-то на 5 с начала. Теперь надо качнуть все ихсодники самому с их сайта, куда-то, блядь, распковать, чего-то делать, ничего не пойму.
#470 #1036022
>>1033256
Сильно ли, кстати, размер исполняемого файла в конце стал меньше, чем было бы обычной Qt - когда файл исполняется только c десятками DLL
#471 #1036087
>>1036021
К стыду, не я её не билдил, кутя корпоративная, так что работаю стем что выдали.
>>1036022
Меньше при статической линковке? Это как? Наоборот размер увеличился. У меня, с ядром, виджетами, сетью + платформенные либы экзешник весит 40-50 метров.
#472 #1036088
>>1036087

>Меньше при статической линковке? Это как?


Размер DLL-либ просуммировал?
#473 #1036181
>>1028033 (OP)
В крудошлепной программе у меня есть классы Employee, Manager и Sales, на которые я отображаю таблицы БД. При создании экземпляров этих классов в фабрике мне надо убедиться, что сотрудник с данным id имеет определенную должность, для этого я делаю выборку position из БД для id сотрудника и сравниваю ее со строкой, в которой хранится название позиции. А где мне хранить саму эту строку? В constexpr поле классов сотрудников?
#474 #1036186
>>1036181
Если эта строка никогда-никогда не будет меняться - да. Причём твоём случае разницы между constexpr и const нет.
#475 #1036243
>>1036181
В constexpr ты не можешь создать объект, данные которого аллоцируются в реальном времени, std::string к таким относится. Так что твой constexpr мало того, что будет бестолковым, так еще и вывалит ошибок при компиляции. Более того, так как должности получаются выборкой из базы данных (я так понимаю, они нихуя не захардкожены), то constexpr работать не будет, потому что это ключевое слово для оптимизаций времени компиляции, когда часть работы по определению значений можно доверить компилятору.
#476 #1036249
>>1036181
На пальцах:
-- constexpr значит, что ты знаешь значение переменной во время компиляции, она литерал, а литералы ты менять не можешь, что похоже на const -- отсюда путаница.
-- const означает немутабельность, неизменяемость куска памяти после инициализации, но ты можешь и не знать что там будет лежать во время компиляции.
#477 #1036250
>>1035987
Нет.
#478 #1036263
>>1035876
Я думал что объявление должно быть 1 в 1 как в реализации, включая имена аргументов. Спасибо анончик.
#479 #1036267
>>1036088
Вопрос же был именно про исполняемый файл)
Проверил на текущей проге:
Статик: 34.6 МБ.
Динамик: 40.0 МБ (windeployqt.exe), 32.3 МБ (windeployqt.exe --release --no-translations --no-quick-import --no-system-d3d-compiler --no-compiler-runtime --no-angle) и 31.9 МБ (вручную, минимум на моей машине).
Как по мне, так несущественные различия.
#480 #1036270
>>1028033 (OP)
Куда ОП-стихописец делся?
#481 #1036275
Умеет ли cmake создавать Makefile сразу с двумя таргетами - Debug и Release, или каждый раз нужно всё вычищать и заново пересобирать с -DCMAKE_BUILD_TYPE=TARGET?
#482 #1036277
>>1036267
Ты инклудишь модули целиком? Компилятор выбрасывает неисользуемые функции? (не помню, какой параметр этим управляет)
#483 #1036305
>>1036250
Я пытался, лол. А что это тогда?
#484 #1036311
>>1036305
Ты перепутал указатель (адрес?) со ссылкой.
#485 #1036313
>>1028033 (OP)
На Coursera появился годный, как по мне, курс от Яндекса и МФТИ для вкатывающихся, наверное стоит добавить в шапку
#486 #1036341
>>1036277
Да, инклюжу целиком, в прекомпайлд хидер, компилер выбрасывает неиспользуемые функции По крайней мере флаг стоит. Когда убираю размер на 4 МБ увеличивается
#487 #1036346
Идиотский вопрос, но. Есть ли оврехед на каст сырых указателей?
Например есть uint8_tptr и несколько вложенных циклов, где внутри шняга вроде ((uint32_t)(ptr))[j]. Должен я кастануть его до циклов или можно не париться, лишнего ассемблерного кода сгенерено не будет?
#488 #1036351
>>1036346
звездочки проебались
#489 #1036364
В чём смысл сигналов в QT если можно использовать события? Они, к тому же, еще и более быстрые, нсколько я понял.
#490 #1036366
>>1036364
Передавать данные.
#491 #1036371
>>1036366
Ок! Чёт я задвачевался.
sage #492 #1036388
>>1036311
Сейчас тут напишут про то, что ссылка это просто разыменованный указатель (или ещё какую подобную чушь) и начнётся срач.
#493 #1036397
>>1036346

>лишнего ассемблерного кода сгенерено не будет?


Не должно. Но сама идея херовая, очень легко можно вылететь за границу массива. И с переносимостью косяк, на некоторых платформах (MIPS например) многобайтовые значения должны лежать только с определенным выравниванием.
#494 #1036477
>>1036397
Насколько херовая? Допустим мне нужна структура из данных, состав которой неизвестен на этапе компиляции. Как вообще подобная задача решается на плюсах?
sage #495 #1036479
>>1036477

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



Конечно же созданием программы, код которой не известен на этапе компиляции.
#496 #1036486
>>1036477
[bold]STD::VARIANT
@
STD::ANY[/bold]
#497 #1036523
Как вы живете с тем, что обосцаная жава быстрее вашего бегемота?
#498 #1036527
>>1036523
Смогли создать тест в котором джава обогнала кресты? Тащи.
#499 #1036620
>>1035779
Это прототип функции, в прототипах функций можно не писать имена формальных аргументов, так как у них локальная область видимости, никто о них не знает за границами блока, в прототипах граница блока заканчивается за скобками прототипа.
Когда будешь писать определение функции имя формального аргумента понадобится, в прототипе можно забить.
В данном случае передается формальный аргумент ссылка.
#501 #1037030
>>1036527

>Смогли создать тест в котором джава обогнала кресты?


Это не возможно, т.к. в С++ всегда можно начать использовать только сабсет си + инлайн ассемблер и подебить в любом тесте.
#502 #1041488
>>1029001
Зачем нужно что-то кроме стандартной библиотеки для мультитрединга и Boost для сети, файлов и всего остального? Буст же отличная обёртка и над сетевыми функциями, и над прочим.

мимонуб
#503 #1043543
просто бамп
#505 #1047132
>>1047131
Чяднят?
Тред утонул или удален.
Это копия, сохраненная 28 августа 2017 года.

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

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