Сохранен 507
https://2ch.hk/pr/res/607053.html
Прошлые домены больше не функционируют, используйте адрес ARHIVACH.HK.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Оффициальный™ традиционный® C++ тред #16

 Аноним 18/12/15 Птн 23:32:09 #1 №607053 
14504707292300.png
Взгляни! Взгляни, как красота чужда
Рабам крестов, что слепо уповая,
Стремятся байтоебствовать всегда:

Здесь жаждут скоростей, не признавая,
Что кто-то может прочитать их код,
И уступить удобству не желают.

О боги! Столь несчастен будет тот,
Кто обречен тестировать ту массу,
Что в ста коленах Бьерна проклянет.

А свыкнувшись, сам станет пидорасом.


TL;DR Читаешь https://goo.gl/kVaela , делаешь примеры и суешь в http://ideone.com , ошибки копипастишь в гугл, непонятное ищешь в предыдущих тредах, спрашиваешь в этом треде, если не нашел. Если тебя послали на хуй или не ответили, то ты спросил платину, читай предыдущие треды внимательнее. И прочитай FAQ, расположенный ниже, в нем много полезного.

Унаследованная памятка:

Вопросу по синтаксису идут на хуй.
Лабы идут на хуй.
"Как мне сделать Х на чистых крестах без библиотек" идут на хуй.
Все идут на хуй.
Хейтер сосет члены на пару со своей мамашей.

Тег [code] работает через жабаскрипт-костыль: https://github.com/ololoepepe/MakabaCode

Старший брат: >>579550 (OP)
Предыдущий: >>597189 (OP)

FAQ:

Q: Почему стоит использовать именно C++?
A: Ни один язык не идеален, но по совокупности киллер-фич C++ оставляет все остальные языки позади. Вот основные три:
+ C++ действительно быстрый - по скорости они вместе с C с большим отрывом уделывают любой другой язык. Замедление относительно C находится в районе 0-20% а в ряде случаев C++ оказывается даже быстрее, причем проявляется только при использовании высокоуровневых конструкций (в крестах ты никогда не платишь за то, чего не используешь).
+ C++ один из наиболее выразительных и мощных языков, позволяющий использовать большинство существующих парадигм. Его философия построена на минимальном ограничении программиста в выборе методов и инструментов простреливания ноги решения задачи.
+ C++ по-настоящему популярен. На нем написаны десятки тысяч приложений и миллиарды строк кода, о нем написаны сотни книг, он до мельчайших подробностей документирован и стандартизован. Используя C++, ты никогда не останешься без работы или поддержки комьюнити.

Q: Но он же давно устарел!
A: Современный C++ весьма далек от языка, которым он был в 1998 году. В настоящее время кресты живее всех живых, их развитие движется семимильными шагами, а новые стандарты принимаются каждые три года, сохраняя при этом полную обратную совместимость с предыдущими. К сожалению, из-за обилия некачественной литературы по крестам, в которой игнорируются новые средства языка, бытует мнение о его "несовременности".

Q: Сейчас все пишут на %languagename, а кресты сосут у него!
A: Нужно понимать, что используемый язык должен соответствовать поставленной задаче. Никому не придет в голову писать на C++ скрипты или веб-фронтенд, но лишь немногие языки могут соперничать с ним по разнообразию решаемых задач.

Q: Окей, я решил вкатиться. Какие же книги мне читать?
A: Специально для тебя аноны /pr собрали уникальную коллекцию отборной литературы по крестам. Только лучшие книги, последние издания, без хуев! Выбирай категорию и обмазывайся:

Для нюфань:
Учебники для начинающих. Все примерно одинаковой годноты, читать имеет смысл только какой-нибудь один, который больше приглянется.
Стэнли Липпман, Жози Лажойе и Барбара Му - Язык программирования C++ (2014) - https://goo.gl/kVaela
Стивен Прата - Язык программирования C++ (2012) - https://goo.gl/z7kA8u
Бьерн Страуструп - Программирование. Принципы и практика использования C++ (2011) - https://goo.gl/nAFUXa

Герберт Шилдт - C++. Базовый курс (2010) - https://goo.gl/qMLAFl
Роберт Лафоре - Объектно-ориентированное программирование в C++ (2004) - https://goo.gl/QvjR6x

Учимся не писать говнокод:
Книги про основные подводные камни для тех, кто осилил предыдущий пункт. Следует пролистать все.
Скотт Мейерс - Эффективное использование C++ (2005) - https://goo.gl/wsDXGz
Скотт Мейерс - Наиболее эффективное использование C++ (1996) - https://goo.gl/tHa0tO
Скотт Мейерс - Эффективный и современный C++ (2015) - https://goo.gl/Im8VYQ
Скотт Мейерс - Эффективное использование STL (2002) - https://goo.gl/QtS8Dc
Герб Саттер и Андрей Александреску - Стандарты программирования на языке C++ (2005) - https://goo.gl/Cpk4YR

Наиболее детальные описания языка:
Бьерн Страуструп - Язык программирования C++ (на ангельском) (2013) - https://goo.gl/XkAiOX
Бьерн Страуструп - Язык программирования C++ (2010) - https://goo.gl/iZBDiV
Стандарт C++14 (на ангельском) - https://github.com/cplusplus/draft/raw/master/papers/n4140.pdf
Последняя на данный момент версия черновика стандарта C++17 (на ангельском) - http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4567.pdf

Тонкости языка (для гурманов):
Андрей Александреску - Современное проектирование на C++ (2002) - https://goo.gl/e1V5BC
Герб Саттер - Решение сложных задач на C++ (2002) - https://goo.gl/iWaa6S
Герб Саттер - Новые сложные задачи на C++ (2004) - https://goo.gl/4nn512

Также для легкого чтения подойдет книжка c историей создания C++:
Бьерн Страуструп - Дизайн и эволюция C++ (1994) - https://goo.gl/FqbPwo

Отдельные аспекты:
Читать по необходимости.
Энтони Уильямс - Параллельное программирование на C++ в действии (2012) - https://goo.gl/qJfBkD
Николаи Джоссатис - C++. Стандартная библиотека (2012) - https://goo.gl/PEyiMH
Дэвид Абрахамс, Алексей Гуртовой - Шаблонное метапрограммирование на C++ (2009) - https://goo.gl/isSt7j
Дэвид Вандевурд, Николаи Джоссатис - Шаблоны C++. Справочник разработчика (2003) - https://goo.gl/0M4NpG
Роберт Седжвик - Фундаментальные алгоритмы на C++ (2001) - https://goo.gl/4jwxSl (части 1-4), https://goo.gl/yDuQgG (часть 5)

Q: Хуле тут так сложно? Я открыл учебник, там какой-то ад!
A: Попробуй учебники, изданные после 2011 года. Фичи последних стандартов не только добавили выразительности, но и серьезно упростили жизнь разработчиков. Теперь программировать на C++ стало проще, чем когда-либо! Это не отменяет необходимости прочитать несколько серьезных книжек, чтобы написать на нем что-то годное. Тем не менее, да, C++ это по-настоящему сложный язык. Его никак не получится выучить за 21 день, ну вот совсем никак. Более того, крайне нежелательно пытаться изучить его первым, если ты раньше вообще не программировал. С большой вероятностью это приведет к разочарованию и потере времени. Гораздо лучше будет начать с другого языка и базовых вещей алгоритмы, архитектура пека, операционные системы, а уже потом вернуться к крестам.

Q: Ты охуел? В этих книгах по тысяче страниц! Хочу коротких статей.
A: Вот тебе блоги, факи, референсы и всякое такое:

Годный блог, в котором все просто и понятно тян не нужны кококок борщ - http://alenacpp.blogspot.ru
Блог с хорошо расписанными фичами новых стандартов - http://scrutator.me
Краткие описания библиотечных функций и контейнеров - http://ru.cppreference.com/w/ или более подробно на ангельском http://en.cppreference.com/w
Блог Герба Саттера (на ангельском) - http://herbsutter.com
Блог Скотта Мейерса (на ангельском) - http://scottmeyers.blogspot.ru
Куча других блогов (на ангельском) - https://www.quora.com/What-are-the-best-blogs-on-C++
Большой FAQ по C++ (на ангельском) - https://isocpp.org/wiki/faq

Q: Я не умею читать.
A: Можешь посмотреть какой-нибудь онлайн-курс:

Видеокурс на тытрубе - https://www.youtube.com/watch?v=atVgLRzl3rI
Еще один - https://youtube.com/watch?v=MOpF5lk3cLY
Среди прочих есть несколько курсов по C++ - https://stepic.org

И еще есть вот такое, если проникся:
Видео с CppCon (на ангельском) - https://youtube.com/user/CppCon/videos

Q: Я готов начать погроммировать! Куда мне писать код?
A: Под шиндошс удобно использовать IDE Microsoft™ Visual Studio®. Базовую версию (2015 Community) можно бесплатно скачать отсюда: https://goo.gl/qgAAc6 (русская версия) или https://goo.gl/WIPW9L (ангельская версия). Чтобы начать писать код, нужно запустить Visual Studio, кликнуть "Файл - Создать - Проект - Пустой проект", после создания кликнуть слева правой кнопкой мыши по пункту "Файлы исходного кода", выбрать "Добавить - Создать элемент - Файл C++". Свои хэллоуворлды писать в этот файл, в дальнейшем можно добавить другие файлы и хедеры. Чтобы скомпилировать и запустить проект, нужно нажать "Сборка - Собрать решение", а затем "Отладка - Запуск без отладки".

Под *nix, как правило, уже предустановлен компилятор gcc (если нет, используй sudo aptitude install gcc), так что достаточно сохранить хэллоуворлд, набранный в текстовом редакторе, и выполнить g++ helloworld.cpp и ./a.out. Но удобнее установить какую-нибудь IDE, например, весьма удобную CodeLite (sudo aptitude install codelite codelite-plugins), и работать в ней. Ее также можно использовать и в шиндошс, но тогда сперва придется установить MinGW (http://mingw.org).

Еще у нас есть IDE, призванная похоронить Visual Studio пока не особо получается. Она стоит денег, но можно украсть почти не протухшую версию на торрентах или получить бесплатную лицензию по скану студбилета, если ты студент. Удобные свистелки и перделки присутствуют. Тормоза и баги присутствуют. Кросплатформенность присутствует - https://www.jetbrains.com/clion

Можно также не устанавливать ничего, а запускать свои хэллоуворлды на http://ideone.com, выбрав в левом нижнем углу язык C++14.

Q: Не буду я все делать сам! Подавайте сюда софт, который все сделает за меня и подотрет мне жопу!
A: Без проблем:

Статический анализатор, который умеет находить в коде ошибки и неоптимальные места. Швабодный. Есть плагин для Visual Studio - http://cppcheck.sourceforge.net
Детектор утечек для Visual Studio. Предельно прост в прикручивании - https://vld.codeplex.com
Гугловские утилиты для контроля корректности кода - https://github.com/google/sanitizers
Гугловский фреймворк для автоматизации тестирования - https://code.google.com/p/googlemock

Q: Мне надоело писать велосипеды, какие у вас тут популярные либы?
Q: Нужно зделать %монструозная_хуйня_нейм, но я обосрался от одной мысли о написании ее с нуля, что же делать?
A: Гляди сюда:

boost

Бесспорно, это самый популярный набор C++-библиотек. Не будет лукавством сказать, что C++ во многом обязан популярностью именно ему. Воистину всеобъемлющий, boost способен удовлетворить твои самые скотские фантазии. В нем есть практически все - от математических функций до сетевых компонент, от инструментов тестирования до динамических типов. Функции для работы с твоей мамашей там тоже есть. Разумеется, все это швабодное и работает на любых платформах. И да, boost является своеобразным инкубатором хороших библиотек, поэтому наиболее удачные из них с большой вероятностью можно будет увидеть после принятия очередного стандарта уже как часть стандартной библиотеки.

Недостатком boost можно считать его размер - более 300 мегабайт. Большинство компонент boost не являются независимыми, и попытка использовать один единственный контейнер обернется фактическим подключением 2/3 всего присутствующего в комплекте. Таким образом, если boost не будет использоваться на полную, лучше юзать другие, более специализированные библиотеки.

http://www.boost.org - скачать бесплатно без смс.
http://sindicollo.blogspot.ru/2008/09/boost.html - документация к некоторым компонентам.
http://www.boost.org/doc - документация (на ангельском).

Литература:
Ариндам Мукерджи - Learning Boost C++ Libraries (на ангельском) (2015) - https://goo.gl/b0gPN1

Qt

Существует швабодный кроссплатформенный фреймворк-надмножество C++ под названием Qt. Он содержит довольно большое количество компонент (для работы с сетью, базами данных, для юнит-тестирования и др.), но киллер-фичей и основным полем его применения являются возможности по разработке графических интерфейсов. Qt сам по себе, как расширение языка, предоставляет для этого более удобные средства, чем обычные библиотеки, а использование специализированных IDE наподобие Qt Creator позволяет в буквальном смысле собирать интерфейсы мышкой, а код писать только по существу.

Тем не менее, использование Qt нельзя однозначно назвать хорошей практикой. Во многом это уже не C++, а другой язык, со своими концепциями и паттернами. Qt-код требует дополнительного препроцессинга при помощи встроенных в Qt утилит (т.н. метаобъектная компиляция), поэтому не получится просто подключить Qt как обычную библиотеку и использовать свой любимый компилятор без дополнительного софта. Нельзя сказать, что это существенное препятствие, но есть мнение, что использование Qt нарушает дух C++, раздувает машинный код и порождает макак-любителей кодогенерации.

В настоящее время основные версии Qt - 4.8 и 5.х, полной обратной совместимости между ними нет как в пистоне, ага.

http://www.qt.io/ru - скачать бесплатно без смс.
http://doc.crossplatform.ru - документация к 4.8.
http://doc.qt.io - более полная документация к обеим версиям (на ангельском).

Литература:
Макс Шлее - Qt 5.3. Профессиональное программирование на C++ (2015) - https://goo.gl/aZ66gK
Макс Шлее - Qt 4.8. Профессиональное программирование на C++ (2012) - https://goo.gl/Slb1In (книга) + https://goo.gl/toUDWc (исходники примеров)
Марк Саммерфилд - Qt. Профессиональное программирование (только Qt 4.х) (2011) - https://goo.gl/qpkZFm (книга) + https://goo.gl/LIIECh (исходники примеров)

Другие хорошие библиотеки:

Несколько специализированных библиотек для часто встречающихся задач. Все маленькие, быстрые и простые в освоении:
libcurl - сишная библиотека для работы с сетью (существует также curlpp - крестовая обертка для нее, но использовать ее не стоит, ибо разработка заброшена еще в 2009 году) - http://curl.haxx.se
SFML - работа с графикой и аудио - http://www.sfml-dev.org
FLTK - графические интерфейсы - http://fltk.org

И еще куча библиотек на любой вкус - http://en.cppreference.com/w/cpp/links/libs
Аноним 18/12/15 Птн 23:33:54 #2 №607055 
Новая книга Мейерса заменена на русскую версию.
Добавлена книга Абрахамса-Гуртового по метапрограммированию.
Code::Blocks заменена на CodeLite из-за ее очевидных преимуществ.

Предыдущие треды на архиваче:
https://arhivach.org/thread/94971/
https://arhivach.org/thread/94972/
https://arhivach.org/thread/99414/
https://arhivach.org/thread/100995/
https://arhivach.org/thread/105148/
https://arhivach.org/thread/109335/
https://arhivach.org/thread/112797/
https://arhivach.org/thread/114519/
https://arhivach.org/thread/117109/
https://arhivach.org/thread/120019/
https://arhivach.org/thread/122683/
https://arhivach.org/thread/124637/
https://arhivach.org/thread/125532/
https://arhivach.org/thread/127327/
https://arhivach.org/thread/128133/

Старые ненумерованные треды:
https://arhivach.org/thread/45477/
https://arhivach.org/thread/48611/
https://arhivach.org/thread/60085/
https://arhivach.org/thread/66322/
https://arhivach.org/thread/69413/
https://arhivach.org/thread/73221/
https://arhivach.org/thread/77999/
https://arhivach.org/thread/79194/
https://arhivach.org/thread/82038/
https://goo.gl/vvs9GP
https://goo.gl/ZnBsYt

Отдельные Qt-треды:
https://arhivach.org/thread/15387/
https://arhivach.org/thread/65590/
Аноним 18/12/15 Птн 23:49:15 #3 №607061 
А вы скажите мне посоны, после книги для ньюфагов от Страуса (2011 г.), что лучше почитать вообще?
Где-то я слышал, что книги Мейерса хорошо дополняют друг друга и было бы неплохо (нужно) начинать читать с первого издания. Поясните в общем.
Аноним 19/12/15 Суб 00:18:47 #4 №607087 
>>607017
>volatile
Никакого эффекта.
>А сообщения выводяться?
Индикаторы на порту не мигают, так что видимо нет. Сниферить мне к сожалению нечем.
Аноним 19/12/15 Суб 00:31:24 #5 №607095 
>>607087
м... я думал var это типа общая переменная с устройством, посмотрел внимательней - ты ее вроде собрался куда-то отправлять после того как твой do{}while отработает. Так вот, он никогда не закончится, точнее тот код что после него никогда не выполнится.
Аноним 19/12/15 Суб 00:45:40 #6 №607108 
>>607095
Да var должен отправится в COM порт где его считывает устройство. А этим do while, я хотел, что бы моя консольная менюшка, банально, не сворачивалась после выбора варианта.
Аноним 19/12/15 Суб 00:50:08 #7 №607112 
>>607095
Выполнится после ввода четверки же.
Аноним 19/12/15 Суб 01:27:41 #8 №607139 
>>607112
В случае ввода 4 выполнится exit(EXIT_SUCCESS);
Аноним 19/12/15 Суб 01:48:08 #9 №607153 
>>607139
Да, не посмотрел в тело цикла, сорян.
Аноним 19/12/15 Суб 10:53:53 #10 №607234 
>>607061
Читай последние издания каждой книги. У него их 3 вроде или 4 (эффективное c++, еще более эффективное, stl и C++14)

Мб первые 2 -- одно и то же, не помню уже
Аноним 19/12/15 Суб 11:11:01 #11 №607238 
>>607095
Да, чего-то я всё по уебански сделал вчера. Сегодня проспался и сделал более или менее нормально - отправку отдельной функцией, которая принимает значение var из цикла меню.
Аноним 19/12/15 Суб 12:05:28 #12 №607248 
Какие есть средства под Windows для создания приложений с GUI на C++, чтобы в 1 .exe собиралось?
QT - много ебли со статической линковкой.
Borland C++ - Платное, много ебли с подключением библиотек, к примеру для serial port.
Аноним 19/12/15 Суб 12:06:35 #13 №607249 
>>607248
Желательно без .net. Его у пользователя может и не быть.
Аноним 19/12/15 Суб 12:39:10 #14 №607269 
>>607249
ты к нам из какого года? дотнет в коплекте с шиндовсом идет.
Аноним 19/12/15 Суб 13:35:35 #15 №607332 
http://ideone.com/4GFT6O
Как заставить это скомпилироваться? Я переопределяю create и говорю - вот так можно создавать объект типа Pair, но он ругается, мол, у базового-то класса нифига не подходит сигнатура.
Аноним 19/12/15 Суб 13:37:38 #16 №607335 
Анонизмы, ответьте пожалуйста как снести Visual Studio?

https://2ch.hk/pr/res/607333.html
Аноним 19/12/15 Суб 14:14:25 #17 №607363 
>>607332
Твоя базовая фабрика умеет создавать только объекты классов с одним аргументо в конструкторе. Расширеную фабрику ты наследуешь от базовой фабрики для типа pair у которого нет конструктора с одним элементом, следовательно не возможно создать базовую фабрику для типа pair, следовательно нельзя от нее отнаследоваться. Тебе или нужно дать типу pair конструктор с одним аргументом типа int http://ideone.com/yQu8rh или инстанциировать фабрику от другого типа, а не pair.
Аноним 19/12/15 Суб 14:33:23 #18 №607374 
Насколько сильно устарел Лафоре? Или лучше начинать с Липпмана или Страуструпа? я про его учебник для ньюфагов
Аноним 19/12/15 Суб 14:40:47 #19 №607378 
>>607269
Ок. Тогда не буду ебать себе моск и заюзаю C#.
Аноним 19/12/15 Суб 17:56:06 #20 №607527 
>>607234
Не одно и то же, там совершенно разные советы. Поэтому все четыре есть в шапке.
Аноним 19/12/15 Суб 17:58:03 #21 №607529 
>>607335
Юзай какой-нибудь Revo Uninstaller. А разгадка одна - тот, кто очищает папку Program Data в погоне за местом, будет страдать из-за удаленных файлов деинсталляторов.
Аноним 19/12/15 Суб 17:59:03 #22 №607532 
>>607374
Там годно написано, но нет про C++11, придется переучиваться.
Аноним 19/12/15 Суб 19:53:35 #23 №607640 
Несколько вопросов от ньюфага.
1) Obj-C используется только в эплопроизводстве или широко распространён?
2) Чистый Си проще плюсов?
3) Насколько у Си и плюсов различная сфера применения? Можно на одном делать всё то же, что и на другом?
Аноним 19/12/15 Суб 19:54:15 #24 №607643 
>>607640
да
да
нет
Аноним 19/12/15 Суб 20:46:29 #25 №607683 
14505471890770.png
Дали тестовое задание, надо написать с использованием дирехт х.
Опыта с дирехт х у меня естественно никакого, что почитать по этой теме? С чего начать?
Аноним 19/12/15 Суб 20:46:34 #26 №607684 
Если я в курсе Си, вроде бы, то есть ли для меня способ вникания в C++ лучше, чем листание одной из этих книг для совсем начинающих из шапки?
Аноним 19/12/15 Суб 20:53:39 #27 №607692 
>>607684
Ты какой-то дурак. Я не знал ни си, ни плюсов, но пошёл и начал ебашить тестовые задания. Быстро вкатился, хоть и было много проблем. Через два года уже пролистал книжку.
Аноним 19/12/15 Суб 21:33:27 #28 №607720 
>>607683
а что за специальность? тож хочу писать на ДиректИске
Аноним 19/12/15 Суб 23:16:11 #29 №607774 
Копался в своём старом коде, обнаружил такое:

const std::unique_ptr<uint8_t[]> &my_array()
{
    static const std::unique_ptr<uint8_t[]> not_temp = some_array();
    return not_temp;
}

Нет, я сейчас попробую оправдаться, что some_array() я использую из прикрученной библиотеки, но тем не менее, всё равно на лоботомию?
Аноним 20/12/15 Вск 00:25:01 #30 №607807 
Сдал младшего брата учиться в какую-то компьютерную академию, хуй его знает, короче. Так вот, дали там ему тест, который я сам на 10/10 решить не могу, только 8/10. Шозахуйня? Тестрилейтед.

1. Что такое тип данных?
Название переменной
Название константы
Вид содержимого и допустимые операции над ним
Значение переменной или константы

2. Что такое переменная?
Значение
Имя
Именованная область памяти, предназначенная для хранения значения
Именованная область памяти, предназначенная для хранения значения, которое может меняться по ходу работы программы
Идентификатор

3. Что такое литерал?
Значение в памяти
Значение в исходном коде программы
Имя переменной
Имя константы
Тип переменной

4. Что такое оператор?
Вся программа
#include < iostream >
Функция main()
Действие над операндами (переменными, константами, литералами)
cout

5. Правила создания идентификаторов
Любые буквы, цифры, знак подчеркивания, знаки препинания, пробел, не может начинаться с цифры
Латинские буквы, цифры, знак подчеркивания, знаки препинания, пробел, не может начинаться с цифры
Кириллические буквы, цифры, знак подчеркивания, знаки препинания, пробел, не может начинаться с цифры
Латинские буквы, цифры, знак подчеркивания, не может начинаться с цифры
Кириллические буквы, цифры, знак подчеркивания, не может начинаться с цифры

6. Какие действия выполняет оператор присваивания?
Выводит присваиваемое значение на экран
Предлагает пользователю ввести значение с клавиатуры
Объявляет переменную
Помещает указанное значение в переменную
Стирает указанное значение из переменной

7. Как определить константу?
Указать ключевое слово const и ее тип
Указать ключевое слово const, ее тип и значение
Указать ключевое слово const, ее имя и значение
Указать ключевое слово const, ее тип и имя
Указать ключевое слово const, ее тип, имя и значение

8. Размер типа unsigned short
1 байт
2 байта
4 байта
8 байт
Зависит от платформы

9. Размер типа double
1 байт
2 байта
4 байта
8 байт
Зависит от платформы

10. Размер типа int
1 байт
2 байта
4 байта
8 байт
Зависит от платформы
Аноним 20/12/15 Вск 00:32:34 #31 №607809 
>>607807
Толсто.
Аноним 20/12/15 Вск 03:35:13 #32 №607895 
>>607683
Frank Luna
Аноним 20/12/15 Вск 03:37:58 #33 №607896 
>>607248
>QT - много ебли со статической линковкой.
http://habrahabr.ru/sandbox/95171/
Вот по этому делал, и все получилось.
http://wiki.qt.io/Building_a_static_Qt_for_Windows_using_MinGW
А тут концовка. Конкретно где в проекте статику и динамику выбирать.

Под winXP.
Аноним 20/12/15 Вск 03:39:33 #34 №607897 
14505719733510.png
Посаны, хочу быть мобайл разработчиком, но в моей мухосрани вакансий кот наплакал, зато есть отличная вакансия в топовую компанию на плюсах, с крутым продуктом для 3д сканеров и принтеров в медсфере, у компании куча офисов в зарубежье, половина ивропы, США и Кореи с Япониями.
Вопрос таков - мне стоит дрочить мобайл в надежде найти работу или лучше пойти на С++ или жабу в компании рядом, получить опыт работы с умными ребятками и потом сделать перекат в интересную мне сферу?
Один успешный погромист из амурики говорил идти в С++ компанию, потому что в 95% реально интересных и крутых проектов даже в мобайле, вебе или подобном всё равно желательно уметь в языки типа си, плюсов или жабы, потому что это СТАНДАРТ, а первые два ещё и закладывают хорошее понимание работы "под капотом".

Ну и приводил в пример вакансии, всюду вроде рили написано в требованиях что-то типа:
- 3 года опыта работы с одним из языков типа C++/Java/C#/Scala/etc
- 3 года опыта работы с Python/Objective-C/etc ну или другой язык по которому вакансия
Карочи, как отдельные пункты.

Он всё правильно мне сказал и рили стоит потратить время на это? Будет ли отдача реальная или сразу в мобайл пиздовать и хуи забить?
Сильно ли прогресс "прокачки скилла" зависит от старших коллег которые будут пинать?
Спасибо.

опыт работы - разработка говна при универе, лол не лаба1, это говно все ещё юзают для документооборота
Аноним 20/12/15 Вск 03:40:51 #35 №607898 
>>607897
Ах да, спрашиваю у вас, потому что думаю тут есть те, кто писал на плюсах и сделал перекат или пишет на плюсах и сделал перекат с другого языка, поэтому может поделиться опытом пользы работы с подобными языками.
Аноним 20/12/15 Вск 03:51:03 #36 №607901 
>>607897
В мобайл идут не от большого ума - или вакансия попалась (рынок больше), или хотят фрилансить (порог вхождения ниже), но вот специально туда идти... Что такое мобильный софт? Примитивные аппликухи, которые за любым чихом лезут на свой бэкенд через интернет. Редко что-то считается на месте, но тут, опять же, придется портировать код с бэкенда. По сути ты будешь бесконечно дрючить UI, а это на любителя. Игры тут - верх технологичности.
Правильный ответ - идти на С++ вакансию и, если получится, ты сам забьешь хуй на этот мобилософт.
Аноним 20/12/15 Вск 08:50:24 #37 №607936 
14505906242540.jpg
Реально ли реализовать язык запросов для коллекций stl? Как linq в шарпах
Аноним 20/12/15 Вск 09:00:51 #38 №607938 
>>607936
Ты бы хоть минимально погуглил.
Аноним 20/12/15 Вск 09:10:35 #39 №607939 
>>607938
Бля, помогло. Спасибо, анон
Аноним 20/12/15 Вск 11:37:12 #40 №607982 
>>607683
Воу, воу, полегче. Откуда у тебя такая хуйня? Что это? Почему DX, а не OGL?

>>607720
Для тебя и таких, как ты, придумали OpenGL. Который практически никак не отличается. Откуда вы вообще берётесь?

>>607895
Ещё один. Во-первых, не пали годноту, уёбок, пусть OpenGL дрочат. Во-вторых, откуда вообще ты взялся? В-третьих, Франк Луна тут не сильно поможет, ему всё-таки не 3D-модельки нарисовать надо, а интерфейсный элемент. А для этого есть Direct2D с совершенно другими правилами, методами и функционалом.
Аноним 20/12/15 Вск 11:41:11 #41 №607985 
>>607896
При статической линковке половина либ же нафиг выкидывается, не?
Аноним 20/12/15 Вск 13:51:10 #42 №608056 
>>607896
Скомпилил статическую версию QT 5.4 по инструкции
http://habrahabr.ru/sandbox/95171/, наткнулся на такую ошибку при попытке собрать проект:
:-1: ошибка: dependent 'D:\Qt\5.4\Static\lib\Qt5Widgets.lib' does not exist.
И действительно. Там нет ни одного файла с расширением lib, есть только Qt5Widgets.prl.
Что делать в этом случае?

Аноним 20/12/15 Вск 15:03:41 #43 №608089 
>>607982
Какой же ты мудак блять, в вопросе написано, что сделать надо с использование дирехтх, не опенжл, а дирехтх, нет надо выеба гнуть, на говно исходить.

>Почему DX, а не OGL?
Потому что так решили в той фирме, не нравится - скажи им это, они тебе непременно не перезвонят.
Аноним 20/12/15 Вск 15:33:32 #44 №608117 
#include <stdio.h>
int main () {
int a, b;
printf (“Введите два числа: \n”);
scanf ( “%d%d” , &a, &b);
printf (“%d\n” , a + b);
return 0;
}

Поясните за %d%d. Что это и зачем юзают?
Аноним 20/12/15 Вск 16:56:46 #45 №608172 
>>608117
цифра цифра. Формат ввода обозначают.
Аноним 20/12/15 Вск 17:47:48 #46 №608207 
>>608056
Он там пишет что на ошибки внимание не обращай. У меня тоже какие-то писал. Однако все работает.
Аноним 20/12/15 Вск 17:53:35 #47 №608215 
>>608207
Да ебанись!
Прочти еще раз внимательно.
Не компилится мой проект со статической версией QT.
Аноним 20/12/15 Вск 17:59:53 #48 №608223 
14506235932340.png
14506235932361.png
>>608056
Ну и еще, запусти MaintenanceTool.exe и проверь, точно ли ты установил все библиотеки и их исходники, и той ли версии. У меня все выглядит как на пике. Кстати обнови там все до последней версии через этот же тулз.
Аноним 20/12/15 Вск 18:02:36 #49 №608225 
>>608223
Так и у тебя нет .lib файлов.
Аноним 20/12/15 Вск 18:04:15 #50 №608226 
>>607982
ну можн и на ogl, только щас на нем нахуй писать, когда вулкан скоро выпустят
Аноним 20/12/15 Вск 18:07:08 #51 №608229 
Нужен ГУИ для визуализации графа и управления кнопочками. Есть годный вариант? Желательно с минимальной еблей
Аноним 20/12/15 Вск 18:13:56 #52 №608230 
>>608223
>>608215
>>608056
Я проморгал и выбрал микрософтовский компилятор.
Аноним 20/12/15 Вск 18:15:22 #53 №608232 
>>608230
Тогда встречный вопрос: как теперь подключить QTгную библиотеку serialport?
Аноним 20/12/15 Вск 18:29:24 #54 №608242 
14506253641070.png
>>608225
>lib
.lib и не нужны. А ты свой какой-то проект выбрал? Попробуй скомпилировать тестовый. У меня задача была разобраться с сокетами. Очень уж тут удобно вся эта тема делается.
>>608230
Ну бывает. Микро под MVS наверное компилируется.
Аноним 20/12/15 Вск 18:52:45 #55 №608255 
Поясните за make_shared и move. Вот создаю я объект, допустим конфиг. Реализация мудельной библиотеки в конструкторе переносит через move мой конфиг к себе.

Кодес такого вида:
hui(vasya228 config) : m_hui(make_shared<vasya228>(move(config)))

Собсна, если инициализировать конфиг на стеке я не потеряю эту хуитку после его очистки? я знаю что это всё хуйня и можно не ебать мозга, но ведь 228 оптемезацея скорасть...

И ещё, поясните нахуя нужны конструкции вида &&hui или zalupa при исп. обычных структур/классов, а не двумерных массивов.
Аноним 20/12/15 Вск 19:46:47 #56 №608287 
>>607774
Эй, я за интернет плачу, чтобы меня в нём игнорировали?
Аноним 20/12/15 Вск 20:59:17 #57 №608340 
>>607807
1. 3.
2. 4.
3. 2.
4. 4.
5. 4.
6. 4.
7. 5.
8. 2.
9. 4.
10. 3.
Аноним 20/12/15 Вск 21:01:35 #58 №608344 
Анон, могу ли я в качестве аргумента для функции указать один класс, а передать ему объект второго, производного от первого класса?
Аноним 20/12/15 Вск 21:06:51 #59 №608346 
подскажите как вывести в консоль гиперссылку
Аноним 20/12/15 Вск 21:07:04 #60 №608347 
>>608340
8 и 10 неправильно, от платформы зависит.
Аноним 20/12/15 Вск 21:10:45 #61 №608352 
>>608344
Да, если в качестве аргумента будет ссылка на базовый класс.
Аноним 20/12/15 Вск 21:12:02 #62 №608353 
Долбоебы, нахуя вам статически линковать Qt?
Аноним 20/12/15 Вск 21:16:00 #63 №608361 
>>608353
Чтобы не таскать за собой кучу dll.
Аноним 20/12/15 Вск 21:19:21 #64 №608364 
Есть ли какой-то гайд по FLTK на русском языке? А то очень тяжко на английском, учитывая, что материал для меня совершенно новый, я не формоёбствовал и пока писал только хеллоуворды.
Аноним 21/12/15 Пнд 00:26:53 #65 №608536 
>>608361
Пиздец, куда таскать?
1. куда вы тащите свое говно?
2. лицензия не позволяет ПРОСТО без задней мысли это делать.
так нахуй весь этот цирк?
Аноним 21/12/15 Пнд 00:33:50 #66 №608542 
Чуть не умер читая этот тред лол. Конфеткой поводился и она в горле застряла. Я хуй знает как этот леденец оттуда вынул, но я дышать не мог пока он не выскочил.
Аноним 21/12/15 Пнд 07:38:02 #67 №608625 
>>607053 (OP)
>пик
Но ведь у си не такой уж-то и поехавший синтаксис, вот у крестов да - полный пиздец.
Аноним 21/12/15 Пнд 07:40:13 #68 №608627 
>>608625
>вот у крестов да - полный пиздец.
Работаю 8 лет с крестами, ни разу не видел пиздеца. А хуевый программист на чём угодно невнятного говна напишет.
Аноним 21/12/15 Пнд 07:42:41 #69 №608628 
Вот тебе код 2011 года, когда C+0x уже жил и здравствовал:

DPP_DELEGATE2_OBJ(de, void, (const math::Vector2 &v2d),
const math::Vector3::put_delegate_t &, f, // _0
const const_ref<curve::Base> &, _curve, // _1
{
_0(math::Vector3(v2d, _1->sagitta(v2d)));
});
Аноним 21/12/15 Пнд 08:19:26 #70 №608630 
Он переписывается в auto de = [&](const math::Vector2& v2d) { f(math::Vector3(v2d, _curve->sagitta(v2d))); };

Но тут суть в не этом, а в том, что подобного легаси-говна килотонны. И в каждом проекте каждый делает кто во что горазд. И это таки полный пиздец.
Аноним 21/12/15 Пнд 09:22:51 #71 №608638 
>>608089
Блядь, а нахуй мне их перезванивание? Наоборот, я хочу, чтобы эта фирма уже никогда не смогла никому перезвонить. Пиздец, в России только человек 5 знают DX на моём уровне, а благодаря этой компании появляются такие >>607720 личности, которые своими "А Я ТОЖЕ ХОЧУ" портят всю элитность DX.

>>608226
Да похуй. Главное, чтобы в мой DX не лезли.
Аноним 21/12/15 Пнд 10:08:20 #72 №608655 
Вечер в хату, крестаны. Есть два хедера с двумя разными классами, как сделать взаимодействие между ними (преобразования один в другой)? Я пытался объявить хедеры и там и там, в итоге ошибка компиляции по понятной причине. Можно что-нибудь сделать и не пилить отдельный файл для них?
Аноним 21/12/15 Пнд 11:28:27 #73 №608688 
>>608655
Forward declaration.
Аноним 21/12/15 Пнд 11:46:54 #74 №608696 
Новый Мейерс на русском, охуенно, спасибо, ОП!

Олсо, анон->>608638, есть кулстори, как в DX вкатился и добрался до такого уровня. Надеюсь не пиздабол. Я не из России, не бойся твоё место не займу
Аноним 21/12/15 Пнд 11:56:15 #75 №608703 
>>608696
>уровня?
фикс
Аноним 21/12/15 Пнд 12:54:00 #76 №608726 
Зачем нужно перечислять переменные одного типа через запятую? Я посмотрел адреса, в памяти они последовательно не лежат. Инты, например, лежат не через 4 байта, а через 12.
Аноним 21/12/15 Пнд 13:01:54 #77 №608729 
>>608726
> нужно
Не нужно, а можно. Это для тех кому лень лишний раз тип переменной написать.
Аноним 21/12/15 Пнд 13:03:44 #78 №608730 
14506922245770.png
>>607053 (OP)
помогите пожалуйста разобраться с проблемой в коде, в нём есть базовый класс и 3 производных класса, нужно переопределить метод get_name так, чтобы при его вызове выводилось название производного класса, но почему-то выводится название базового класса, причём код на строках 83-87 работает корректно, а вот код на строках 92-110 уже не работает, хотя вроде всё также пишу
http://pastebin.com/Dtw12vvh
ЧЯДНТ? Аноним 21/12/15 Пнд 13:07:17 #79 №608731 
14506924370640.png
14506924370641.png
Аноны, что я делаю не так?

Переписал пример второго хелловорлда с книги Щупака "Win32 API. "Эффективная разработка приложений."
Программа не работает. Подробности на пике.

KWnd.h - http://pastebin.com/mGgcZnJM
KWnd.cpp - http://pastebin.com/knFzzCjV
main.cpp - http://pastebin.com/EMqQBcFF
Аноним 21/12/15 Пнд 13:11:54 #80 №608733 
>>608730
Потому что (@ - звёздочка)
T@ mas[N]; - массив указателей (mas имеет тип T@@, грубо говоря, то есть указатель на массив указателей)
а
T@ mas = new T[N]; - массив объектов (mas имеет тип T@, то есть просто указатель на объект)
Итого в твоём примере на строках 92+ or имеет тип instrument@, а значит or имеет тип instrument, т.е. объект, а не указатель
Аноним 21/12/15 Пнд 13:14:19 #81 №608735 
>>608733
>а значит or[0] имеет тип instrument
походу макаба как тэг сожрала
Бля, как-то сумбурно написал, но может поймёшь
Аноним 21/12/15 Пнд 13:19:46 #82 №608740 
>>608731
Естт ли визуальные редактора гуя под win32?
Аноним 21/12/15 Пнд 13:26:49 #83 №608744 
14506936096390.png
>>608735
а как сделать так, чтобы get_name выдавал имя производного класса? Если писать вот так
http://pastebin.com/59AU70X8
то выдаёт название базового класса
Аноним 21/12/15 Пнд 13:45:02 #84 №608761 
>>608744
Используй массив указателей на тип instrument http://ideone.com/5wSYGi
Когда ты объявляешь массив элементов типа instrument то в этот массив можно записать только элементы типа instrument, и производные от него конвертятся при записи в базовый.
Аноним 21/12/15 Пнд 13:47:37 #85 №608763 
>>608740
В студии с MFC, но это чуть повысокоуровневей, чем WinAPI
Аноним 21/12/15 Пнд 14:01:46 #86 №608770 
>>608696
Да ничего особенного. Ещё до того, как поступил в универ, хотел заниматься графикой. Первые пару лет хватало небольших попыток начать учить OGL, но в Dev C++ подключение сторонних либ не работало, а Visual Studio я считал ужасным проприетарным поделием майкрософта, потому что так сказали в универе. Где-то в конце второго курса сказал друзьям, что всё, этим летом выучу OpenGL, окончательно решено.

Летом, когда я в очередной раз попытался подключить либу в Dev C++ и потерпел неудачу, я решил найти другую книгу. Может, где-то написано, почему у меня выставлены флаги компиляции вида -lgl и -lglut, все либы лежат в папке, но проект не собирается? Может, лучше начать с общей архитектуры построения игровых движков, а уж потом разберусь?

Скачиваю какую-то книгу, русскую, года 2004. По движкам. Где на первой странице указано, что для чтения этой книги необходимо иметь знание DirectX.

И тут меня осенило. А что, если вместо OGL я буду знать DirectX? Это же гениально. Ведь после того, как я освоил Qt, я начал любить WinAPI. А тут мало того, что использование WinAPI было необходимо, так ещё и этот выбор ощущался как переход на тёмную сторону. Что я иду против системы. В то время, как везде говорят об осточертевшей кроссплатформенности, в то время, как все желающие освоить графику выбирают OpenGL, "потому что свободное ПО", в то время, как все инди-игры на OGL и везде, где преподают графику, учат OpenGL, в это время я выбираю DirectX. Наплевав на кроссплатформенность - она не нужна, у меня нет ни одного друга, который бы всерьёз использовал линукс или макось не для рабочих задач. Наплевав на закрытость кода - меня за два года в универе успели заебать промывкой мозгов на тему, какое же хорошее свободное ПО и как же важно использовать линукс. Отсосите. Я ухожу в DirectX!

Ищу литературу. Нахожу книгу некоего Горнакова, по DX9. Начинаю читать, разбираюсь с каждой неясностью, переписываю вручную код, комментирую каждую строчку. Как ни странно, первый проект даже скомпилировался. Иду дальше. Квадрат, кубик, освещённый кубик... Дохожу до главы с выводом текста, застреваю.

Пытаюсь разобраться. Функция в книге принимает три аргумента, функция в документации MSDN - девять. Гугление дало понять, что с тех пор, как книга была издана, эта функция успела поменяться. Что ж, думаю, надо бы тогда попытаться написать в 9 аргументов.

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

Решил спросить здесь, на дваче. Говорю, вот, есть книга 2003 года, да, она устарела, но всё нормально, после её прочтения у меня будет достаточно начальных знаний, чтобы было всё понятно по документациям в этой области. Отвечают мне, что я даже не представляю, насколько она устарела, что сейчас всё делается по-другому. Дал мне ссылку на книгу(кстати, довольно известного в этой области автора) на английском языке.

Думаю, ладно, английский - не такая уж и проблема. Конечно, это моя первая книга на английском, но надо же когда-то начинать. В любом случае, всегда есть переводчик.

Перед прочтением заглянул в оглавление. Тесселяция! Геометрические шейдеры! Ambient Occlusion! Охуеть! Раньше для меня это были просто красивые сложные термины, а теперь я на самом деле буду в этом разбираться! И использовать это! Я был, как это говорят по-английски, really excited. То есть пиздец в предвкушении. К слову, в книге говорилось, что необходим Visual Studio. Понимая, что это того стоит, я его поставил. Больше я Dev C++ не запускал никогда.

Начал читать. Внимательно, осмысливая каждое предложение и делая каждое упражнение. С каждой главой я всё больше охуевал от собственной крутости. Я понимал, что вот оно, что я наконец-то нашёл то, что мне интересно по уши. Что я наконец-то счастлив, анон.

К тому времени, как закончилось лето, я прошёл несколько глав. Планы по всей книге за лето немного провалились, но я не сильно переживал. Главное, что я встал на правильный путь. Прихожу в универ, говорю друзьям: "Помнишь, я хотел выучить летом OpenGL? Я выучил DirectX!". Как ни странно, они не были сильно удивлены.

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

Ну вот как-то так. И да, аноны, в 2016(да и в 2015) году заниматься DirectX несерьёзно. OpenGL объективно лучше - он и кроссплатформенный, и стандарт открыт, и вообще DX не нужен будет, как только выйдет Vulkan.
Аноним 21/12/15 Пнд 14:11:10 #87 №608774 
Это конечно круто, поздравляю и всё такое. Но я надеялся услышать как ты в работу вкатился. Или ты там сам постигаешь дзэн? Рендеринг и R&D в этой области на постсовке мертво вообще или как? Сам с бульбастана
Аноним 21/12/15 Пнд 14:11:27 #88 №608775 
>>608774
>>608770
Аноним 21/12/15 Пнд 14:15:02 #89 №608778 
>>608774
Сам дзен постигаю. Вряд ли я бы пошёл на обычную работу со всеми этими дедлайнами, тимбилдингами, корпоративной культурой и прочей чешуёй, которая не даёт почувствовать себя свободно.

Ну и да, где ты видел из России за последние лет 5 что-то, кроме игр на мобилки?
Аноним 21/12/15 Пнд 14:16:07 #90 №608780 
>>608731
Разобрался сам. Я забыл указать значение поля lpfnWndProc;
Аноним 21/12/15 Пнд 14:22:46 #91 №608784 
>>608778
Блять, я-то думал ты там бабло на этом пилишь норм и не хочешь, чтобы конкуренты в сферу лезли.
Ну варгейминг тот же. Корабли в Питере, танки в Минске. Да и хватает, наверно, контор с не мобилками и социалками
Аноним 21/12/15 Пнд 14:23:56 #92 №608785 
>>608778
>из России за последние лет 5 что-то, кроме игр на мобилки?
еще в социалках игрухи
есть еще такая тема как аутсорс игрового контента
еще иногда саппорт долгоживущих проектов типа ммо скидывают (но редко), включая таскинг (багфиксинг и фичреквестинг)
Аноним 21/12/15 Пнд 14:26:50 #93 №608786 
>>608784
Так если бы я не хотел конкурентов, я бы не только на DirectX ведь смотрел, верно?

>>608785
Ну нельзя превращать любимое хобби в работу.
Аноним 21/12/15 Пнд 14:42:26 #94 №608794 
>>608770
И с чего ты взял, что ты его на высоком уровне знаешь, клоун.
Парни, задачка с собеседования Аноним 21/12/15 Пнд 15:48:02 #95 №608828 
14507020825310.jpg
>Напишите функцию, которая обрезает пробелы в конце переданной ей строки. Функция должна быть написана в расчёте на работу с очень длинными строками с очень большим количеством пробелов, оптимизирована по количеству обращений к памяти. Сигнатура: void TrimRight( char *s );
P.S.

: http://ideone.com/gNIlCG

Парни, что ещё можно с этим сделать?

Аноним 21/12/15 Пнд 16:11:11 #96 №608847 
>>608628
typedef то че не юзаете, в тех случаях когда старом стандарте работаете
вся эта длинная stl поебота заворачивается, включая и итераторы
Аноним 21/12/15 Пнд 16:19:38 #97 №608850 
Дан файл, в нем содержится набор слов. Отсортировать эти слова по алфавиту, использовать односвязный список, и вывести результат в другой файл и на экран. Обязательно должны присутствовать: класс, конструктор.
Анончики, помогите. Лаба горит
Аноним 21/12/15 Пнд 16:36:35 #98 №608866 
http://pastebin.com/HZ7gQ4xa
Препод на паре пояснял этот алгоритм создания выпуклой оболочки. Я её пропустил и нихуя не понял. Где можно найти гайд по работе этого алгоритма? Сам пытался загуглить, не нашел.
Аноним 21/12/15 Пнд 16:37:29 #99 №608868 
>>608866
То бишь назначение программы мне понятно, мне непонятно, как она работает.
задача с собеседования [2] Аноним 21/12/15 Пнд 16:47:08 #100 №608878 
14507056287120.jpg

>Напишите функцию, которая обрезает пробелы в конце переданной ей строки. Функция должна быть написана в расчёте на работу с очень длинными строками с очень большим количеством пробелов, оптимизирована по количеству обращений к памяти. Сигнатура: void TrimRight( char *s );
P.S.

: http://ideone.com/gNIlCG


ответ, что не так:
>"Несмотря на то, что решение является оптимальным по количеству обращений к памяти, оно во-первых выдает некорректный ответ на некоторых строках, а во-вторых может повредить динамическую память."


Парни, подскажете, что ещё можно с этим можно было сделать?
Аноним 21/12/15 Пнд 16:51:10 #101 №608885 
>>608364
Ну что же вы, аноны?
Аноним 21/12/15 Пнд 16:52:33 #102 №608887 
>>608364
у страуструпа в книге есть ращ\здел...
хотя ты наверное итак оттуда
Аноним 21/12/15 Пнд 16:57:53 #103 №608890 
Несколько вопросов от ньюфага.
1) Obj-C используется только в эплопроизводстве или широко распространён?
2) Чистый Си проще плюсов?
3) Насколько у Си и плюсов различная сфера применения? Можно на одном делать всё то же, что и на другом?
4) Насколько у шарпа и плюсов различная сфера применения? Можно на одном делать всё то же, что и на другом?
Аноним 21/12/15 Пнд 17:03:12 #104 №608891 
>>608890
1) >>только в эплопроизводстве
2) >>проще
3) >>Можно.
Сфера - у крестов весть линух + вся системщина на современных осях, плюсы - более прикладные и среднеуровневые вещи (обычный гуй софт, сервера, игрушки).
4) >>различная
Не совсем. Шарп - чисто прикладной язык, бОльшая часть софта на сперме, тяжелые игрули 40-60% области плюсов на нем не попишешь.
Аноним 21/12/15 Пнд 17:03:41 #105 №608893 
>>608891
>Сфера - у крестов весть линух + вся системщина на современных осях
У си, конешно.
Аноним 21/12/15 Пнд 17:08:41 #106 №608895 
>>608878
Ну дык не реаллоцируй память вообще. Просто замени первый символ в последовательности замыкающих пробелов на \0. И для этого можно идти с конца строки, тогда не обязательно ко всем символам строки будет обращение
Аноним 21/12/15 Пнд 17:19:00 #107 №608901 
14507075405330.jpg
Как подключиться к жаббер серваку\отправлять сообщения и подписки? :3
Аноним 21/12/15 Пнд 17:23:19 #108 №608904 
>>608850
>Отсортировать эти слова по алфавиту, использовать односвязный список
Кто у вас задания придумывает? Это ж пиздец.
RE : задача с собеседования [2] Аноним 21/12/15 Пнд 17:26:46 #109 №608907 
14507080063300.jpg
>>608895

> И для этого можно идти с конца строки,

Чтобы идти с конца строки, надо для начала получить индекс последнего элемента. Это делается проходом до конца, если я не ошибаюсь. А применение функции - strlen, это ведь тоже проход до конца?

> Ну дык не реаллоцируй память вообще.

С этим согласен. Наверное не стоило выёбываться.
Но они говорили про оптимизацию и т.д. Подумал, что правильно было бы очистить память, хотя применение релоак тоже тяжкая вещь. кажется
Аноним 21/12/15 Пнд 17:58:31 #110 №608928 
>>608891
Спасибо, понял.
Аноним 21/12/15 Пнд 18:11:23 #111 №608938 
>>608828
>переданной ей строки
Как строка передаётся? И куда она должна выводится после обработки?
Аноним 21/12/15 Пнд 18:16:01 #112 №608943 
>>608938
Это не принципиально - куда должна выдаваться.
хотя .. вот это вроде бы даёт понять :
> Сигнатура: void TrimRight( char *s );
Аноним 21/12/15 Пнд 18:19:42 #113 №608949 
>>608943
Что значит "не принципиально"? Если надо куда-то в файл выдавать, то и занулять ничего не надо. Если на консоль, можно тоже с помощью функций IO. А откуда она берётся? Начальную длину можно узнать без strlen?
Аноним 21/12/15 Пнд 18:21:47 #114 №608953 
>>608943
А чем этих людей string не устраивает?
Аноним 21/12/15 Пнд 18:23:31 #115 №608955 
>>608938
Считай что ты пишешь универсальную функцию, которой похуй что потом с этой строкой будет. Просто вот пиздецки нужна строка без пробелов.
Аноним 21/12/15 Пнд 18:32:13 #116 №608968 
Хочу с 2016 года начать новую жизнь, и научиться программированию. С чего начать?
Аноним 21/12/15 Пнд 18:37:43 #117 №608973 
>>608968
С пайтона.
Аноним 21/12/15 Пнд 18:39:13 #118 №608977 
>>608973
Я слышал что он не очень хороший для написания игр, а я игры хотел писать.
Аноним 21/12/15 Пнд 18:44:10 #119 №608981 
>>608955
Если пишу универсальную функцию, то передам в неё строку и её длину, а верну из неё длину без пробелов в конце.
Аноним 21/12/15 Пнд 18:55:33 #120 №608994 
>>608901
cout << "Bump";
Аноним 21/12/15 Пнд 19:13:02 #121 №609013 
Драйдент - двуруч?
Аноним 21/12/15 Пнд 19:49:07 #122 №609060 
>>608977
Похуй. Первый язык выбирается не чтоб что-то сделать, а чтоб научиться основным принципам и написать несколько рабочих программок.
Питон для этого норм, простой и без мозгоебства.
Кроме того, не слишком сложные технически игры на нем отлично работают (и даже библиотечки/движки есть), а сложную ты, будучи ньюфагом, не напишешь. А когда уже не ньюфаг - в другой язык перекатиться несложно.
Аноним 21/12/15 Пнд 20:00:17 #123 №609073 
>>609070
Чему завидовать? Мне нет дела до твоих знаний, ни дх, ни огл не интересны. Просто
>Названия книг говорить не буду, мало ли кто-то тут их решит прочитать.
- это же пиздец, самому-то не смешно разве?
Аноним 21/12/15 Пнд 20:16:14 #124 №609098 
>>609073
Ну смотри. Сейчас я чувствую себя счастливым. Потому что играю не по правилам - в мире популярности OGL среди любителей и даже многих профессионалов я использую DX. А теперь представь, что я расписал здесь всю годноту. К чему это приведёт? А к тому, что в DX может набежать толпа ололокающих школьников. Которым дали прямой рецепт, как стать илитнее и умнее. Дальше они своим неадекватством начнут дискредитировать DirectX. И в итоге сложится общественное мнение, что на DirectX пишут только ололокающие школьники.

К чему это приведёт? А к тому, что мне даже заикаться нельзя будет про своё хобби. Вместо уважения или прямых посылов нахуй я буду слышать лишь насмешки. И всё, перестану быть счастливым. Поэтому нет, нельзя.

И да, как же я рад, что по DirectX нет нормальной литературы на русском языке. Как же я рад.
Аноним 21/12/15 Пнд 21:09:33 #125 №609153 
>>609098
>в мире популярности OGL
Лалват? Никто этой хуйней не пользуется практически.
Аноним 21/12/15 Пнд 21:29:29 #126 №609171 
>>609153
Да ладно, блядь!

Valve, тонны инди-разрабов от Эдмунда Макмиленна до Klei Entertaiment, даже вот Crytek нанимали OGL-разработчиков. Андроид и iOS кодинг - OpenGL. Все университетские курсы в любом МГУ - OpenGL. Научная деятельность - OpenGL. Да блядь, даже запрос "3D Graphics tutorial C++" в гугле выдаёт OpenGL!

На DX пишут только ультра-AAA разработчики. Титаны индустрии. Ну и я.
Аноним 21/12/15 Пнд 22:40:33 #127 №609206 
>>609176
Но я серьёзно.

>>609177
Если иметь правильные источники информации, возможность практиковаться и достаточно ума и времени, чтобы всё это освоить, то можно овладеть чем угодно. Было бы желание.

Возможность практиковаться в DirectX, к сожалению, есть у каждого. Времени у ололокающих школьников полно. Ум и желание у некоторых экземпляров попадается. Остаётся информация. Нельзя допустить, чтобы любой качественный источник информации стал известен публике. А не то последствия будут непредсказуемы.
Аноним 21/12/15 Пнд 22:41:38 #128 №609210 
>>609205
Вот, тем более. Значит, я ещё больше иду против системы.
(Автор этого поста был предупрежден.)
Аноним 21/12/15 Пнд 22:44:06 #129 №609213 
>>609210
>все едят на ужин еду, а я говно, но на самом деле это круто, ведь только я ем говно, значит я клёвый
Нахуй иди, зелёный.
(Автор этого поста был предупрежден.)
Аноним 21/12/15 Пнд 22:44:28 #130 №609214 
Плюсач, подскажи какую-нибудь простую графическую 2D библиотеку, с поддержкой линукса. Не для виджетов/окон, а именно с возможностью отрисовки простейшей графики а-ля фон, спрайты, ну и возможность управлять с клавиатуры(выбирать пункты в меню и пр.). Нашёл много разных, однако самый популярный, а главное, кросс-платформенный, если я правильно понял, SDL. Или же лучше использовать какие-нибудь 2D игровые движки а-ля кокос, оксуген и пр.? Цель - простейшая битва а-ля Final Fantasy. Глаза разбегаются во всём этом разнообразии, пробовал использовать SFML, но в силу разных причин не вышло - рукожоп, однако.
Аноним 21/12/15 Пнд 22:47:21 #131 №609219 
>>609214
SFML не слишком отличается от SDL. Если будешь писать на плюсах, то бери SFML. Вообще они оба неплохие, но SFML куда более объекно-ориентированный. Плюс это или минус для тебя — решай сам.

Больше я опыта ни с чем не имел, кроме этих двух. ОБа кроссплатформенные, да.
Аноним 21/12/15 Пнд 22:53:25 #132 №609223 
>>609209
Можешь называть меня как угодно. Но у меня есть знания. Нет, не знания ваших попсовеньких Boost или Qt, не энтерпрайзной параши и даже не OpenGL, информация о котором доступна любому быдлану. Нет, я у меня есть знания закрытого, проприетарного стандарта. Многих закрытость пугает. Многие боятся, что вдруг придётся платить отчисления Майкрософту за любую написанную программу? Но я не такой. Я знаю правду. Я не боюсь. И я охуенно счастлив, что у меня есть DirectX.
Аноним 21/12/15 Пнд 23:04:32 #133 №609239 
>>609219
Это скорее плюс. Спасибо за ответ. Разобрался, нужно было добавить пару ключей при компиляции. Не подскажешь каких-нибудь годных статей (можно на английском) для начала?
Аноним 21/12/15 Пнд 23:06:36 #134 №609240 
>>609239
Не знаю, я просто читал документацию с официального сайта SFML.
Начинал я с SDL по туториалам Lazy Foo', потом перекатился в SFML без всяких туториалов, просто читая документацию.

Короче, тут вроде как есть всё, что тебе нужно.
http://www.sfml-dev.org/tutorials/2.3/
Аноним 21/12/15 Пнд 23:16:28 #135 №609247 
За 10 лет я убедился, что в майкрософт вкладывать свои силы нет никакого смысла. Есть нормальная проприетарщина - матлаб, например, но MS всегда скажет через 2 года, что все, что ты учил - говно.
Аноним 21/12/15 Пнд 23:16:54 #136 №609248 
>>609240
Да, внезапно документация годная. Спасибо ещё раз, пойду курить.
Аноним 21/12/15 Пнд 23:25:13 #137 №609256 
>>609247
Под "нормальной проприетарщиной" ты подразумеваешь протухание десятками лет на одном и том же пакете одной и той же версии, делая всё то же самое, что и 10 лет назад?

Ну и в конце концов, посмотри на WinAPI. Потрясающая библиотека. Актуальна до сих пор. А ведь написана в начале девяностых.

И да, у тебя есть своя голова-то? MS скажет. Ну и пусть говорит, что хочет, как это тебя-то касается? Запретить писать на том, что ты используешь сейчас, тебе никто не сможет. Более того, чем больше кодеров уходят на "инновационные средства разработки ПО", тпи более элитен ты.
Аноним 21/12/15 Пнд 23:27:32 #138 №609261 
>>609256
>Чем больше людей вышло из пещер и натянуло плавкы на зад, тем более илитен ты, сидящий голой жопе на куске говна
Аноним 21/12/15 Пнд 23:29:33 #139 №609264 
>>609256
>Потрясающая библиотека
С этим не поспорить. Винапи потрясает тем, через какую жопу она сделана.
Аноним 21/12/15 Пнд 23:31:25 #140 №609269 
14507298860370.png
Ребятки, не нужно, пожалуйста, срать сотнями искрометных постов в духе ")))))", даже если вам не нравится, что написал другой анон. Ему вы хуево не сделаете, а тред утопите раньше срока.
Аноним 21/12/15 Пнд 23:34:11 #141 №609273 
>>609261
Но сидеть голой жопой на куске говна тоже может каждый дурак. А вот писать на WinAPI в 2015 - не каждый.

>>609264
В мире ПАТТЕРНОВ ПРОЕКТИРОВАНИЯ, КОМПОНЕНТНОЙ АРХИТЕКТУРЫ, СТАНДАРТОВ НАПИСАНИЯ КОДА и ПОКРЫТИЯ КОДА ЮНИТ-ТЕСТАМИ за одно лёгкое безумие, которое есть у WinAPI, стоит её любить.
Аноним 21/12/15 Пнд 23:34:58 #142 №609276 
>>609273
Равно как и жрать говно станет не каждый.
Аноним 21/12/15 Пнд 23:38:53 #143 №609279 
>>609273
Ты с компграфа штоле, маня? Пока ты дрочишь свою мелкомягкую хуитку, даже тянки успели вкатиться в серьезный бизнес.
https://cs.msu.ru/news/2280
Аноним 21/12/15 Пнд 23:39:28 #144 №609281 
>>609256
>Потрясающая библиотека. Актуальна до сих пор. А ведь написана в начале девяностых.
Ехал воид через воид
Видит воид в реке воид
Сунул воид воид в дефайн
Цапнул дефайн войд за VOID
Обосрался воед-ВОЕД, создал 10 указателей на строку
А указатели на строку - не просты, а золоты близнецы.

Заразился духом мочератора-муделя, перекатывавшего тред 2 дня, соре.


Аноним 21/12/15 Пнд 23:55:44 #145 №609291 
>>609279
Ну что, молодец она. Только вот её тема мне не слишком интересна.

>>609276
Не станет, но может. А вот в WinAPI может не каждый.

>>609281
Так это и круто. Капс выглядит брутально. Венгерская нотация выглядит пленительно и сложно. А сама архитектура? Блядь, да в сраном Си использовать полноценные классы! Причём так оригинально - по указателю лежит структура-дескриптор, а за ним данные. А теперь скажите, хоть кто-нибудь, кроме майкрософта, додумался бы до этого? А?
Аноним 21/12/15 Пнд 23:59:31 #146 №609294 
>>609291
>Не станет, но может. А вот в WinAPI может не каждый.
Каждый может, кому интересна сфера. Но редкий даун жрёт говно, когда оно давно протухло.

>кто-нибудь, кроме майкрософта, додумался бы до этого? А?
Уносите толстого. Восхищаться всяким говном можно сколько угодно. Я ковыряю блядские байты богом забытой игры, которой 20 лет. Я тоже восхищаюсь структурой и всеми ухищрениями и взаимозависимостями, которые так нахожу, реверся код. Это невероятно и охуительно, в это тоже НЕ КАЖДЫЙ СМОЖЕТ, но это нахуй никому кроме меня не нужно и я это понима. И ничего в этом илитного нет. Но ты ещё и слагаешь как мудак.
Аноним 22/12/15 Втр 00:07:39 #147 №609303 
>>609291
>использовать полноценные классы
Неполноценные. В отличие от крестов, тут не будет compile-time проверок, а с безопасностью теряется и вся суть классов.
Аноним 22/12/15 Втр 00:21:27 #148 №609309 
>>609294
>в это тоже НЕ КАЖДЫЙ СМОЖЕТ, но это нахуй никому кроме меня не нужно и я это понима
Но это богом забытая игра. А это библиотека, о которой знают все. Да если им дать информацию, они, как псы, вцепятся в неё.
>И ничего в этом илитного нет
А вот в этом ты неправ. Даже то, что делаешь ты, вполне элитно. Гордись этим.

>>609303
Но блядь. ЭТО СИМУЛЯЦИЯ КЛАССОВ НА СИ! Это ли не охуенно? Это всё равно, что на микроволновке ездить до магазина. Взрывает мозг.
Аноним 22/12/15 Втр 00:40:45 #149 №609326 
>>609309
Ты не понимаешь. Глупо дрочить на фичи, которые ничего не дают и сделаны просто, чтобы все охуели. Классы в си это блажь, потому что в C++ уже есть нормальные классы, но при этом оверхеда перед си нет, что позволяет использовать кресты. А, например, шаблонная ебля в крестах - не блажь, потому что такое есть только в более медленных языках, пусть даже более удобно реализованное. Если тебе нужно просто выебнуться, а не дело сделать, то используй какой-нибудь Brainfuck, с ним все равно будет запутаннее.
Аноним 22/12/15 Втр 01:20:48 #150 №609354 
Блядь, такой охуенный пост удалили. Ну и поделом, неча нам тут анрилейт дискас разводить.
Аноним 22/12/15 Втр 01:21:58 #151 №609356 
14507365190010.png
>>609342
>Монополию?
Не только. Очень много негативных последствий. И для направления и для развития. Но ты прав, что когда специалистов слишком много, это плохо. Люди перестают цениться, не смотря на то, сколько они потратили времени на обучение и насколько высококлассными они являются.
Тут поможет завышенный порог вхождения, допустим на собеседованиях, принимать по результатам олимпиадных задач, как это делают во всяких гуголах. Но ты ведь сам тогда рискуешь оказаться не у дел, илита.
Аноним 22/12/15 Втр 01:23:29 #152 №609357 
>>609352
>не только двигаться дальше, но и облегчить жизнь тому дурака, который пойдет по твоим стопам
Я забыл проаргументировать это.

Так вот — вернёмся к той забытой богом игре. Кажется, в 2000 или около того был один парень, достаточно глубоко разобравшийся в вопросе. Он мало что за собой оставил, поэтому мне пришлось копать свой тоннель. Однажды, я всё же разыскал того парня. Он тогда уже дропнул работу в senile team (старая геймдев контора) и уехал в китай. Я тогда уже запутался, но всё же смог с ним связаться. На мои вопросы он не ответил, сказав, что уже забросил всё это. Не удивительно, ему уже и лет-то дохрена.

Я разобрался во всём самостоятельно, но в любом случае очевидно, что прогресс не представляется возможен без передачи знаний.
Аноним 22/12/15 Втр 01:27:39 #153 №609360 
>>607640
3 - можно, да, но некоторые вещи в крестах проще/быстрее реализовать.
Аноним 22/12/15 Втр 01:45:09 #154 №609369 
14507379098880.jpg
>>609357
>ему уже и лет-то дохрена
Тру олдфагов только на с/с++ можно встретить? Вообще к годам 50-60 есть кто продолжает именно кодить?
Аноним 22/12/15 Втр 01:47:33 #155 №609371 
>>609369
Саттер вроде кодит еще. Емнип он тимлид в команде Visual Studio.
Аноним 22/12/15 Втр 08:23:50 #156 №609423 
Посоны, самая overarchitectured библиотека 21-го века обновилась уже почти как неделю, а тут не слухом не духом.
http://www.boost.org/users/history/version_1_60_0.html
Аноним 22/12/15 Втр 08:41:31 #157 №609426 
>>608744
Код не видел (сижу с тостера), но надо просто объявить get_name как virtual и хранить в массиве указатели (а объекты создавать в куче например)
Аноним 22/12/15 Втр 18:36:28 #158 №609735 
>>609369
http://www.infoworld.com/article/2653406/it-training/looking-for-job-security--try-cobol.html
Аноним 22/12/15 Втр 19:48:19 #159 №609812 
>>609423
послушай, первое что ты должен уяснить, если хочешь писать продакшен на крестах - не юзать stl
второе - не подключать буст
а теперь иди нахуй
Аноним 22/12/15 Втр 19:56:13 #160 №609821 
>>609812
Шта?
А третьим будет - "Писать на ANSI C"?
мимо пять лет на плюсах
Аноним 22/12/15 Втр 19:58:35 #161 №609826 
>>609812
Аминь.

>Плюсоебство - это как православие. Когда протестантизм завещает работать над собой и создавать блага, славя величие Господа, православие требует от последователя искупления греха, посредством непрерывного страдания, как страдал Иисус неся свой крест.
Аноним 22/12/15 Втр 20:56:10 #162 №609887 
>>609812
>не юзать stl
Хуёвая затея.

>не подключать буст
А вот это уже нормальный подход.

>а теперь иди нахуй
Нет ты.

мимо тот вася которому ты отвечал
Аноним 23/12/15 Срд 02:18:38 #163 №610094 
>>609887
>Хуёвая затея.
сделать stl стандартной библиотекой - это была вторая самая большая ошибка страуструпа и комитета
ну а если практически подходить к этому, ведь приложения пишутся на основе какого-либо фреймворка (что куте, что связка atl+wtl, что mfc, что борландовские фреймворки, да мало ли их), а когда вдобавок начинают юзать stl, в результате происходит смешение стилей программирования (и не только на уровне синтаксиса, но и семантически)
самые мерзкие потроха прог что я видел - лапша из stl, си-кода с вызовами стандартной сишной библиотеки, winapi а поверх этого какой-нибудь фреймворк еще
самые охуенные проекты (и соответственно, чуваки которые их делали охуенны) - юзали, положим борландовский билдер, дак они писали собственные пакеты и компоненты, так же как и стандартные пакеты в билдере, а все сторонние библиотеки, что нужно было подключать + все winapi заворачивали в это, получался код единого стиля
или тоже самое, но проекты были запилены на связке atl+wtl
Аноним 23/12/15 Срд 02:32:43 #164 №610103 
>>610094
Так ты, блядь, уточняй. У нас, например, ядро проекта запилено на C++ & STL & Boost. Никакого куте, мфц, винапи и прочего. Собирается в толстую dll'ину с известным интерфейсом.
А вот на это сверху уже лепится гуй на куте. И за стл в гуе у нас больно дают по рукам, ибо вот тебе куте - его и люби.
Аноним 23/12/15 Срд 03:41:40 #165 №610118 
>>608770
>подсказали книгу на дваче
>коко никаму нискажу идете нохуй йа илито
По-моему, ты пидорас.
Аноним 23/12/15 Срд 09:57:19 #166 №610172 
>>610094
Ой бля. Если ты не в курсе, что модульность - одна из главных концепций ООП, нахуй ты что-то пишешь? Если с тобой работают быдлокодеры, которые срут под себя - это не проблема используемых библиотек.
Аноним 23/12/15 Срд 10:34:05 #167 №610181 
>>608242
> 2015
> Courier
Аноним 23/12/15 Срд 11:21:01 #168 №610205 
>>610181
А чо ща модно на сперме? Анальный консолас?
Аноним 23/12/15 Срд 11:37:12 #169 №610213 
>>610172
Малаца
Аноним 23/12/15 Срд 12:22:30 #170 №610231 
>>610181
И что?
>>610205
Это XP.
Аноним 23/12/15 Срд 14:00:28 #171 №610302 
>>610231
>Это XP.
Ииии... чо?
Аноним 23/12/15 Срд 14:07:31 #172 №610309 
>>607248
еби fltk
Аноним 23/12/15 Срд 14:22:08 #173 №610318 
>>610103
а теперь открывается первая и самая главная проблема крестов - а именно отсутствие abi, что у вас на границе модулей? - скорее всего, голый сишный интерфейс
и что получается - в библиотеке stl + boost, на границе модуля - голый си, а гуй на qt, итого получается та же лапша
а теперь сравни это с тем когда ты используешь объектные системы сделанные на сях - com под винду и gtk под юникс-семейство
не говоря уж про динамическую загрузку модулей в языках ml-семейства, сборки в дотнете, загрузка классов в ява
Аноним 23/12/15 Срд 15:44:19 #174 №610367 
>>610318
Сам ты проблема ходячая.
Аноним 23/12/15 Срд 15:48:07 #175 №610370 
>>610172
>>610367
ебать че за утырки
нечего сказать по делу, не кукарекайте
Аноним 23/12/15 Срд 18:28:25 #176 №610538 
>>610318
Ты какую-то глупость спизданул сейчас. Лапша будет, если в коде рядом находятся разные концепции. Когда разные модули написаны разными концепциями и даже на разных языках - очень хорошо, потому что в каждом модуле можно использовать инструмент, заточенный под определенную задачу. В самых узких местах нахуярить на си, да с simd-инструкциями, в регулярном коде юзать stl и другие высокоуровневые либы, а гуй вообще запилить на каком-нибудь медленном говне, но зато кроссплатформенный. Различие в концепциях между модулями не должно смущать, ибо если ты осилил одну концепцию/нанял единственную макаку, то тебе энивей все будет казаться гвоздями, и ты получишь более серьезные проблемы, чем НЕОДНОРОДНОСТЬ КОДА.
Аноним 23/12/15 Срд 19:36:20 #177 №610620 
>>610538
прямо на твоем примере:
пусть у тебя в либе есть какой-то рассчет - а значит это несколько структур данных + пара алгоритмов, работающих над ними
вы, как умные мальчики, все заворачиваете это в stl+boost c шаблонами, функторами вместо циклов, классами с иерархиями и перегрузками, красота в общем
а потом на границе модуля все это приходится приводить к старому си совместимому интерфейсу, по сути возвращаясь к функциям и void*
а потом в самой проге все это еще раз приводится к qt интерфейсам
получается, что помимо того что нужно закодить, нужно все это еще два раза обернуть, у вас там, как говорять layer код
а теперь сравни - я пищу com-совместимую библиотеку на atl и а гуй рисую на бейсике, примерно то же самое можно сделать на gtk, или пишу сборку на любом дот-нет языке, и юзаю ее в любом приложении на любом дот-нет языке, уж не говоря про возможность динамического подгруза класса в явке, возможность динамически грузить модули в языках ml семейства или делать вообще что угодно с исполняемым образом липс-машины (добавлять, изменять, дебажить одновременно выполняемый код в данный момент)
по сути, хочешь юзать modern с++ сейчас - у тебя один выход, а именно делать так, как сделали в casablanca - все въебашено в один большой исполняемый модуль + а наружу торчат веб-сервисы
Аноним 23/12/15 Срд 19:48:12 #178 №610632 
С чего начать изучать Qt?
Аноним 23/12/15 Срд 20:05:55 #179 №610641 
>>610620
Ну давай разберем по частям.
1. Гую не нужно знать внутреннее представление, поэтому приводить ничего не надо. Гуй в любом случае должен получить сущность, которую ему рисовать, а хранится она в map, int [] или vasyan_yoba_container - его не должно ебать. Если это происходит, то у тебя хуевая архитектура, поздравляю.
2. Если ты просто хранишь данные линейно, то ты используешь vector/basic_string/что-то подобное. У них есть методы для доступа к внутреннему си-представлению, указатель на которое можно без проблем передать в другой модуль, который понимает си-интерфейс.
3. Если ты хранишь интеллектуально (какие-нибудь множества или списки там), то да, ты не сможешь передать их между модулями, если использовались разные версии компиляторов. Но если ты пишешь то же самое без stl, фактически на чистом си, то ты проделываешь больше работы, чем для простого написания обертки в три строчки. Да еще и багов словишь.
4. "Ну и хуй с ним", - скажешь ты, - "Но запилить ABI-то все равно могли, не убудет же!" А вот нихуя. Если ты посмотришь исходники stl, то увидишь, что там достаточно много платформозависимого кода, плюс его все время перепиливают, чтобы достичь моар прироста в производительности. Если задать жесткую спецификацию, то будет существенная потеря скорости в будущем, этого допустить никак нельзя.
Аноним 23/12/15 Срд 20:13:31 #180 №610651 
Анон, раз уж развели срач, поясни за STL. Почему его некоторые/многие недолюбливают, не рекомендуют использовать и пр.?
Аноним 23/12/15 Срд 20:19:55 #181 №610658 
>>610651
Потому что в вузах преподы-олдфаги так говорят и почти не преподают его. Потому что раньше до лямбд и auto STL и правда был не очень удобен. Вообще, все проблемы от неосиляторства же.
Аноним 23/12/15 Срд 21:25:20 #182 №610735 
>>610651
Спроси ещё, почему старые пердуны визжат про pure c, ебаный закрытый софт и прочую хуету.
Аноним 23/12/15 Срд 21:29:05 #183 №610740 
>>610641
>хранится она в map, int [] или vasyan_yoba_container - его не должно ебать
как ты это говно пробросишь через границу dll? (а также классы, исключения, перегруженные функции, шаблоны и прочие "вкусности" с++)
что с того что у вас в dllке нахуярен рокетсайнс на stl+boost, когда это все равно приходится обвязывать сишной обвязкой?
я те про это толкую
нету в крестах стандартного abi, как следствие нету возможности полноценной динамической загрузки кода (а приходится делать си-совместимую)
все это приводит к тому что чуть ли не треть кода - просто тупо код обвязок
на си были запилены охуенные объектные системы, самые известные - это com в винде и gtk в юникс системах
в крестах делали более-менее функционирующий abi - например, mfc - ты не задумаываясь размещал классы в mfc dllки, пробрасывал исключения через модули, еще круче было сделано в борландовском vlc - там ведь была система пакетов, часть из них была даже визуальной и использовалать тупым накидыванием на форму, хотя все ведь это лежало в dll
но проблема в том, что это были не стандартные abi
и еще раз - хочешь юзать modern с++ - делай единый исполняемый модуль, если нужно взаимодействие с ним - пробрасывай какую-нибудь форму rpc или веб-сервис
в остальных случаях будешь жрать говно
Аноним 23/12/15 Срд 21:31:03 #184 №610744 
>>610651
потому что изначально stl - это концептуальная библиотека, сделавшая попытку реализовать функциональный подход в языке, который этому не больно то и располагает
и огромной ошибкой было сделать из нее стандартную библиотеку языка
Аноним 23/12/15 Срд 21:32:50 #185 №610747 
>>610620
Ерест какую-то пишешь.
Вот есть у меня ядро которое, например, шифрует файл хитрым алгоритмом. Писано на c++ & stl & boost. На вход получает строку имяфайла (да пусть даже указатель на char), каллбэк для прогресса и каллбэк для вывода ошибки. Где там войды и преобразования?
А если требуется та лапша, что ты расписал - то архитектор мудак, а кодер - индус ебаный.
Аноним 23/12/15 Срд 21:35:49 #186 №610754 
>>610658
преподы-олдфаги так говорят, чтобы тупая студентота вникала в алгоритмы, а не кидала std::sort куда попало.
А тупая студентота, как обычно, не вникает и решает что стл/буст - кака и трахается с собственными велосипедами.
Аноним 23/12/15 Срд 21:38:33 #187 №610758 
>>610740
А нахуй вообще ваш С++ для GUI нужен, можно было бы на node-webkit сделать, как тот же Slack.
Или там на JavaFX или каком-нибудь WPF. А c нативным кодом все равно что у ноды, что у джавы что у дотнета интеграция есть.
Аноним 23/12/15 Срд 21:39:24 #188 №610759 
>>610740
Мгм...
class __declspec(dllimport) myAwesomeClass {...}
Аноним 23/12/15 Срд 21:41:18 #189 №610762 
>>610740
>более-менее функционирующий abi - например, mfc
Бляяяя, держите ебанутого, я его придушу. В мире нет НИЧЕГО, блядь, хуже мфц. Даже червь-пидор и тот тихо посасывает в сторонке.
Аноним 23/12/15 Срд 22:40:32 #190 №610812 
о чем спор касательно dll? Просто никогда не компилил в dll-ки, интересно с чем это все едят.
Аноним 23/12/15 Срд 22:46:11 #191 №610815 
>>610740
>нету в крестах стандартного abi, как следствие нету возможности полноценной динамической загрузки кода (а приходится делать си-совместимую) все это приводит к тому что чуть ли не треть кода - просто тупо код обвязок
Вообще не так.
Отсутствие стандартного ABI приводит к тому, что
1. В линуксе приходится собирать пакеты под системный компилятор.
2. В винде проприетарщину (если нужно закрыть код и распространять его как dll) собирают под 2-3 последние версии майкрософтовского компилятора.

И все. Никаких проблем.

А сишные обертки делают не для С++-кода, а для использования другими языками. Впрочем, и это не обязательно, так как есть SWIG (http://www.swig.org/Doc1.3/Library.html#Library_stl_cpp_library).
Аноним 23/12/15 Срд 22:49:44 #192 №610817 
Парсер съел якорь http://www.swig.org/Doc1.3/Library.html#Library_stl_cpp_library
Аноним 23/12/15 Срд 22:50:20 #193 №610818 
>>610812
пытаюсь объяснить утыркам, почему кресты сосут - а именно нет стандартизированого abi, а значит всю их красоту (классы, перегрузку, шаблоны, исключения) хуй покидаешь за границы динамически загружаемого модуля (в си это механизм dll или so файлов если по простому)
>>610815
вот этот хуй, похоже вообще не понимает о чем речь
Аноним 23/12/15 Срд 22:51:55 #194 №610819 
>>610818
Это ты ньюфаг и нихуя не понимаешь. В шапке про тебя написано: "Хейтер сосет члены на пару со своей мамашей.".
Аноним 23/12/15 Срд 22:52:15 #195 №610820 
>>610818
А зачем их кидать за границу?
Аноним 23/12/15 Срд 22:55:43 #196 №610822 
>>610820
А зачем 10 раз статически линковать какой-нибудь OpenCV? Он должен лежать в /usr/bin/libopencv_core.so. Но он врет. Единственное требование - совместимость версий ABI компилятора.
Аноним 23/12/15 Срд 22:56:03 #197 №610823 
>/usr/bin
в смысле /usr/lib
Аноним 23/12/15 Срд 23:27:53 #198 №610849 
>>610822
http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
Попробую здесь разобраться.
Аноним 23/12/15 Срд 23:31:45 #199 №610853 
>>610740
>com в винде и gtk в юникс системах
Вот ты сам всю суть описал. Нет кроссплатформенности - сразу теряешь 2/3 пользователей. Мне и с либами платформозависимыми ебли хватает, например.
>нету в крестах стандартного abi
Нет, все правильно, и я написал тебе в предыдущем посте, почему это фича, а не баг.
>охуенные объектные системы
Это, мягко говоря, спорное утверждение.
>как ты это говно пробросишь через границу dll
Никак, очевидно же. За всю работу с контейнерами отвечает своя дллка, общение с другими происходит через функции, которые находят элемент/формируют вектор результатов, и уже их передают, например. В нормальной архитектуре так делается, даже если по факту линковка статическая и ты можешь получить доступ к этим внутренностям. Расширяемость, тестируемость, все дела.

Да проще тебе ебало набить, няша. Я ему про Фому, а у него дядя в Кiеве.
Аноним 23/12/15 Срд 23:37:24 #200 №610857 
>>610744
Присутствие лучше отсутствия, так-то.
>>610747
>>610754
Двачую.
>>610759
Там емнип есть анальные ограничения, не? Что он должен быть POD или типа того.
>>610822
Ну так перекомпилируй дллки каждый раз при смене компилятора, ты так говоришь, как будто это каждый день происходит. Вообще, настоящая независимость от версии компилятора обычно нужна довольно редко, в каком-нибудь диком легаси, которому уже не помогут вкрапления stl, лол.
Аноним 23/12/15 Срд 23:37:56 #201 №610858 
>>610849
Да это не суть на самом деле. Статическая линковка от динамической в плане требований к ABI ничем не отличается - .o файлы от разных версий компиляторов С++ ты точно так же не сможешь слинковать статически, то же касается статических либ, то же и динамических.

То есть почитать ты можешь, но к обсуждаемому вопросу это отношения не имеет. Этот хуй почему-то думает, что код в .dll чем-то принципиально отличается от кода в другом .o файле, а это не так.
Аноним 23/12/15 Срд 23:41:11 #202 №610861 
>>610858
Ну нет, я с ним согласен, что проблема проявляется в основном только с dll. Потому что dll распространяют, а объектные файлы - почти никогда.
Аноним 23/12/15 Срд 23:43:24 #203 №610864 
>>610857
>Ну так перекомпилируй дллки каждый раз при смене компилятора, ты так говоришь, как будто это каждый день происходит.
Так я об этом и говорю. Я не понимаю, что мелкобуквенный несет вообще.

Бывает только одна проблема - когда проприетарная библиотека откомпилирована под древнюю версию компилятора, а автора давно не существует. Но я такое встречал только во времена C++ Builder 6.
Аноним 23/12/15 Срд 23:45:14 #204 №610867 
>>610858
>>610858
Да я в принципе ньюфаг в плане вот этих сборок библиотек, написания мейкфайлов/cmakelist'ов, интересно подтянуть свои знания в этой области.
Аноним 23/12/15 Срд 23:50:54 #205 №610875 
простой вопрос: как пробросить класс через dll?
как пробросить исключения через dll?
что делать с шаблонными функциями и перегружеными в dll?
просто подумайте, почему это нельзя сейчас делать общеизвестным методом (считай чтобы был стандарт на это)
и почему это хуево
в конце концов все упирается в то что нельзя на крестах сделать полноценную плагинную систему
на чистых сях - можно, на любой из объектных систем, запиленых на си-интерфейсах (com, gtk) - можно
а на крестах - нельзя
Аноним 23/12/15 Срд 23:51:44 #206 №610876 
>>610867
http://stackoverflow.com/questions/9688200/difference-between-shared-objects-so-static-libraries-a-and-dlls-so вот почитай
Аноним 23/12/15 Срд 23:54:15 #207 №610878 
>>610875
Никак. Эмулировать кодами ошибок. Не перегружать шаблонные функции в dll. Потому что это замедлит язык, а скорость приоритетна.

Еще вопросы?
Аноним 23/12/15 Срд 23:55:37 #208 №610879 
>>610875
Пункт 1 в FAQ:
>в крестах ты никогда не платишь за то, чего не используешь
Допустим, меня не ебут никакие dll, я просто хочу слинковать статически свою охуенно быструю софтину. Почему я должен получать замедление из-за того, что какой-то хуй захотел ПЛАГИН?
Аноним 23/12/15 Срд 23:56:46 #209 №610881 
>>610875
>простой вопрос: как пробросить класс через dll?
А как ты класс из соседнего .o файла берешь? Пиздец, что за тупой вопрос, #include <class_header.hpp>, и все.
Аноним 23/12/15 Срд 23:57:56 #210 №610882 
>>610881
Нельзя так, в этом вся суть. Если бинарные интерфейсы у компиляторов разные, то все сломается.
Аноним 23/12/15 Срд 23:58:00 #211 №610883 
>>610853
говна пожри
stl-boost-qt лапша у него нормальная архитектура

(Автор этого поста был предупрежден.)
Аноним 23/12/15 Срд 23:58:44 #212 №610885 
>>610881
ебать, дно пробито
хули тут распыляться, я сворачиваюсь
Аноним 23/12/15 Срд 23:59:39 #213 №610889 
>>610885
Объясни мне, каким образом я пользуюсь C++-интерфейсом OpenCV при условии, что он лежит в библиотеке? Может потому что это ты пробил дно своей тупизной?
Аноним 24/12/15 Чтв 00:02:01 #214 №610893 
>>610889
Ты компилируешь ее вместе со своей программой, одним и тем же компилятором. Ну не тупи, анон, например, gcc делает у членов класса выравнивание условно, а clang - нет. Ты передал указатель и при попытке обратиться к члену получишь гроб кладбище.
Аноним 24/12/15 Чтв 00:04:18 #215 №610895 
>>610893
Сам не тупи. Я тут >>610815 написал все, что об этом думаю. Сейчас 2015 год, CMake скомпилирует тебе что угодно под что угодно в автоматическом режиме, но нет, не хочу CMake, хочу extern "C" и __AddRef с __Release.
Аноним 24/12/15 Чтв 00:09:58 #216 №610899 
Cтоит ли попробовать Rust для расширения кругозора, вторым языком?
Аноним 24/12/15 Чтв 00:14:46 #217 №610902 
14509052864330.png
>>607053 (OP)
помогите пожалуйста с кодом
http://pastebin.com/9D7MwptS
есть форма, где два элемента TextBox и один Button, мне нужно чтобы когда я вводу в TextBox1 массив чисел, после нажатия на Button в TextBox2 мне выводился преобразованный массив, в котором сначала идут элементы, которые больше или равны нулю, а затем отрицательные элементы, но мне на элемент TextBox2 выводится что-то странное, подскажите пожалуйста, как исправить
Аноним 24/12/15 Чтв 00:15:50 #218 №610903 
>>610895
Если cmake скомпилирует тебе a.cpp и b.cpp разными компиляторами, а потом слинкует, то работать не будет, базарю.
Аноним 24/12/15 Чтв 00:16:28 #219 №610904 
>>610903
Ты вот это нахуя ща спизданул? Информационный шум.
Аноним 24/12/15 Чтв 00:17:43 #220 №610906 
Если же речь о том, что хочется написать ПЛАГИН, который компилируется любым компилятором, то здесь C ABI нужно не потому что у С++ ABI нет, а потому что плагин, внезапно, можно и на любом другом языке писать, который вообще может даже классов не иметь, а быть с ADT и тайпклассами. C ABI в этом плане наименьший общий знаменатель, который поддерживают все нативные языки. Нужно большее - смотри в сторону JVM и .NET. Если же нужен только чистый C++, то проблемы использовать один компилятор нет.
Аноним 24/12/15 Чтв 00:17:45 #221 №610907 
>>610904
Чтобы до тебя, хуиная голова, дошло, что речь идет не о том, как надо делать, а о том, что будет, если сделать, как не надо.
Аноним 24/12/15 Чтв 00:24:43 #222 №610912 
>>610907
Я это - >>610815 - для кого писал? Бросай привычку считать собеседника тупее себя.
Аноним 24/12/15 Чтв 00:50:29 #223 №610922 
О чём на этот раз спорите?
мимо помню как вы на 200 больших постов растянули срач об использовании дебагеров
Аноним 24/12/15 Чтв 02:30:57 #224 №610951 
>>610889
ты линкуешься с ним статически потому что
в одном екзешнике можешь хоть на ушах стоять, крути что хочешь
разговор за то что кресты в крестах нет стандарта abi, а значит нет динамической подгрузки кода, а значит не сделать полноценную плагинную систему, например
Аноним 24/12/15 Чтв 02:59:04 #225 №610957 
>>610951
>полноценную плагинную систему, например
Полноценная плагинная система поддерживает любой язык, и было бы странно, если бы clang и GHC имели бы что-то общее, помимо соглашений о вызовах функций (и обычно это не cdecl). А для внутренних дел достаточно использовать один компилятор.
Аноним 24/12/15 Чтв 13:09:48 #226 №611144 
>>610740
Ну и позорище
>как ты это говно пробросишь через границу dll?
На текущем проекте ~300 dll файлов с с++ abi, ексепшонами, шаблонами, и динамической загрузкой отдельных модулей. Давай расскажи мне что оно не работает.
>на си были запилены охуенные объектные системы
>com в винде
Ясно-понятно, СОМ как предел местаний. Пару лет по работе использовал что-то похожее, говно-говном.

>>610857
>Там емнип есть анальные ограничения, не? Что он должен быть POD или типа того.
Да, кое-какие ограничения действительно есть. Наш эксперт внезапно обнаружил что есть способ прокинуть c++ abi между dll. День прошел не зря, не так ли?

>>610875
>>610951
Я хочу напомнить то в с++ можно линковатся с динамическим рантаймом. В этом случае stl будет в отдельной либе. такие дела. Хуле вы такие тупые, не стыдно?

Аноним 24/12/15 Чтв 14:38:28 #227 №611207 
>>611144
>~300 dll файлов с с++ abi, ексепшонами, шаблонами, и динамической загрузкой отдельных модулей
и все это у вас компилится одной версией компилятора, под одну платформу
конечно, блядь у вас все работает, но речь то в треде совсем не об этом
Аноним 24/12/15 Чтв 14:54:19 #228 №611216 
>>611207
>и все это у вас компилится одной версией компилятора, под одну платформу
А зачем использовать разные компиляторы, скажи мне? Какая-то надуманная проблема. Большинство либ идет в комплекте с Cmake, сгенерить make-файлы под нужный компиль не проблема.
>конечно, блядь у вас все работает, но речь то в треде совсем не об этом
То-то для половины треда это настоящее откровение.
Аноним 24/12/15 Чтв 14:59:53 #229 №611224 
>>611144
> Ясно-понятно, СОМ как предел местаний. Пару лет по работе использовал что-то похожее, говно-говном.
COM на Винде / Gtk в Линуксе / NSObject на Маке - отличная архитектура для системы, лишенной сборщика мусора. Единственное говнокодство в COM это использование GUID'ов вместо строковых имен.
Аноним 24/12/15 Чтв 15:11:09 #230 №611237 
>>611224
Вот что интересно. В винде и маке COM и NSObject вшиты в систему. Ты пишешь код и точно знаешь, что он запустится у конечного пользователя. А в линуксе либы gtk в системе присутствуют не обязательно. Более того, есть долбоёбы, которые принципиально не хотят ставить gtk, потому что любят кеды. Как итог, под линукс вообще нет смысла писать - зачем, если не на каждой копии этой говносистемы запустится твой код?
Аноним 24/12/15 Чтв 15:15:16 #231 №611241 
>>611237
На си вариантов нет, Qt требует крестов.
Аноним 24/12/15 Чтв 15:15:49 #232 №611242 
>>611237
Это одна из причин, почему эта система узкоспециализированная вундервафля для серверов и мамкиных технофашистов.
Аноним 24/12/15 Чтв 15:20:44 #233 №611250 
>>610902
Подозреваю, что у тебя лютая хуйня вместо перевода строки из текстбокса в числа.
Аноним 24/12/15 Чтв 16:28:03 #234 №611352 
>>610902
ToString() для массива выводит просто название типа. Тебе нужно или переопределить ToString() (тоесть свой класс создать) или выводить по числу, например сначала все в строку скинуть а потом уже на лейбл хуячить.
Аноним 24/12/15 Чтв 17:38:23 #235 №611417 
>>611352
Есть же std::to_string, надо просто ее к каждому элементу применить, а не к самому массиву.
Аноним 24/12/15 Чтв 18:43:46 #236 №611467 
>>611237
У твоего опенсорсного кода gtk будет записан в dependencies твоего пакета. Кто-то арчешкольник, которого ебет наличие gtk-либ на kde-шной системе - кто-то не поставит твой софт.А проприетарный код будет таскать все зависимости с собой, как на той же винде. У меня, например, есть матлаб под линукс, так это йоба-папка размером с гигабайт, в которой даже своя древняя java с собой положена.
Аноним 24/12/15 Чтв 18:48:43 #237 №611469 
>>611207
>и все это у вас компилится одной версией компилятора, под одну платформу
Да, и еще и устанавливается в одну строчку, типа sudo apt-get install libopencv-dev. А ты думал. Собственно, я знаю, что ты думал. "самые охуенные проекты (и соответственно, чуваки которые их делали охуенны) - юзали, положим борландовский билдер, дак они писали собственные пакеты и компоненты, так же как и стандартные пакеты в билдере, а все сторонние библиотеки, что нужно было подключать + все winapi заворачивали в это, получался код единого стиля". 2015 год, билдер, winapi, компоненты.
Аноним 24/12/15 Чтв 19:51:27 #238 №611526 
Знаю, что вопрос не для этого треда, но спрошу тут. С чего вы начинаете писать программы? Я пока только учусь и решил для опыта написать аудиоплеер, но теперь сижу и не знаю с какой стороны за это взяться. Нахуярить гуй в Qt дизайнере или сначала понаписать классов для всяких плейлистов, или это все вообще не то и начинать лучше с другого?
Аноним 24/12/15 Чтв 19:54:34 #239 №611529 
14509760745160.jpg
>>611526
Сначала вся логика, потом гуй. Вообще как ни странно, но гуй/веб-фронтенд для меня всегда сложнее и дольше писать, чем основной код.
Аноним 24/12/15 Чтв 19:59:44 #240 №611532 
>>611526
Написал фичу - прихуярил в гуе рабочую заглушку, чтобы ее тестить.
Аноним 25/12/15 Птн 00:30:34 #241 №611778 
>>611526
Сначала пишешь libyoba и тестовое консольное приложение к нему. Потом допиливаешь консольное приложение. Потом добавляешь гуй. Вот так - >>611532 не делай ни в коем случае, так только дауны делают с циклом "исправил ошибку, нажал скомпилироваться, запустил и произвел 10 шаманских кликов мышкой, чтобы все протестировать". А цикл компиляция-отладка-тест должен быть по-максимуму автоматизирован. И только с уже отлаженным ядром можно думать о гуе.
Аноним 25/12/15 Птн 08:12:39 #242 №611884 
>>607053 (OP)
Коданы, что православней указатели или ссылки? Сам ссылками редко пользуюсь, только при передаче параметров в функции и при перегрузке операторов = и ++. Смартпоинтеры не интересуют пока.
Аноним 25/12/15 Птн 09:24:01 #243 №611897 
Тред не читал. Здесь уже говорили, что на пике стоит поменять местами С и С++? Работы оплачиваемой для няшной вроде меньше. Не?
Аноним 25/12/15 Птн 09:56:15 #244 №611916 
>>611884
Это ОЧЕНЬ сильный срач, вообще, скорее, вопрос стиля и как принято писать в определенном проекте.
Ссылки - это просто синтаксический сахар над указателями.
Аноним 25/12/15 Птн 09:59:33 #245 №611917 
Не подскажите, чем со временем у вас работать? Нужно что-то вроде clock_gettime. Хочу точное время выполнение высчитать.
Аноним 25/12/15 Птн 10:04:01 #246 №611918 
>>611917
1) Бери профайлер. Время выполнения через clock не будет точным т.к. измеряет не время выполнения, но разницу во времени, которая может меняться по разным причинам (например, ОС будет чуть больше отдавать времени другим процессам и т.п.)
2) http://www.cplusplus.com/reference/chrono/
Аноним 25/12/15 Птн 10:45:51 #247 №611937 
>>611884
std::..._ptr классы
Аноним 25/12/15 Птн 12:52:30 #248 №611997 
>>611526
Напиши годный DLNA Renderer только для музыки.
MediaMonkey часто падает и зависает.
Аноним 25/12/15 Птн 14:06:56 #249 №612029 
>>611997
Ты это сейчас вообще не тому человеку адресовал. У меня даже самописный калькулятор часто падает и зависает.
Аноним 25/12/15 Птн 14:15:14 #250 №612033 
>>611997
Не оно? http://www.homemediaserver.ru/index.htm
Аноним 25/12/15 Птн 17:38:25 #251 №612192 
>>611916
>вопрос стиля
Не всегда же. В прошлом или позапрошлом треде уже срались, и я пояснял, как использование ссылок улучшает безопасность передачи аргументов, но ухудшает понимание того, что они мутабельны.
Аноним 25/12/15 Птн 17:40:35 #252 №612198 
>>611897
Тогда будет не смешно. Тащемта, в рейтинге TIOBE C на втором месте, а кресты на третьем.
Аноним 25/12/15 Птн 18:21:48 #253 №612250 
>>611237
фигня
ну хочешь что поставить емакс на kde-based de, ну притащить он с собой несколько gtk зависимостей, ну и че?
всегда это можно будет удалить, если надо с помощью системы управления пакетами..
Аноним 25/12/15 Птн 18:26:39 #254 №612254 
>А зачем использовать разные компиляторы
а как по твоему разпространяются бинарные пакеты с закрытыми патентами алгоритмами? это просто dll или so из которой торчит сишный интерфейс
или com-библиотека, из которой торчит объектный интерфейс
и никого не ебет какой версией компилятора и вообще каким компилятором она сделана, и подключить ее можно к проекту на любом помпиляторе, и даже более того, подключить вообще к любому языку, поддерживающему ffi
блядь, это ебанутый тред
я пишу очевидные вещи, просто очевидные, это как то что хлеб - еда, а кисель - напиток
при этом меня кроют хуями
Аноним 25/12/15 Птн 18:51:47 #255 №612270 
>>612033
Это сервер. Рендере проигрывает музыку с этого сервера.
Аноним 25/12/15 Птн 19:54:11 #256 №612305 
>>612254
Тебе и было сказано, что в разработке такие "универсальные дллки" это довольно редкий случай, обычно ты ну максимум манкипатчишь собственные старые в уже развернутом приложении. А полноценный проброс классов нужен и того реже, поэтому решено было этим пожертвовать в угоду скорости.

>закрытыми патентами алгоритмами
А это вообще пушка, с учетом того, что в каждом опубликованном патенте всегда есть полное описание алгоритма.
Аноним 25/12/15 Птн 19:54:26 #257 №612306 
>>612271
http://beginners.re/
https://www.owasp.org/index.php/Web_Application_Penetration_Testing
Аноним 25/12/15 Птн 21:34:37 #258 №612356 
С завтрашнего дня начинаю учить С++ по книге Страуструпа.
Книгу уже скачал.
Аноним 25/12/15 Птн 21:37:24 #259 №612357 
>>612356
смешной ты однако
Аноним 25/12/15 Птн 21:38:54 #260 №612362 
>>612357
Почему?
Аноним 25/12/15 Птн 21:42:04 #261 №612364 
>>612362
Со Страуструпа не начинают. Страуструпом заканчивают.
Какие-нибудь еще языки знаешь?
Аноним 25/12/15 Птн 21:42:47 #262 №612365 
>>612364
этого двачую

>>612356
завтра будешь ебаться с компилятором, не осилишь циклы и условные конструкторы и бросишь программирование.
Аноним 25/12/15 Птн 21:47:10 #263 №612368 
Привет, двощи. Стоит задача - необходимо проиндексировать файлы подходящие под определенную маску аля "*.dat". Т.е. я хочу получить массив/список эдаких ссылок на файлы, по которым я могу получить файл для чтения/изменения. Как это сделать быстрее всего ? В винапи есть файловые дескрипторы, это оно ?
Аноним 25/12/15 Птн 21:49:40 #264 №612370 
>>612368
Оно. Если не знаком с WinApi, то не берись. На C# это делается быстрее.
Аноним 25/12/15 Птн 22:42:48 #265 №612429 
>>612364
>>612365
Ну, я давно изучал пхп (цсс, хтмл, немного явы, на уровне встройки его в пхп код), мог даже что-то неплохое написать. Но сейчас я уже его почти не помню.
А с чего тогда лучше начать?
У вас, просто, в шапке и указан Страуструп для начинающих. Тем более это самая свежая книга.
Аноним 25/12/15 Птн 22:51:08 #266 №612437 
>>612368
boost::filesystem
Аноним 25/12/15 Птн 23:17:26 #267 №612455 
>>612429
>для начинающих
Можно поинтересоваться, зачем тебе это?
Аноним 25/12/15 Птн 23:18:20 #268 №612456 
>>612429
Я с Шилдта начинал. Свежесть не так и важна, если только начинаешь программировать. Вон те же сишники, все еще K&R читают, а ей сколько лет уже! Тебе главное понять принципы, что да как работает. А потом, как наберешься опыта и будешь без проблем (и гугла) решать простые задачи, переходи на Страуструпа, или уже на черновик стандарта.
Аноним 25/12/15 Птн 23:21:08 #269 №612462 
>>612455
Не знаю, может работу найти. Меня недавно уволили. А может для себя - напишу программы и игры, стану более компьютерно-грамотным.

>>612456
Ок, а что за черновик стандарта. И с чего, всё таки, лучше начать?
Аноним 25/12/15 Птн 23:28:44 #270 №612468 
>>612429
Там первая ссылка самая на книгу для начинающих ведет
Аноним 25/12/15 Птн 23:30:56 #271 №612471 
>>612462
Язык программирования - это лишь два слова, которые ничего не значат сами по себе. Значение им придает стандарт, в котором описываться что это значит и как это должно работать. Стандарты принимаются специальными комитетами, которые отвечают за дальнейшее развитие языка. А по этому стандарту пишут компиляторы, которые являются реализациями какого-либо языка. Есть множество различных компиляторов, каждый из которых в чем-то отличается от другого. Ведь каждый может интерпретировать написанное по разному. Но тебе со стандартами С++ стоит ознакомится только тогда, когда ты уже будешь более-менее технически образован, чтобы понять что там написано. Ну и нормальное знание английского, так как ты вряд ли найдешь перевод.
Аноним 25/12/15 Птн 23:35:04 #272 №612478 
>>612468
А вот кстати что потом то читать? Ну вот прочитал я книгу для нубов, научился выводить хелоу ворлд в консольку, а дальше куда? Что читать, что писать? Я думал Саттер с его задачами подойдет, но оказалось там пока для меня пиздец. Теперь сижу и не знаю за что хвататься и куда смотреть.
Аноним 25/12/15 Птн 23:37:11 #273 №612481 
>>612478
Изучи STL для начала. Затем учись пользоваться какими-нибудь API. А вообще, если ты не знаешь зачем тебе это - это тебе не нужно.
Аноним 25/12/15 Птн 23:42:51 #274 №612489 
>>612462
с++ слишком огромный чтобы его изучить весь. Что тебя привлекает, гейдев? Выбери интересную задачу, может просто посмотри на всяких апворках, даже неберясь за нее просто попробуй сам сделать. Почитай как такие задачи решают профессионалы.
Параллельно читай основные приемы, как писать классы, какие библиотеки для твоей задачи уже написаны, как ими пользоваться. А то ты так будешь вкатываться лет 5 лол. И на тот момент уже все что ты прочитал устарело. А текущему работодателю нахуй твой набор библиотек не нужен.
Аноним 26/12/15 Суб 01:28:29 #275 №612566 
>>612489
Он несравнимо меньше, чем какая-нибудь модная параша с сотнями фреймворков. Без проблем можно изучить процентов на 70 и иметь неплохое представление об оставшихся 30.
Аноним 26/12/15 Суб 01:39:50 #276 №612570 
>>612489
А что изучать в голых плюсах без, простигосподи, STL?
Сам язык легко осваивается за неделю-другую.
Потом начинаешь изучать библиотеки (разумеется, в рамках каких-то задач).
А потом, много позже, приходит понимание.

Если вопрос в том, что точно изучать, отвечаю - базовый синтаксис, STL. Понять что такое boost. Дальше - по желанию.
Аноним 26/12/15 Суб 02:39:55 #277 №612585 
>>612566
Написать зэловорд на очередном шаблонном фреймворке и почти узнать его - это, блять, не стл с бустом выучить.
Аноним 26/12/15 Суб 05:02:41 #278 №612617 
>>612585
Ну, возможно, что у меня ошибка выжившего, но мне на фоне сотен говнотехнологий, которые непременно требуются на тех же жабовакансиях, stl с бустом показались на порядок однороднее и проще в освоении.
Аноним 26/12/15 Суб 05:05:10 #279 №612618 
>>612617
Двачую этого.
Аноним 26/12/15 Суб 08:03:40 #280 №612676 
>>612570
>базовый синтаксис, STL
В принципе согласен с тобой. Но ведь есть задачи, где stl вообще не нужен? Может ему понравится делать на Qt игры для андроида. Знать нужно, но там порог вхождения настолько низкий, что можно начинать прямо сейчас, без смс, а все остальное изучать в процессе работы.
Аноним 26/12/15 Суб 08:09:46 #281 №612677 
>>612478
Потом надо что-то писать и читать Майерса.
Аноним 26/12/15 Суб 11:02:10 #282 №612713 
Чики, двощ. Есть какие-либо стандарты, а лучше книги по С и С++ в которых описано как работают эти языки "изнутри". То есть, допустим, вызывается функция f(T b) {...}, как создается локальная переменная, как определяется тип и тому подобное. Или достаточно почитать что-нибудь общее наподобие драконбук или это компилятора зависит. Раньше вообще не задумывался об этом когда писал лабы на си, а когда столкнулся с С++ с его перегрузками, конструкторами, то стало интересно.
Аноним 26/12/15 Суб 15:09:37 #283 №612837 
14511317770590.png
>>612713
>как работают эти языки "изнутри"
Assembler.
Disassembler.
Debugger.
Лучше самому один раз попробовать, чем сто раз об этом прочитать.
Возьми откомпилируй функцию с ссылкой в качестве аргумента и попробуй дизассемблируй полученный файл. Или там в дебаггере по шагам смотри что там куда происходит.
Потом с указателем. С классом. Структурой. Я так по всем типам прошелся в свое время.
Аноним 26/12/15 Суб 15:14:50 #284 №612840 
>>612713
У меня сейчас есть:
Andrew Appel — «Modern Compiler Implemenation in C»
Richard Bornat — «Understanding and Writing Compilers»
Terence Parr — «Language Implementation Patterns»
Нарыл в Гугле. И кратко о синтаксических деревьях:
http://www.defmacro.org/ramblings/lisp.html
Аноним 26/12/15 Суб 15:33:03 #285 №612857 
Поясните, боги программирования, как смочь в дизассемблирование? Я уже много кого порядокм заебал, но я делаю мод для одной старой игры на ps1.

Так или иначе, я далеко продвинулся, влез очень глубоко, разобрался во всей структуре диска и внутренних файлах, а также полностью освоил внутренний скриптинг локаций и битв.

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

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

У меня ощущение, что люди с опытом мгновенно видят различные паттерны и шаблоны, когда смотрят на ассемблерный код, но я читаю его строчку за строчкой, так что общую картину не вижу. Ну считалась переменную, на произвелось три тысячи операций над регистрами, ну и что? Как мне понять, что нужная мне функция закончилась и дальше идет уже совершенно другой расчёт? Может, я уже читаю код рендера, а не логики, но не знаю об этом.
Аноним 26/12/15 Суб 15:33:50 #286 №612858 
>>612837
Поддвачну.
Аноним 26/12/15 Суб 15:45:36 #287 №612864 
>>608287
Да, если рядом абстрактная биофабрика.
Аноним 26/12/15 Суб 16:07:29 #288 №612880 
>>609291
Кхм-кхм.

Schreiner A.-T. - Object Oriented C // 1993
Аноним 26/12/15 Суб 16:16:58 #289 №612887 
Нужно создать два стека std::pair фиксированного размера. Как это можно сделать? Вот такой код:

std::vector< std::pair<int, int> > v1(size), v2(size);
s1.swap(v1);
s2.swap(v2);

не компилируется.
Аноним 26/12/15 Суб 16:22:43 #290 №612898 
>>612887
А что такое s1, s2?
Аноним 26/12/15 Суб 16:24:22 #291 №612900 
>>612898
Стеки пар.
Аноним 26/12/15 Суб 16:28:42 #292 №612902 
>>612887
А зачем тебе swap?
Аноним 26/12/15 Суб 16:29:02 #293 №612903 
>>612900
Если я их объявлю, у меня все компилируется. Но тогда это 4 std::pair, а не два, как ты говоришь. Может ты что-то путаешь?
Аноним 26/12/15 Суб 16:37:14 #294 №612908 
>>612902
Нужно создать два стека std::pair фиксированного размера. Как это можно сделать?
Аноним 26/12/15 Суб 16:38:10 #295 №612909 
>>612908
А зачем?
Аноним 26/12/15 Суб 16:39:34 #296 №612912 
>>612909
Динамическое выделение памяти под элементы работает слишком медленно.
Аноним 26/12/15 Суб 16:43:16 #297 №612921 
>>612912
>Динамическое выделение памяти
Но ты ведь уже выделил память.
>v1(size)

>работает слишком медленно
Обрабатываешь миллиарды элементов в секунду?
Аноним 26/12/15 Суб 16:45:07 #298 №612923 
>>612921
>Обрабатываешь миллиарды элементов в секунду?
Да, поэтому стек должен быть постоянного размера. Известно максимальное количество элементов, которые могут храниться в стеке.
Аноним 26/12/15 Суб 16:53:30 #299 №612935 
>>612857
Бамп.
Аноним 26/12/15 Суб 17:50:37 #300 №612980 
>>612713
Наверни Inside the C++ object model Липпмана, правда, она на ангельском и старая, но там годно поясняется.
Аноним 26/12/15 Суб 18:13:26 #301 №612988 
>>608878
Пиздец, какие же здесь сидят аутисты, я просто поражаюсь. Один становится топ 3 директх программистом в России, прочитав книжку. Другой получает задачу, которую решит 8 классник на собеседовании(!!), так он ещё и пишет какой-то шизофренический код с рандомными отступами, на который без слёз посмотреть нельзя.
>убрать пробелы из КОНЦА
На строке "ss ss" твоё говно как отработает?
Аноним 26/12/15 Суб 18:16:26 #302 №612989 
>>612988
Ты ещё и \0 записываешь в предпоследний индекс, а не последний. Забей, программирование не твоё.
Аноним 26/12/15 Суб 18:22:35 #303 №612992 
>>612988
>топ 3 директх программистом в России,
кинь ссылку на ладдер
Аноним 26/12/15 Суб 18:26:05 #304 №612994 
>>612992
/rank
Аноним 26/12/15 Суб 19:29:43 #305 №613029 
>>608878
http://ideone.com/Sx9jAn
Аноним 26/12/15 Суб 20:04:18 #306 №613050 
>>613029
https://google.github.io/styleguide/cppguide.html#Horizontal_Whitespace
Аноним 26/12/15 Суб 20:13:24 #307 №613057 
Есть ли области работы с С++, где не требуется знание хардкорных алгоритмов и вузовской математики?
Аноним 26/12/15 Суб 20:14:08 #308 №613059 
>>612857
Бамп.
Аноним 26/12/15 Суб 20:17:26 #309 №613064 
>>613057
Есть ли области работы с молотком, где не требуются слесарные навыки и строительное образование?
Аноним 26/12/15 Суб 20:22:03 #310 №613073 
>>613064
Linux kernel
Аноним 26/12/15 Суб 20:22:23 #311 №613074 
>>613057
Формошлепство на Qt.
Аноним 26/12/15 Суб 20:35:26 #312 №613096 
>>613057
Только преподавание если.
Если боишься матана/алгоритмов то лучше вкатывайся в веб.
Аноним 26/12/15 Суб 21:59:56 #313 №613155 
>>613057
99% программ на C++ любом языке общего назначения не используют ни того, ни другого.
Аноним 26/12/15 Суб 22:01:51 #314 №613157 
>>613064
Скорее
>Есть ли области работы с молотком, где не требуется езда на одноколёсном велосипеде, с одновременным жонглированием десятью урановыми молотками?
Аноним 26/12/15 Суб 22:19:02 #315 №613170 
>>613029
https://ideone.com/3au0jo
Снова байтослесари соснули.
Аноним 26/12/15 Суб 23:48:31 #316 №613223 
>>613170
>C
>2160KB
>Scala
>322496KB
УБИТО
Аноним 26/12/15 Суб 23:50:30 #317 №613225 
>>613170
Успокаивай себя.
[code lang="cpp"]
void trimRight (const char str) {find_if (make_reverse_iterator (str+strlen(str)), make_reverse_iterator (str), [] (char cur) {return cur!=' '))++ = '\0';}
[/code]
Аноним 27/12/15 Вск 00:08:47 #318 №613241 
>>613225
В ответ на нормальный рекурсивный алгоритм, подгоревшая байтомартышка высрала нечитабельное говно на ворохе костылей, ещё и в одну строку запихала, ну лол же.
str.take(str.lastIndexWhere(_ != ' ') + 1)
А сейчас тебя вообще порвёт: str.trim
Аноним 27/12/15 Вск 00:10:52 #319 №613242 
>>613170
А теперь то же самое, но не со строкой, а с указателем на символ.
Аноним 27/12/15 Вск 00:13:03 #320 №613243 
>>613242
Меняешь String на Array[Char], и... абсолютно нихуя не меняется. Енжой ёр система типов.
Аноним 27/12/15 Вск 00:19:43 #321 №613246 
>>613241
>нормальный рекурсивный алгоритм
в школе вы еще циклы не проходили, только рекурсию?
Аноним 27/12/15 Вск 00:21:23 #322 №613249 
>>613246
>циклы
>2016
Мартыхан продолжает демонстрировать свою умственную отсталость.
Аноним 27/12/15 Вск 00:22:05 #323 №613250 
>>613243
Пришел тралить, а что написано не понимаешь. Причем тут массив? Нужно убрать пробелы в конце строки, не зная ее длину, а зная только указатель на начало.
Аноним 27/12/15 Вск 00:22:11 #324 №613251 
>>613249
>маааам, а ведь рекурсия это ведь круче чем циклы???!
Аноним 27/12/15 Вск 00:27:28 #325 №613257 
>>613250
>не зная ее длину
>== '\0'
Аноним 27/12/15 Вск 00:28:10 #326 №613259 
>>613251
Очередной разрыв императивной мартышки, не осилившей рекурсию.
Аноним 27/12/15 Вск 00:29:23 #327 №613260 
>>613259
>мааам, а ведь в императивном программировании же нет рекурсии???
Аноним 27/12/15 Вск 00:33:58 #328 №613268 
>>613260
Начинай переписывать дрисню >>613029 в рекурсивный алгоритм, у тебя пять минут. Время пошло
Аноним 27/12/15 Вск 00:36:26 #329 №613270 
>>613268
>Функция должна быть написана в расчёте на работу с очень длинными строками с очень большим количеством пробелов, оптимизирована по количеству обращений к памяти
>рекурсивный алгоритм
Давай, расскажи, что у тебя стек больше, чем срака твоей мамаши. Кококок хваставая рикурсия конпелятор разбирется.
Аноним 27/12/15 Вск 00:38:30 #330 №613271 
>>613268
>маааааам, а ведь у императивщиков какая-то своя неправильная рекурсия, дыыааа????
Аноним 27/12/15 Вск 00:40:41 #331 №613273 
>>613270
Болезная опущенка не осилила хвостовую рекурсию?

>>613271
Животное обосралось и перешло на визги. Впрочем, ничего нового.
(Автор этого поста был забанен. Помянем.)
Аноним 27/12/15 Вск 03:03:43 #332 №613324 
14511746236730.jpg
>>607053 (OP)
>Стэнли Липпман, Жози Лажойе и Барбара Му - Язык программирования C++ (2014)

В нем задачки есть или онли поясняют за синтаксис и всю хуйню? Вроде полистал - ненашел нихуя.


Какую студию скачивать?
Аноним 27/12/15 Вск 08:15:48 #333 №613379 
>>613259
Вообще-то явное использование рекурсии (вместо комбинаторов) - это дно функционального программирования. Впрочем, что еще ожидать от школьника, выучившего скалу и решившего впечатлить мир этим знанием.
Аноним 27/12/15 Вск 11:23:44 #334 №613404 
>>612837
А если поковыряться с llvm и clang? А то ассемблер/дизассемлер меня не очень радует. В дебаггере же просто адреса памяти и что они хранят, но тут я возможно чего-то не знаю.
Аноним 27/12/15 Вск 15:11:10 #335 №613532 
>>608878
https://ideone.com/dg3UZV

Меня возьмут?
Аноним 27/12/15 Вск 15:12:43 #336 №613533 
>>613532
> for(;;)
Что это за йоба?
Ньюфаг.
Аноним 27/12/15 Вск 15:21:02 #337 №613534 
>>613533
while(true)
Аноним 27/12/15 Вск 15:24:54 #338 №613537 
>>613533
Цикл for (initialization; loh; ++pidr) состоит из трёх частей, разделяемых между собой двумя ;

Любая из трёх частей может быть опущена (в т.ч. любые две из трёх или все три), но обе ; должны обязательно наличествовать, чтобы компилятор понял, что к чему относится.
Аноним 27/12/15 Вск 15:24:59 #339 №613538 
>>613532
Ловите наркомана! Попробуй "a b " сунуть в свою функцию, лол.

>>613225 вот тут же все написано уже.
Аноним 27/12/15 Вск 15:58:33 #340 №613561 
14512211136070.png
>>613538
Ты сам-то проверял свой высер? У тебя там даже количество скобок не совпадает.
Аноним 27/12/15 Вск 16:25:16 #341 №613572 
>>613225
>char*
>strlen
Двойной проход от начала к концу и и от конца к последнему символу. Можно быстрее. Думайте, кандидат, думайте лучше!
Аноним 27/12/15 Вск 16:25:43 #342 №613574 
>>607053 (OP)
что можно на вашем си плюс плюс написать, помимо игор?
Аноним 27/12/15 Вск 16:36:46 #343 №613579 
>>613574
Все?
Аноним 27/12/15 Вск 16:45:17 #344 №613587 
>>613561
А, ну да, ты же обнуляешь каждый раз, когда не пробел, я не заметил. Пардон.

Но все равно твой вариант нихуя не оптимален. Получается сложность O(длина строки), а можно сделать O(количество пробелов в конце). Вот исправленный высер, например:
http://ideone.com/DpE8tK
Аноним 27/12/15 Вск 16:50:42 #345 №613593 
>>613572
strlen обычно инлайнится и будет с оптимизациями O(1) для захардкоженных строк. Так что это спорный вопрос.
Аноним 27/12/15 Вск 18:15:48 #346 №613629 
>>613593
>будет с оптимизациями O(1) для захардкоженных строк. Так что это спорный вопрос.
Я б тебе ПЕРЕЗВОНИЛ
Аноним 27/12/15 Вск 18:19:47 #347 №613632 
14512295872360.png
>>607053 (OP)
помогите пожалуйста, как исправить код, чтобы программа заработала?
Аноним 27/12/15 Вск 18:20:01 #348 №613633 
>>613404
>llvm
Да, будет лучше. Хотел про него написать, на название забыл. Сам не пользуюсь но наслышан что штука крайне полезная.
Аноним 27/12/15 Вск 18:26:34 #349 №613637 
>>613632
Убрать из кода весь WinAPI.
Аноним 27/12/15 Вск 18:28:23 #350 №613638 
>>613632
Этот код для C++ Builder и использует библиотеку VCL. Положи там, где взял.
Аноним 27/12/15 Вск 18:28:30 #351 №613639 
Сосоны, нужно при помощи бустовского сплита разделить строку с получателями эмейл-сообщений. Пример:

"Alex Gregan" <[email protected]> , "Mirana, Griffith" <[email protected]>, Вася Пупкин <[email protected]>

Проблема в сплите по запятой в том, что иногда бывают имена получателей с запятой, как я написал выше. Может кто подбросит регулярку нужную?
Аноним 27/12/15 Вск 18:29:25 #352 №613640 
>>613638
Хотя нет, показалось. Это C++/CLI код. Но все равно, положи там, где взял.
Аноним 27/12/15 Вск 18:30:02 #353 №613641 
>>613638
а как сделать так, чтобы эта программа заработала в Visual Studio 2013?
Аноним 27/12/15 Вск 18:34:18 #354 №613644 
>>613641
Step-1: File-> New -> Projects -> Templates -> visual C++ -> CLR ->Win32 Console Application -> Ok ->Finish

step-2: RightClick on Source Files -> Add new Items -> Visual C++ -> UI -> Windows Forms (MyForm.h) -> add

Step-3: Click on properties in top-right corner (or) Execute. Done!

Аноним 27/12/15 Вск 18:40:23 #355 №613647 
>>613644
я не понимаю, где Properties
Аноним 27/12/15 Вск 18:52:34 #356 №613656 
>>613632
ну помогите же, как сделать так , чтобы этот код заработал?
Аноним 27/12/15 Вск 19:55:05 #357 №613709 
>>613656
Попробуй скобочки добавить после MyForm
Результат или ошибка Аноним 28/12/15 Пнд 04:55:45 #358 №613984 
Господа, как максимально годно, красиво, просто и круто в духе Design Patterns решить задачу возвращения в качестве результата работы метода некоторого нечта - либо того результата того типа, который ожидается, либо объекта класса Ошибка? Исключения, передача дополнительной переменной и прочие ужасные решения подобного рода не интересуют. Хочу максимально инкапсулированно и прозрачно для внешнего кода.
Аноним 28/12/15 Пнд 05:04:26 #359 №613986 
Есть тут знатоки SFML? Вопрос такой: допустим у меня есть 2 слоя с изображениями и один из них я хочу ресайзить так, чтобы второй оставался нетронутым. При этом также желательно, чтобы координаты мыши из них тащились в соответствии с масштабом.
window.view.zoom для этой задачи не подходит, т.к. он ресайзит всё, что находится на экране. RenderTextureы, в которых хранятся эти самые слои, не хотят поддаваться zoom - просто ничего не происходит. Есть ли решение?
Аноним 28/12/15 Пнд 06:04:05 #360 №613993 
http://www.sfml-dev.org/tutorials/2.0/graphics-view.php
Элементарно же.
Аноним 28/12/15 Пнд 06:13:59 #361 №613996 
>>613993
Да, это я видел. И либо я спать хочу, либо просто туплю, но не понимаю, как мне потом координаты к единой системе приводить. Каждый раз по клику переключать view затратно.
Вообще, изначально я думал, что всё, что можно применять к RenderWindow, можно и к RenderTexture. Т.е. я взял бы, перемасштабировал текстуру, вывел бы её на экран и при необходимости встроенным методом pix_to_coords, или как там, получал бы какие мне нужно координаты. Но view, фактически, просто на время изменяет масштаб моего окна, а на текстуре это никак не отображается, так что не зная, масштабированная ли в области клика текстура или нет, я ничего толком сделать не могу. Надеюсь, суть я донёс, а то уже сам забыл, что хотел написать. Надо спать идти.
Аноним 28/12/15 Пнд 08:25:03 #362 №614018 
>>613984
По указателю. Как деды еще делали.
Аноним 28/12/15 Пнд 09:35:06 #363 №614021 
>>613593
Нахуй триммить захардкоженную строку, наркоман?
Строка приходит от юзера. А там уже О(n).
Аноним 28/12/15 Пнд 09:46:03 #364 №614028 
>>614021
C++ string хранит длину в себе.
Аноним 28/12/15 Пнд 12:01:22 #365 №614081 
>>613984
Например, можно возвращать пару или кортеж, где первый элемент технический - ошибка.
Потом, их можно будет легко разделить с помощью std::tie.
Так или иначе ты должен определить один тип возвращаемого объекта, который инкапсулирует и ошибку и возвращаемые данные. Так будет type-safe.

И кстати,
>годно, красиво, просто и круто
противоречит
>в духе Design Patterns
Аноним 28/12/15 Пнд 12:35:07 #366 №614100 
>>613984
https://ru.wikipedia.org/wiki/Null_object_(%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
Аноним 28/12/15 Пнд 14:33:52 #367 №614152 
пацаны, я тут в компанию к Алёне-цепепе нашел Катю-цепепе: https://katecpp.wordpress.com/
Аноним 28/12/15 Пнд 14:34:08 #368 №614153 
>>613984
Очевидная Either монадка
Аноним 28/12/15 Пнд 14:43:00 #369 №614158 
>>613984
boost::variant<T, Error>

>Исключения, передача дополнительной переменной и прочие ужасные решения подобного рода не интересуют
>implying исключения это плохо
ты говноед
Аноним 28/12/15 Пнд 15:14:42 #370 №614180 
>>613996
Ты и правда тупишь, вась.
Аноним 28/12/15 Пнд 15:16:48 #371 №614183 
>>613996
Это так и делается, на самом деле. Ничего затратного в этом нет, обычные афинные преобразования, на производительность едва ли влияют, хоть 100 слоев двигай.
Как хочешь, в общем.
Аноним 28/12/15 Пнд 15:18:14 #372 №614184 
>>613996
Блять, я вообще тоже спать хочу. Я так и не понял, что там за текстура :$
Аноним 28/12/15 Пнд 15:31:00 #373 №614193 
>>614028
Условие читай. Передается char*
Аноним 28/12/15 Пнд 16:10:52 #374 №614213 
>>614180
Можешь пояснить?

>>614183
Пока не придумал другого решения, буду пользоваться этим. Хотя может и правда, так и нужно делать.

>>614184
Ну взять ту же самую миникарту. Допустим у нас есть 2 RenderTexture, в которых лежит полноразмерный оригинал карты. Одну мы просто выводим на экран, а вторую зумим через view.zoom и тоже выводим, где-нибудь в углу.
Теперь, по щелчку пытаемся определить координаты внутри каждой RenderTexture с учётом зума. Для этого нам нужно просто вызвать внутренние методы pix_to_cords, ну или что-то вроде того.

Но это всё в теории.

На практике, судя по всему, придётся делать по другому, потому что RenderTexture не умеее в view.
Берём нашу текстуру карты, меняем view окна, рисуем миникарту, меняем view обратно, рисуем полноразмерную карту. Теперь, для определения координат внутри миникарьы получаем координаты клика, снова меняем view на миникарту, приводим коорлинаты методом и меняем view обратно.

Как то так.
Аноним 28/12/15 Пнд 16:28:44 #375 №614222 
>>614158
Вот этого двачую, без исключений самое лучшее, что можно сделать.
>>614152
Неплохой блог, и не мертвый. Добавлю в следующем тренде, будет шапка с тяночками. Надеюсь, что эта Катя не пишет void main, а то нашему коллеге опять порвет, лол.
Аноним 28/12/15 Пнд 16:32:55 #376 №614226 
>>614222
>void main
А что конкретно плохого, кроме того, что код ошибки не узнать?
Аноним 28/12/15 Пнд 16:37:15 #377 №614234 
>>614226
БЬЕРННАКАЖЭТ!!!!111
Аноним 28/12/15 Пнд 16:43:18 #378 №614238 
>>614226
ошибка цомпеляции будет, т.к. в с++ можно только int main
в сях можно воид, да
Аноним 28/12/15 Пнд 17:06:19 #379 №614253 
>>607053 (OP)
Привет, программач. Дело в том, что мне нужно сделать класс матрицы. Понятное дело, я делаю его через шаблоны, потому что матрицы могут быть 2x2, 3x3, 4x4, 5x2, 1x4 и так далее. Использовать я буду в основном матрицы 4х4. Для них нужно написать повороты, перемещения и другие функции, работающие только для матриц 4x4. Выделять для них целый класс - слишком жирно, я считаю. Как мне указать в шаблонах, что какая-то функция должна собираться, только если выполняется условие, что размер матрицы равен 4x4? То есть такой код не скомпилируется:
Matrix<5, 2, float> mat;
mat.translate(Vector<3, float>(1, 2, 3));

А такой скомпилируется:
Matrix<4, 4, float> mat;
mat.translate(Vector<3, float>(1, 2, 3));
Аноним 28/12/15 Пнд 17:09:50 #380 №614258 
>>614253
Если ты делаешь шаблонные матрицы, что тебе мешает сделать шаблонные функции поворота и перемещения? А для твоего говноедского решения есть static_assert.
Аноним 28/12/15 Пнд 17:12:09 #381 №614261 
>>614258
Поворот и перемещение нельзя сделать для матриц, отличных от 4x4. Почему решение говноедское?
static_assert - это рантайм. Мне бы хотелось во время компиляции указать на все ошибки.
Аноним 28/12/15 Пнд 17:15:18 #382 №614263 
>>614261
>static_assert - это рантайм
Нет. assert это рантайм, static как раз указывает на compile-time.
>Поворот и перемещение нельзя сделать для матриц, отличных от 4x4
Я, возможно, не совсем понимаю, что ты имеешь в виду под поворотом. Транспонирование матрицы? Поворот вектора оператором, определенным матрицей? В обоих случаях привязки к размеру нет. Запили на псевдокоде, что ты имеешь в виду.
Аноним 28/12/15 Пнд 17:16:05 #383 №614265 
>>614253
> Выделять для них целый класс - слишком жирно
Что ты имеешь ввиду?
Аноним 28/12/15 Пнд 17:17:22 #384 №614268 
>>614253
>я делаю его через шаблоны
Но зачем?
Аноним 28/12/15 Пнд 17:19:50 #385 №614272 
>>614268
Наверное, чтобы не выделять память динамически.
Аноним 28/12/15 Пнд 17:27:32 #386 №614280 
>>614253
Делаешь специализацию для 4х4 с нужными методами, не?
Аноним 28/12/15 Пнд 17:47:23 #387 №614291 
>>614261
Поворот и прочие преобразования можно делать в любой размерности, ёба

Делай лучше vector3 и Matrix4 и не сношай мозг
Аноним 28/12/15 Пнд 21:51:58 #388 №614511 
>>614280
Слишком жирно выделять целый класс для 4x4.

>>614268
Чтобы можно было сделать матрицу из многочленов, например.

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

>>614291
Ладно, тогда как сделать, чтобы метод setToIdentity не работал для неквадратных матриц?

>>614263
За это спасибо, попробую. Да, я имею ввиду транспонирование матрицы. Да и вообще все операции, как написано тут: https://open.gl/transformations
Аноним 28/12/15 Пнд 22:29:58 #389 №614541 
>>614511
Ну так транспонирование определено для любых матриц, а не только для квадратных. Тебе надо сделать метод, который не меняет саму матрицу, а возвращает новую, вообще говоря, другой размерности. Это будет правильное и однородное решение, в отличие от.

[code lang="cpp"]
template <typename T, size_t W, size_t H>
class Matrix
{
//...
T data_ [WH];
//...
public:

//...
Matrix <T, H, W> transposeMe () const
{
Matrix <T, H, W> output;
for (size_t hctr = 0; hctr < H; ++hctr)
for (size_t wctr = 0; wctr < W; ++wctr)
output.data_ [wctr
H+hctr] = data_ [hctr*W+wctr];
return output;
}
//...
}
[/code]
Аноним 28/12/15 Пнд 23:07:27 #390 №614580 
>>614511
> вместо того, чтобы создавать 74654689 классов
Классы у тебя создатутся в любом случае (просто по шаблону). То что ты хочешь сделать не совсем моответсвует идеологии, шаблоны изначально предназначаються для того чтобы использовать один и тот же код для разных типов (хотя они уже далеко ушли от этого). Если тебе нужно разное поведение (один тип может что-то делать, другой нет) то идеологически правильно использовать наследование (ну или агрегацию и т.д.). Например, от общего класса матрицы наследуешь квадратную матрицу, которой для надежности даешь конструктор который принимает один аргумент (размерность) и там внутри вызывает конструктор базового с двумя одинаковыми аргументами. Потом переопределяешь или добавляешь нужные методы. Пытаясь на шаблонах придать разное поведение ты не выигрываешь в количестве кода - тебе все равно нужно прописать все отличное поведение. Реальный выигрышь нулевой, только больше пердолинга и высраных кирпичей при ошибках компилятора. Но сделать на шаблонах конечно можно, например https://ideone.com/6J6hwE - компилируется с закоментированой 26 строкой, если ее раскоментировать будет ошибка компиляции. Если интересует такой пердолинг читай книгу Александреску. Кстати в 17 стандарте вроде хотят расширить функционал шаблонов в подобном направлении.
Аноним 28/12/15 Пнд 23:17:30 #391 №614593 
>>614580
>идеологически правильно использовать наследование
Просто иди нахуй, ООП-мразь.
Аноним 28/12/15 Пнд 23:25:37 #392 №614600 
>>614593
Структурноблядок подорвался. Иди глобальных переменных посоздавай, глобальные переменные сами себя не создадут.
Аноним 28/12/15 Пнд 23:28:21 #393 №614603 
>>614600
Т.е. по-твоему по-другому не бывает? Или даунское ООП уровня 80-х годов, или не менее даунский код а-ля фортран?
Аноним 28/12/15 Пнд 23:32:52 #394 №614606 
>>614600
>>614603
Не ссорьтесь, ребят. Истинная мудрость в понимании того, что все хорошо в меру.
Аноним 28/12/15 Пнд 23:33:22 #395 №614607 
>>614580
>выигрышь
Марионеткаь?
Аноним 28/12/15 Пнд 23:41:50 #396 №614612 
>>614606
Использовать наследование при проектировании математики - зло всегда.
Аноним 28/12/15 Пнд 23:51:41 #397 №614626 
>>614511
>>Использовать я буду в основном матрицы 4х4.
>Слишком жирно выделять целый класс для 4x4.
схуябы?
учитывая фиксированные размеры можно хуячить оптимизации уровня mmx/sse/sse2 а то и выше

>Чтобы можно было сделать матрицу из многочленов, например.
тебе это нужно вообще в данной задаче?

>как сделать, чтобы метод setToIdentity не работал для неквадратных матриц?
std::enable_if
Аноним 29/12/15 Втр 00:08:59 #398 №614638 
>>614612
Хотя, можно сделать так http://ideone.com/mzRNf5 . Если ты об этом, то ок. А вот виртуальные методы - зло.
Аноним 29/12/15 Втр 00:35:55 #399 №614651 
>>614612
Не согласен, ибо замедления это не дает, а структуру может улучшить. Вот виртуальность да, часто бывает вредна из-за оверхеда, но и в математических либах ее можно воткнуть в некритичные места без особого замедления.
Аноним 29/12/15 Втр 01:42:55 #400 №614678 
Concurrency in C++11
Хочу навернуть во время праздников в тишине и спокойствии. Кто читал? Годно ли, стоит того?
Не, я все равно прочитаю, но что ли подзадорьте
Аноним 29/12/15 Втр 01:45:21 #401 №614681 
>>614678
Если ты об Уильямсе, то очень годно, одна из моих любимых книг по крестам.
Аноним 29/12/15 Втр 02:55:57 #402 №614698 
Как лучше, так
>>614158
или так
>>614081
Я понимаю, что обе реализации будут работать, мне интересно, как лучше. Исключения - это здорово,безусловно, только это непрозрачно для внешнего кода.
Аноним 29/12/15 Втр 03:05:11 #403 №614702 
>>614681
Yep.
Спасибо. Пока ещё слабо представляю, как мне эти навыки пригодятся, учитывая что конторы пишут на шинапи с 98 стандартом и пока переходить не думают.
Аноним 29/12/15 Втр 03:16:04 #404 №614703 
Пасаны, пасаны, выручайте. Так уж случилось, что я выбрал призванием строить ракеты. Есть у нас в курсе такой распрекрасный предмет - "Численные методы". Ситуация идиотская - нужно написать расчетку по этому предмету, что собстно не сложно (ага, я так думал) на любом языке программирования (препод так говорил). Самое интересное в том, что я, претендуя на автомат, припер преподу расчетку в паскале (язык учил, знаю хорошо, решил не изобретать велосипед), что не понравилось святейшему. Потом я припер ему расчетку на питоне (учу сейчас), что ему тоже не понравилось, так как он на нем не работал. Эта хитрая жопа сказала что автомат мой, если в срок до 12 00 31 декабря я перепишу РР на C++. Кресты учил в 11 классе, по книге, которая что то там про 21 день. Естессно уже нихрена не помню, а вспоминать особо времени нет. Так вот что я хотел от вас спросить: где можно найти более менее краткое изложение математических возможностей ++ с примерами и объяснением?
Аноним 29/12/15 Втр 03:27:33 #405 №614706 
>>614703
http://www.cplusplus.com/reference/cmath/
Аноним 29/12/15 Втр 04:54:53 #406 №614725 
>>614703
> Эта хитрая жопа сказала что автомат мой
Ты бы лучше ткнул его носом в то, что слово своё он не держит и вообще лжец.
Аноним 29/12/15 Втр 08:10:16 #407 №614776 
Как вкатиться в железники? Хочу программировать низкоуровневые вещи и разбираться в железе, как тот бородач с очками из Silicon Valley. Недавно закончил читать Липпмана "Язык Программирования C++". Не понимаю куда двигаться дальше.
Аноним 29/12/15 Втр 09:21:46 #408 №614789 
>>614703
Выложи код на паскале, я прокомментирую аналоги в С++. Должно быть несложно.
Аноним 29/12/15 Втр 09:22:02 #409 №614790 
на pastebin.com выложи
Аноним 29/12/15 Втр 10:27:35 #410 №614815 
14513740558230.png
http://ideone.com/Kd8bEy
Карочи, эта программа нужна для того, чтобы подсчитывать единички в двоичном представлении числа.
Как сделать так, чтобы они подсчитывались только с 5 по 10 бит включительно?
Аноним 29/12/15 Втр 10:50:36 #411 №614838 
>>614815
Поделить входное число на 16, потом взять остаток от деления на 128.
Аноним 29/12/15 Втр 10:53:08 #412 №614840 
>>614815
Нужно сделать побитовое and с двоичным числом типа 00001111100000. Только двоичные числа не поддерживаются, поэтому переведи его в шестандцатиричное и напиши n &= n 0xвотэтовотчисло, перед циклом.
Аноним 29/12/15 Втр 11:09:02 #413 №614848 
>>614840
А почему не 00001111110000? Пятый бит же тоже включительно.
А так вообще спасибки. Долго ебался, пытаясь сделать and с этим числом в двоичном и десятичном виде, и ещё удивлялся своему фейлу. Теперь всё работает.
Аноним 29/12/15 Втр 11:12:03 #414 №614849 
>>614848
Зависит от того, как ты считаешь биты - первый бит у тебя первый, или все-таки нулевой. Поэтому я даже не пытался считать нолики и единички у себя - это твое дело.
Аноним 29/12/15 Втр 14:32:56 #415 №614939 
>>614541
Нет, я всё-таки перепутал. Не транспонирование, а поворот. Ну как на том сайте написано жи! Транспонирование у меня определено для всех матриц.

>>614626
1 - Если бы я использовал только матрицы 4x4, то я бы сделал класс для матриц 4x4, но я буду использовать не только их. Я их буду использовать просто чаще других. Алсо, оптимизация без надобности - это не совсем правильно.

2 - Да, я студент-математик. Мне нужно составлять матрицы из комплексных элементов и многочленов.

3 - Вот за это спасибо. Теперь надо выбрать между static_assert и enable_if. Помню, треда 3-4 назад здесь собрались ёбнутые фанатики со своим SFINAE. Это же как-то относится к моей проблеме? Как к ним примкнуть?
Аноним 29/12/15 Втр 14:33:56 #416 №614941 
>>614580
С наследованием интересно. Но всё же хотелось бы без него. Насколько корректно решать эту задачу с помощью std::enable_if или что-то в этом роде?
Аноним 29/12/15 Втр 15:46:29 #417 №614956 
>>614222
Да плевать мне на половую принадлежность человека, Катя она, Алёна или Жирослав, лишь бы не void main()
Аноним 29/12/15 Втр 15:52:42 #418 №614958 
Почаны, подсобите с потоками разобраться, а то хочу в тренде быть.
http://pastebin.com/zAtUdU1p
Есть поток для ввода чисел, которые складываются в многопоточную очередь, откуда берутся и выводятся потоками из пула.
После выполнения что-то не ладится с синхронизацией или типа того.

terminate called after throwing an instance of 'std::bad_function_call'
what(): bad_function_call
zsh: abort (core dumped) ./test


Сама реализация пула взята из
http://stackoverflow.com/questions/26516683/reusing-thread-in-loop-c

Где ж я обосрался?
Аноним 29/12/15 Втр 17:07:17 #419 №614984 
>>614222
Только что-то у вашей Кати калька с блога майерса.
Аноним 29/12/15 Втр 17:35:29 #420 №615004 
>>614958
стандарт::плохой_функция_вызов
Ты чё блядь тупой? Вызывай функцию хорошо, а не плохо.
Аноним 29/12/15 Втр 17:44:57 #421 №615016 
>>614258
>>614265
>>614268
>>614280
Вы все - ебланы, которым в профессии не место. Ему нужно было посоветовать ключевое слово requires и концепты. Пиздец, с кем я сижу на одной борде.

Анон, слушай меня. Гугли requires и всё поймёшь.
Аноним 29/12/15 Втр 17:57:23 #422 №615031 
>>615016
Ну толсто же. Во-первых, я ему подсказал, как правильнее решить проблему без проверок вообще, а не какой из способов применить для костыльного решения. Во-вторых, концепты это кусок семнадцатого стандарта, их еще нет официально, и применять их в продакшене сейчас - дурной тон. В третьих, его задача гораздо проще и короче решается одним static_assert (4 == H && 4 == W), концепты ввели для более сложных случаев типа сравнения сигнатур, и писать там потребуется побольше.
Аноним 29/12/15 Втр 18:02:27 #423 №615039 
Нормально ли в одном файле объявлять несколько классов или лучше не выебываться и заводить отдельно?
Аноним 29/12/15 Втр 18:03:05 #424 №615041 
>>614939
enable_if напрямую не решит твою проблему, это чисто утилита для SFINAE. Для static_assert тебе просто придется написать условие, как вот здесь: >>615031 , если оно не выполнится, то компиляция прервется. В enable_if от условия зависит только наличие typedef'а внутри структуры, т.е. тебе придется городить хуйню из наследования и тому подобного.

Поворот делается почти так же, как в коде для транспонирования, тебе просто, в зависимости от угла поворота, нужно пустить один или оба индекса в обратном направлении. Нарисуй эту хуйню и сразу разберешься, тыжматематик.
Аноним 29/12/15 Втр 18:04:34 #425 №615043 
>>615039
Если класс небольшой и используется только главным классом из того же файла, то нормально. Например, какой-нибудь класс ячейки контейнера в файле с классом контейнера.
Аноним 29/12/15 Втр 18:05:32 #426 №615044 
>>614984
Ну я посмотрю еще, просто на первый взгляд мне неплохо показалось.
Аноним 29/12/15 Втр 18:08:35 #427 №615046 
>>614776
Купи ардуину, установи Arduino IDE. Там писать надо на крестах, вот и пили всякое разное.
Аноним 29/12/15 Втр 18:10:39 #428 №615047 
>>614698
Первое, очевидно. Во втором случае будет всегда передаваться лишняя инфа, ибо тебе нужна либо ошибка, либо значение - что-то одно. variant же как раз умеет не хранить лишней хуйни.
Аноним 29/12/15 Втр 18:14:25 #429 №615050 
>>615041
А если я хочу, чтобы этой функции вообще не было? То есть для матрицы 4x4 она есть, а для матрицы 4x3 уже нет. Она просто отрезается из кода. Это же SFINAE?

Насчёт поворотов - какие индексы? Ты знаешь, что такое матрица поворота? Это не просто взять и повернуть элементы матрицы. Это совсем другое.
Аноним 29/12/15 Втр 18:15:28 #430 №615051 
>>615031
Но почему ты считаешь, что твой способ без проверок более правильный?
Аноним 29/12/15 Втр 18:16:57 #431 №615053 
>>615041
>enable_if напрямую не решит твою проблему
template<int N, int M>
std::enable_if<N==M, Matrix<N, M> > Matrix<N,M>::setIdentity()
{ блаблабла }
Аноним 29/12/15 Втр 18:18:01 #432 №615054 
>>614958
Где код MyQueue?

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

Алсо, код какой-то пиздецовый, пул вообще не используется, числа выводятся основным потоком. Лучше прекрати блуждать в потемках и наверни Уильямса, как анон выше сделал.
Аноним 29/12/15 Втр 18:18:49 #433 №615055 
>>615051
Потому что он будет работать для любых матриц, а не только для 4х4, очевидно же.
Аноним 29/12/15 Втр 18:22:24 #434 №615056 
>>615055
Сделай мне метод setToIdentity() для матрицы 4x3 тогда.
Аноним 29/12/15 Втр 18:27:41 #435 №615059 
>>615050
Нет, ее и так не будет, без SFINAE это вообще другая совсем тема. Твой класс шаблонный, следовательно, пока ты не обратился к функции, она не сгенерируется. А когда обратишься, она попытается сгенерироваться, и сработает static_assert.

Я знаю, что такое матрица поворота это было моим вторым предположением >>614263 здесь. Но тогда я не понимаю, какое действие ты хочешь совершить с самой матрицей-то? Просто умножить на вектор и вернуть новый вектор, не изменяя матрицу? Тогда это определено для всех квадратных матриц, а не только для 4x4. Я бы на твоем месте выделил класс SquareMatrix, унаследованный от Matrix, и все операции, определенные только на квадратных матрицах, вынес в него. А остальные - оставил в Matrix. Это вполне логичное разделение, ибо свойства квадратных матриц довольно сильно отличаются от общих есть определитель, можно сделать проверку на унитарность, ну ты понел. Так ты сможешь, читая код, сразу увидеть, что в данном месте требуется именно квадратная матрица, а не разбираться с ошибками компиляции, когда сунешь не то.
Аноним 29/12/15 Втр 18:30:02 #436 №615061 
>>615053
Не очень хорошо, ты получишь десять страниц ошибок, когда оно не скомпилируется. А в static_assert можно самому задать строку, которая выведется при ошибке.
Аноним 29/12/15 Втр 18:31:02 #437 №615062 
>>615056
Что он должен делать? Имя весьма туманное.
Аноним 29/12/15 Втр 18:31:25 #438 №615063 
>>615059
А если мне вдруг понадобятся какие-то свойства матриц с соотношением сторон 9:14, то мне и для них новый класс создавать? Нет, хочу всё в 1 сделать. SFINAE жи есть, почему бы не использовать его?
Аноним 29/12/15 Втр 18:33:19 #439 №615064 
>>615061
Каких 10 страниц? Там будет около 20 строчек, и в 1 из них будет искомая ошибка. Если ты работаешь через IDE, то вообще без проблем её сдетектить.
Аноним 29/12/15 Втр 18:33:37 #440 №615065 
>>615062
Делать матрицу единичной.
Аноним 29/12/15 Втр 18:36:25 #441 №615066 
>>615063
Да используй что хочешь, няша, хоть макросы. Ему показывают good practices, а он нос воротит, лол. Я тебе пояснил за преимущества static_assert, дальше выбор за тобой.

Классы на каждый чих создавать глупо, но в конкретном случае слишком много уникальных для квадратных матриц свойств, так что они вполне заслуживают отдельного класса. И так будет легче писать и читать код, он быстрее скомпилируется, хуле тебе еще надо-то?
Аноним 29/12/15 Втр 18:37:24 #442 №615068 
>>615065
Вынеси этот метод в SquareMatrix.
Аноним 29/12/15 Втр 18:41:03 #443 №615070 
>>615064
>двач, как чистить сортир вилкой? слышал, пару тредов назад тут были адепты вилок, это как-то относится к моей проблеме? как к ним примкнуть?
>на тебе щетку, щеткой чистить заебись. чисти говно!
>неееет, я хочу вилкой, поясните за вилку!
>вилкой чистить неудобно, каждое движение зацепляет мало говна, будешь чистить долго
>да какое там долго, будет около 20 часов всего! если начальник даст большую вилку, то вообще без проблем все почистить
Аноним 29/12/15 Втр 18:51:10 #444 №615072 
>>615056
Какой смысл делать это методом, если результат не зависит от самой матрицы, только от размерности. Сделай глобальную функцию, которой передаешь размер, и она создает единичную.
Аноним 29/12/15 Втр 18:57:12 #445 №615077 
>>615068
Нет, мы же уже порешали что не нужно плодить 57334534 классов, когда можно сделать всё в 1.
Аноним 29/12/15 Втр 18:58:10 #446 №615078 
>>615070
Ты или поясни, чем SFINAE плох, или не пиши хуйни.
Аноним 29/12/15 Втр 18:59:36 #447 №615080 
>>615072
Охуительные советы итт. Ты же понимаешь, что генерировать единичную матрицу и копировать её в нужную - это медленнее, чем сразу делать нужную матрицу единичной?
Аноним 29/12/15 Втр 19:02:35 #448 №615085 
>>607053 (OP)
Аноны, шапка, конечно намекает
Но можно ли джуну найти вакансии на крестах или лучше идти в другой сиподобный язык и только потом возвращаться на кресты?
Аноним 29/12/15 Втр 19:03:03 #449 №615086 
>>615080
Нет, обоссанный байтослесарь, не медленнее.
Аноним 29/12/15 Втр 19:04:32 #450 №615088 
>>615085
Кресты нужны для гейдева, ибо лучший язык
А сил и средств реализовывать проект пока нету.
Идти и учить другое, параллельно уча кресты?
Аноним 29/12/15 Втр 19:08:44 #451 №615090 
>>615086
Я сказал, почему медленнее. Теперь ты говори, почему не медленнее.
Аноним 29/12/15 Втр 19:10:45 #452 №615091 
>>615090
>Я сказал, почему медленнее.
Нет, не сказал, только кукарекаешь из лужи мочи. Вот когда предоставишь доказательства, что это работает как минимум в 2 раза медленее, тогда и кукарекай.
Аноним 29/12/15 Втр 19:13:52 #453 №615094 
>>615091
>Вот когда предоставишь доказательства, что это работает как минимум в 2 раза медленее
Тепеь "медленнее" начинается только с "в 2 раза медленнее"?
Аноним 29/12/15 Втр 19:15:52 #454 №615097 
>>615078
У меня такое впечатление, что я разговариваю с зеленью, обожающей сказку про белого бычка.
>>615061 - сообщения об ошибке больше и менее читаемые
>>615053 - нужно написать в 2-3 раза больше кода

>>615080
>>615090
Пикрелейтед. Вот этот >>615086 анон абсолютно прав, в эпоху move semantics просто стыдно что-то бормотать про медленность перемещений.
Аноним 29/12/15 Втр 19:16:23 #455 №615098 
14514057837130.jpg
>>615097
Пикчу забыл.
Аноним 29/12/15 Втр 19:17:06 #456 №615099 
>>615097
Стыдно - это пошёл ты нахуй. Перемещения медленные. Пока не докажешь обратное - ты пидор и я ебу тебя в жопу.
(Автор этого поста был предупрежден.)
Аноним 29/12/15 Втр 19:20:10 #457 №615100 
>>615099
>перемещения медленные
>два присваивания указателей
Аноним 29/12/15 Втр 19:23:12 #458 №615106 
>>615100
у него там размеры матриц в компайлтайме задаются
Аноним 29/12/15 Втр 19:26:02 #459 №615108 
>>615094
Вот именно, всё что ниже - хуйня на уровне статистической погрешности, и этим должен заниматься компилятор.
Аноним 29/12/15 Втр 19:27:08 #460 №615109 
>>615106
Тогда преимущество достигается только для стековых объектов, а их перемещать нехуй. Не могу себе представить ситуацию, в которой быстрее превратить матрицу в единичную, чем удалить старую с тривиальным-то деструктором и создать единичную уже новую.
Аноним 29/12/15 Втр 19:29:22 #461 №615110 
>>615054
Там как раз есть блокировка для всех методов, это мьютекс на вывод в консольку.
И почему пул не используется?
> pool.doJob (std::bind (calculate, el));
Аноним 29/12/15 Втр 19:36:57 #462 №615117 
>>615110
Да, я не заметил просто. Энивей, как-то странно у тебя все построено, у тебя, по сути, главный поток является диспетчером для всего, и это будет узким местом для больших данных. Обычно делают метод, который дергает очередь, создают пул потоков, которые все инициализированы сразу этим методом с параметром-очередью, а они уже независимо дергают очередь и смотрят, есть ли там что-то. Короче говоря, примерно как у тебя для чтения сделать и для вывода.
Аноним 29/12/15 Втр 20:29:45 #463 №615143 
>>615090
RVO

// Мимокрок
Аноним 29/12/15 Втр 23:00:58 #464 №615242 
Поясните за реактивное программирование. С приходом эры квантовых вычислений я подумал начать дрочить эту тему. Но стоит ли?
Аноним 30/12/15 Срд 01:15:00 #465 №615357 
Правда ли, что в Qt и Boost похожие API для мультитрединга? Разобрашись с этим в STL, я по идее смогу работать комфортно и с первым, и со вторым? иногда ссылаясь в референс конечно
Аноним 30/12/15 Срд 12:22:32 #466 №615568 
>>615242
Я не особо обмазывался этой хуйней, но мне кажется, что это актуально только для узкоспециализированной хуйни вроде электросхем и тех же квантовых вычислений. С нормальной пекарней ты всегда получишь замедление, ибо много лишнего будет пересчитываться при каждом изменении.
Аноним 30/12/15 Срд 12:28:12 #467 №615575 
>>615357
В boost треды практически идентичны стандартным. QThread же сильно отличается от них по интерфейсу (бустовые и стандартные минималистичны, а он набит овер 20 методами), плюс сильно заточен под реалии куте (сигналы и слоты). Я бы не использовал QThread вне приложений, которые уже насквозь пропитаны Qt. Такие дела.
Аноним 30/12/15 Срд 13:33:30 #468 №615600 
14514716101210.png
14514716101221.png
14514716101232.png
14514716101263.png
Какой логотип у крестов?
sageАноним 30/12/15 Срд 14:14:15 #469 №615624 
14514740552100.png
>>615600
Вот такой.
Аноним 30/12/15 Срд 14:16:44 #470 №615626 
14514742041160.jpg
>>615624
Аноним 30/12/15 Срд 14:23:38 #471 №615629 
>>615624
10/10
Аноним 30/12/15 Срд 14:39:23 #472 №615637 
>>612857
У Касперски есть неплохая книжка, старенькая довольно, но основы разжеваны годно. Гугли "Касперски, Рокко - Искусство дизассемблирования". Если вообще не шаришь в ассемблере, наверни какого-нибудь Юрова перед ней.
Аноним 30/12/15 Срд 14:44:30 #473 №615639 
>>615637
>Если вообще не шаришь в ассемблере
Что подразумевается под этим? Я без референса понимаю каждую инструкцию, привык к branch delay slot'ам, но мои глаза не видят паттернов на лету. Из-за этого я очень медленно читаю код.
Аноним 30/12/15 Срд 14:53:29 #474 №615641 
14514764099960.png
>>615639
Тогда можно сразу читать. Там как раз почти половина книги посвящена детектированию конструкций, которые генерятся высокоуровневыми языками.
Аноним 30/12/15 Срд 15:28:22 #475 №615647 
Правильно я понимаю, что для того, чтоб выполнился код, следующий за jr ra, где-то обязательно должен быть branch или jump на него?
Аноним 30/12/15 Срд 15:28:40 #476 №615648 
14514785207160.png
>>615647
Отклеилось.
Аноним 30/12/15 Срд 16:03:19 #477 №615657 
14514805993920.png
>>615600
Аноним 30/12/15 Срд 17:20:04 #478 №615697 
>>615575
Cпасибо, братишка.
Аноним 30/12/15 Срд 17:25:09 #479 №615701 
14514855098050.jpg
>>615600
Аноним 30/12/15 Срд 17:27:46 #480 №615703 
14514856668480.png
>>615600
Аноним 30/12/15 Срд 17:30:57 #481 №615705 
>>615647
Ну, оно безусловно прыгнет на адрес из регистра. В регистре может быть что угодно, в.т.ч. следующая после jr команда.
Аноним 30/12/15 Срд 18:00:02 #482 №615716 
>>615705
Ну, там какой-то очень далёкий адрес, а значит, видимо, откуда-то должен быть переход на область, следующую после jr.
Аноним 30/12/15 Срд 18:02:45 #483 №615718 
>>615716
А ты уверен, что этот адрес там безусловно? Возможно, при другой истории выполнения там будет он. Ну или просто это мусор, оставшийся после изменения кода. Маловероятно, что туда идет переход откуда-то еще, хотя чем черт не шутит.
Аноним 30/12/15 Срд 18:06:24 #484 №615721 
>>615718
>Маловероятно, что туда идет переход откуда-то еще
Как мне это определить? Выгружал код в ida, она автоматом никаких xref для этого участка не выдала, но я и не весь файл дизасмил.

Суть в том, что мне надо отследить этапа расчёта переменной. Но в процессе расчёта она хранится в разных местах на разных этапах. Вот я и пытаюсь понять, как я пришел в этот кусок кода.
Аноним 30/12/15 Срд 18:32:32 #485 №615728 
>>615721
А поставить брейкпоинт в отладчике с последующим запуском?
Аноним 30/12/15 Срд 18:57:20 #486 №615739 
>>615728
Брейкпоинт на что? Вот смотри.
Я поставил брейкпоинт на запись значения по заданному адресу. Таким образом я попал в кусок кода, где это значения считывается из другого адреса перед тем как попасть в конечный. Я разобрал этот кусок, а потом поставил брейкпоинт на запись по тому адресу, откуда считалась переменная, чтоб понять, как расчитывалось её значение. Попал в следующий кусок кода, где происходит часть расчёта значения, а потом запись. Я разбирал код построчно, поднимаясь вверх, пока не дошёл до этого jr. Теперь я не знаю, откуда я попал в этот кусок кода.
Аноним 30/12/15 Срд 19:00:07 #487 №615740 
14514912073610.png
>>615739
Всё, я слепой уебан, извините.

Там условные бранчи прям перед джампом.
Аноним 30/12/15 Срд 20:03:19 #488 №615773 
>>615740
Нет, я снова слепой мудак, это не то, что я искал. Где лучше задавать свои вопросы, касающиеся этого? Сомневаюсь, что с++ тред для этого подходит.
Аноним 30/12/15 Срд 20:43:27 #489 №615804 
>>615773
По-моему, тут где-то был неофициальный ассемблерный тред. Хотя, возможно, он уже утонул.
Аноним 30/12/15 Срд 21:08:55 #490 №615822 
14514989360050.png
Помогите неофиту.
Хотел посмотреть, как работает данная дичь без std::ref то бишь убедиться, что она действительно просто создает локальную копию передаваемого объекта но фишка в том, что это говно вообще не скомпилилось, выдавая доселе невиданные ошибки.
ЧЯДНТ?
Аноним 30/12/15 Срд 21:23:45 #491 №615829 
>>615822
как тема называется, братюнь
Аноним 30/12/15 Срд 21:30:39 #492 №615839 
>>615822
> -std=c++1y
Что за компилятор? Похоже что у тебя чего-то нет, вроде ругается на result_of<T>::type а его только в с++14 добавили. Для тредов отдельно подключал библиотеку? Может библиотека для 14 компилятора, а твой компилятор старее.
Аноним 30/12/15 Срд 21:41:35 #493 №615858 
>>615829
Вроде это https://github.com/morhetz/gruvbox

мимокрок
Аноним 30/12/15 Срд 21:42:29 #494 №615860 
>>615858
Она и есть.
>>615822-кум.
Аноним 30/12/15 Срд 21:45:38 #495 №615869 
>>615839
14 же, не суть. В данном случае 11 с головой.
>для тредов подключал
На пике же видно, -pthread, треды у меня нормально работают, не первая программа.
Тут с передачей по ссылке проблемы, если ее убрать - тогда все будет окич
Но суть-то в эксперименте, конструктор треда пренебрегает передачей по ссылке и тупо копирует объект. В данном случае нужно использовать raw ptr или std::ref. К сожалению, не удалось мне воспроизвести передачу по ссылке. Впрочем, хуй с ней.
Аноним 30/12/15 Срд 21:50:40 #496 №615878 
>>615839
c++0x = c++11
c++1y = c++14
c++1z = c++17
Аноним 30/12/15 Срд 21:51:27 #497 №615881 
>>615878
А что будит когда версия после 17ого выйдет?
Аноним 30/12/15 Срд 21:52:18 #498 №615883 
Аноны , что я делаю не так при нахождении среднего арифметического всех элементов бинарного дерева поиска http://pastebin.com/ASMx7YXh
Аноним 30/12/15 Срд 21:53:32 #499 №615884 
>>615804
Этот? >>600262 (OP)
Аноним 30/12/15 Срд 21:56:19 #500 №615889 
Поздравляю. У нас бамплимит. Где ОП?
Аноним 30/12/15 Срд 21:59:56 #501 №615895 
>>615881
с++1ё
Аноним 30/12/15 Срд 22:01:46 #502 №615898 
>>615883
Пишешь вырвиглазный код, в котором - прости уж великодушно - не хочется разбираться.
Аноним 30/12/15 Срд 22:01:52 #503 №615899 
>>615881
20ый
Аноним 30/12/15 Срд 22:04:08 #504 №615901 
>>615898
Ну извини , ну сразу же не становятся гуру .
Аноним 30/12/15 Срд 22:10:31 #505 №615908 
>>615889
Я здесь. Все будет в течение получаса.
Аноним 30/12/15 Срд 22:24:53 #506 №615927 
НОВЫЙ ТРЕД
https://2ch.hk/pr/res/615922.html
https://2ch.hk/pr/res/615922.html
https://2ch.hk/pr/res/615922.html
Аноним 31/12/15 Чтв 23:49:33 #507 №616535 
Как удалить пробелы в начале файла, не переписывая его ? Т.е. в файле строка " abcde" заменить на "abcde", без буферов и тд.
comments powered by Disqus

Отзывы и предложения