М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 3 февраля 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

29 Кб, 404x935

Оффициальный™ традиционный® C++ тред #17 НОВОГОДНИЙ 30 Дек, 22:23 #615922 В конец треда | Веб

Так дрогнул тред от взрывов пердаков,
Что я подумал: "Это крестобляди
Ввязались в спор о фичах языков,

Набросив нечистот потехи ради.
Но, осознав, что их теснят всерьез,
Окуклились, укрывшись в байтов смраде,

Предвосхитив чудовищный отсос,
Что был для скалоблядка столь желанен.
И тот бы роковой удар нанес,

Не будь стремглав куратором забанен".

НОВОГОДНЕЕ ОБРАЩЕНИЕ ОПа

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

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

Пусть в 2016 году все мы еще дальше продвинемся в изучении темных закоулков крестов. Пусть неосиляторство и баги минуют нас. Пусть школьники сдадут свои лабы, а их старшие товарищи найдут годные вакансии. Пусть написание кода будет приносить нам только удовольствие, и ни капли бугурта. С наступающим Новым Годом вас, братишки!

P.S. Исходники кода с сюрпризом из оппика - https://goo.gl/kByKap

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

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

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

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

Старший брат: >>609376 (OP)
Предыдущий: >>607053 (OP)\r\n\r\n

\r\n\r\nFAQ:

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
Блог еще одной тянки, много о Qt и оптимизации (на ангельском) - https://katecpp.wordpress.com/about
Куча других блогов (на ангельском) - 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\r\n\r\n

\r\n\r\nQ: Я готов начать погроммировать! Куда мне писать код?
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://www.solarix.ru/for_developers/cpp/boost/boost-library-list.shtml - краткие аннотации к большинству компонентов.
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

30 Дек, 22:24 #2 #615925

Добавлен блог Кати-cpp.
Добавлено моар русскоязычных доков по бусту.

Предыдущие треды на архиваче:
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/
http://arhivach.org/thread/134437/

Старые ненумерованные треды:
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/

30 Дек, 22:33 #3 #615935

Аноны , что я делаю не так при нахождении среднего арифметического всех элементов бинарного дерева поиска http://pastebin.com/ASMx7YXh

Ответы: >>615997

44 Кб, 557x488

31 Кб, 1276x524

30 Дек, 22:39 #4 #615941

Сделаю перепост сюда, может кто сможет помочь.

Как сделать ремап адресов в ida?

На первом скриншоте дебаггер с выделенной инструкцией jal.
Она расположена по адресу 800C5638, а сам джамп уводит нас на $800C50AC.
Всё понятно и никаких проблем нет, но это дебагер, в нём удобно код не покомментируешь, он тебя его не проанализирует и не поможет разобраться.

На втором скриншоте ида, где проведен дизасм файла, содержащего тот же самый код.
Только переход здесь на C50AC, а не на 800C50AC, в то время как на psx память замапплена 0x80000000. Ну и сама инструкция по другому адресу, ибо в ида отсчёт с нуля. Как можно заставить иду отображать данные так, как мне надо? Иначе метки никуда не ведут и анализировать код сложно.
Я, конечно, считаю всё ручками, но хотелось бы пользоваться автоматизацией. Много меток ручками исправлять оче долго.

Ответы: >>619474

30 Дек, 23:19 #5 #615987

Что будет если скомпилировать оп-пик?

Ответы: >>615993, >>616040

30 Дек, 23:23 #6 #615993

>>615987
В консоли появится физиономия Страуструпа и уничтожит твой комп.

30 Дек, 23:28 #7 #615997

>>615935
Нету реутрна в функции которая должны возвращать int

30 Дек, 23:40 #8 #616011

Не используйте boost. Безумные ошибки на компляции, тормоза компилятора, падения от нехватки памяти на компиляторе. Нахера? Я один раз втащил модный boost fsm и boost bind, до сих пор не могу отмыться от него.

Ответы: >>616080, >>616220, >>616553

30 Дек, 23:58 #9 #616040

>>615987
А ты попробуй и узнаешь. Ничего плохого не случится.

Ответы: >>616045

31 Дек, 00:04 #10 #616045

>>616040
Самому перепечатывать?

Ответы: >>616112

31 Дек, 00:46 #11 #616080

>>616011
Bind уже в std.

Ответы: >>616086

31 Дек, 00:53 #12 #616086

>>616080
И более того, даже там он уже не нужон.

Ответы: >>616114

31 Дек, 01:58 #13 #616112

>>616045
>P.S. Исходники кода с сюрпризом из оппика - https://goo.gl/kByKap

Ответы: >>616117

31 Дек, 01:59 #14 #616114

>>616086
Из-за лямбд штоле?

31 Дек, 02:09 #15 #616117

>>616112
Там стишок! шапку не читаю а смотрю на обновления в первом посте

Ответы: >>616122

31 Дек, 02:18 #16 #616122

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

31 Дек, 12:58 #17 #616217

>>615922 (OP)
> треды порой улетали в бамплимит с поистине космической скоростью
Ага и перекаты даже не успевали делать. А однажды перед тем как перекатились тред успел на 7мую страницу утонуть.

31 Дек, 13:01 #18 #616218

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

Ответы: >>616230, >>616234, >>616260, >>616524

31 Дек, 13:05 #19 #616220

>>616011
Некоторые либы говно то еще, но есть и годнота же. Как до cpp11 без буста можно было жить вообще не представляю.

31 Дек, 13:12 #20 #616222

>>615922 (OP)
>Уже шесть с лишним месяцев
Твою мать... присел с чайком крестотред почитать.

31 Дек, 13:33 #21 #616230

>>616218
Лог - это конечно сложнаааа)))
И надо каждый раз писать))) Мммм

31 Дек, 13:48 #22 #616234

>>616218
Boost::log и boost::config

31 Дек, 14:38 #23 #616260

>>616218
http://www.ilikebigbits.com/blog/loguru

31 Дек, 22:16 #24 #616483

С наступающим!
Вопрос такого плана, имеется базовый класс для эксепшонов и его легендарный метод http://en.cppreference.com/w/cpp/error/exception/what
Так вот, какого хуя const char what() ? Блядь, серьезно?
Есть реально весомая прична ебаться с char* const? Почему не тот же стринг? Я что-то упускаю

Ответы: >>616493, >>616497

31 Дек, 22:24 #25 #616493

>>616483
Очевидная же причина - string может сам бросить exception.

Ответы: >>616494, >>616499

31 Дек, 22:26 #26 #616494

>>616493
Да уж, лол.
Пора идти спать, совсем башка туманная, спасибо.

31 Дек, 22:31 #27 #616497

>>616483
> ебаться с char* const
Где там ебля-то? Если нужно что-то сложное сделать то в string кастишь и все. Так, небольшое неудобство.

Ответы: >>616500

31 Дек, 22:31 #28 #616499

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

Ответы: >>616522

31 Дек, 22:32 #29 #616500

>>616497
>неудобство
Ну да, это и имел ввиду. Как хорошо, что вы мне пояснили причину.

48 Кб, 811x301

31 Дек, 22:41 #30 #616505

аноны, уебок и ничего не умеющий на связи, подскажите, что надо написать чтобы открыть форму? в delphi было бы так - form1.show; а что в qt писать?

Ответы: >>616507, >>616512

31 Дек, 22:43 #31 #616507

>>616505
form1.ui
Даблкликом кнопочки не открываются, уёбывай.

Ответы: >>616512

31 Дек, 22:47 #32 #616512

>>616507
Он не это имел ввиду.
>>616505
.show() тебе будет достаточно.

31 Дек, 23:14 #33 #616521

Хочу на досуге фана ради написать клон haxball.com
Не могу определиться, на чем писать - Qt или SFML оба тулкита юзал неодноразово
SFML естественнее для игор, но с другой стороны - SFML/Network имеет убогое API.
Qt вроде как никто не использует для такого, но с другой стороны - апи для работы с сокетами просто прекрасен.
Так и не понял, на чем остановиться.

Аноним 31 Дек, 23:14 #34 #616522

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

Ответы: >>616525

31 Дек, 23:15 #35 #616524

>>616218
для петов или на фрилунсе это подрубаю https://github.com/easylogging/easyloggingpp
в конторке велосипедим, конечно же

Ответы: >>616858

31 Дек, 23:16 #36 #616525

>>616522
noexcept в c++11 is just for this?

31 Дек, 23:50 #37 #616538

Как удалить пробелы в начале файла, не переписывая его ? Т.е. в файле строка " abcde" заменить на "abcde", без буферов и тд.

Ответы: >>616544

01 Янв, 00:18 #38 #616544

>>616538
>Как переписать файл не переписывая его?

Ответы: >>616546

01 Янв, 00:21 #39 #616546

>>616544
Нда, косяк. Ну ты понял, что я имею в виду. Заменить пробел на пустоту.

Ответы: >>616548

01 Янв, 00:54 #40 #616548

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

01 Янв, 01:37 #41 #616553

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

01 Янв, 02:06 #42 #616556

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

Ответы: >>616567, >>616702, >>618483

01 Янв, 05:56 #43 #616567

>>616556
Как он в этот тред забрел

01 Янв, 11:09 #44 #616594

Можно ли обрезать файл ? Допустим файл размера 128 обрезать до 120.

Ответы: >>616595, >>616598, >>616624

01 Янв, 11:09 #45 #616595

>>616594
байт\t

01 Янв, 11:16 #46 #616598

>>616594
Вписать EOF вместо 121 байта.

01 Янв, 14:09 #47 #616624

>>616594
Да

01 Янв, 14:10 #48 #616625

Я, наверно, сильно туплю, но как можно организовать хранение объектов одного класса, но чтобы при этом доступ к ним был доступен по имени? Массивы не подходят, т.к. к объектам надо обращаться по индексам, а мне необходимо по имени.

Ответы: >>616626, >>616628

01 Янв, 14:13 #49 #616626

>>616625
man, unordered_map?

81 Кб, 1765x1558

01 Янв, 14:39 #50 #616628

>>616625
Закрепить пикрел в шапке надо, чтобы вас, тупней, еблом в говно тыкать.

Ответы: >>616663, >>616668, >>616718, >>616904

01 Янв, 16:55 #51 #616663

>>616628
Так себе картинка. Много чего непонятно.
>Нужно производить упорядочнные выборки?
Шо це таке?

Ответы: >>616670, >>616685

01 Янв, 17:10 #52 #616668

>>616628
Нет OCHE важного вопроса:
— Меньше тыщи элементов?
— Ога...
— Тогда зделойте пжлст char[] и memcpy()

Ответы: >>616671, >>616685

01 Янв, 17:11 #53 #616670

>>616663
Порядок элементов тебе важен или нет. Например, для std::lower_bound и std::upper_bound, бинарного поиска и т. п.

Ответы: >>616673

01 Янв, 17:12 #54 #616671

>>616668
Ты из какого сишкотреда выполз?

01 Янв, 17:12 #55 #616673

>>616670
Там в самом начале есть вопрос еще до этого: "Порядок важен?"

Ответы: >>616676

01 Янв, 17:16 #56 #616676

>>616673
Здесь имеется в виду очередность вставки/удаления.

01 Янв, 17:42 #57 #616685

>>616663
>Так себе картинка.
>Много чего непонятно.
Ты совсем ебанутый?

>>616668
Н А Х У Я
А
Х
У
Я

Ответы: >>616689

01 Янв, 17:45 #58 #616689

мам ну че он >>616685 обзывается

01 Янв, 18:18 #59 #616692

Есть ли в C++ рефлексия, атрибуты на классах/функциях/параметрах/перечислениях ??? Ну то есть как в C#

Ответы: >>616694, >>616719

01 Янв, 18:21 #60 #616694

>>616692
Если вкратце, то нет.

Есть конечно костыли, которые каждая 10-я компания свое выкатывает - что-то там в анриал энджин, что-то там в бусте есть, в Qt тоже свое.

01 Янв, 18:33 #61 #616700

>>615922 (OP)
>Унаследованная памятка:
>
>Вопросу по синтаксису идут на хуй.
>Лабы идут на хуй.
>"Как мне сделать Х на чистых крестах без библиотек" идут на хуй.
>Все идут на хуй.
>Хейтер сосет члены на пару со своей мамашей.
>
>Тег [code] работает через жабаскрипт-костыль: https://github.com/ololoepepe/MakabaCode
когда уже это уберёшь?

01 Янв, 18:39 #62 #616702

>>616556
Может в мбр писать? там всё равно много места, а используется мало.

Ответы: >>616704

01 Янв, 18:44 #63 #616704

>>616702
А есть реальные примеры такого заражения, имею ввиду не примеры кода, а существующие угрозы?

Ответы: >>616706

01 Янв, 18:51 #64 #616706

>>616704
http://www.theverge.com/2015/2/16/8048243/nsa-hard-drive-firmware-virus-stuxnet

01 Янв, 19:01 #65 #616718

>>616628
tangro говно какое-то зделал, даже разложить на плоскости не смог. Вот как надо, блядь: http://goo.gl/5AIkZc

Ответы: >>616730

508 Кб, 497x499

01 Янв, 19:01 #66 #616719

>>616692

01 Янв, 19:17 #67 #616730

>>616718
АААА ПИДОР БЛЯДЬ! МУДЕЛЬ СУКА! Как такое в png скидывать можно вообще, поехавший?
Вообще, когда нюфагочелик спрашивает какой контейнер позволит ему хранить хуитки по [имени]=значению, скидывать вот этот высер параноика немного неправильно, не находишь?

Ответы: >>616780

01 Янв, 21:51 #68 #616780

>>616730
>png
Ну переконвертируй, хуле. Я с хабры спиздил в неизменном виде.

02 Янв, 01:44 #69 #616858

>>616524
Использовал его, потом написал своё. Раскидывать по файлам там не очень удобно было -- слишком много кода клиентского выходило и внедрение зависимостей громоздким получалось.
Дело двух вечеров, зато всё как мне надо.

02 Янв, 01:57 #70 #616860

>Thankfully, the C++ Standard Library has a cure for this in the form of std::lock — a function that can lock two or more mutexes at once without risk of deadlock. The example in the next listing shows how to use this for a simple swap operation.

Оооокей, а доселе как с этим справлялись? Как это работает?

Ответы: >>616866

02 Янв, 03:24 #71 #616866

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

Ответы: >>616877

02 Янв, 03:36 #72 #616869

Кто-нибудь может прояснить вопросец по семантике перемещения?
Почему вот при a = std::move(b) b обнуляется?

Ответы: >>616871, >>616872

02 Янв, 03:39 #73 #616871

>>616869
А что с b должно по-твоему произойти?

02 Янв, 03:40 #74 #616872

>>616869
Вот например, здесь:
http://en.cppreference.com/w/cpp/language/move_constructor

Before move, b1.s = "test"
After move, b1.s = ""

Явного обнуления нет в конструкторе перемещения, ну разве что могу предположить, что оно происходит в самом string'e.
Таки я должен самостоятельно присваивать старым указателям nullptr при работе со своими типами?

Ответы: >>616884

02 Янв, 04:09 #75 #616877

>>616866
Пока не дошёл до них.

02 Янв, 06:35 #76 #616884

>>616872
Должен. Старое обнуляется только для классов из стандартной библиотеки, у которых это явно прописано в описании move (например, у умных указателей).

Ответы: >>616999

02 Янв, 10:49 #77 #616904

>>616628
А если мне, блядь, производительность нужна до нескольких тысяч запросов за 1 миллисекунду? Что мне выбирать?

Ответы: >>616913, >>617052

02 Янв, 11:28 #78 #616913

>>616904
Слишком тупо заданный вопрос. Без инфы об окружении и модели обработки это как хуем в воздухе махать.

Ответы: >>617009

02 Янв, 15:03 #79 #616999

>>616884
Хм, значит я все правильно думал.
>описании move
В move конструкторе, ты хотел сказать

Ответы: >>617225

02 Янв, 15:21 #80 #617009

>>616913
Ну смотри, допустим, мне нужен менеджер текстур для самописного движка. Задача - избежать загрузки одной и той же текстуры дважды, у каждой текстуры должен быть ID, на который будут ссылаться модели объектов. При этом есть функция Init(), которая, собственно, загружает текстуры в программу. До вызова этой функции отрисовку объектов с текстурами проводить нельзя. После вызова нельзя загружать текстуры.

Допустим, первая задача решается обычным unordered_map с ключом - адресом текстуры на диске. А что делать с ID, на который будет удобно ссылаться? Сейчас у меня это реализовано как двойной указатель на текстуру, в котором до вызова Init() лежит nullptr, а после - указатель на загруженную текстуру.

Ответы: >>617011, >>617048, >>617052, >>617060, >>618306

02 Янв, 15:25 #81 #617011

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

Ответы: >>617044, >>617058

02 Янв, 16:42 #82 #617044

>>617011
Какую именно?

02 Янв, 16:45 #83 #617048

>>617009
>Задача - избежать загрузки одной и той же текстуры дважды
Почему бы и не выделить это все в отдельный блок?

02 Янв, 16:47 #84 #617052

>>616904
>>617009
Ты, блядь, вася. Каким вообще ебаным хуем контейнер в твоей задаче может стать боттлнеком, если ты читаешь текстуры с, сука, жёсткого диска? Какие, блядь, тысячи запросов в мс? Одну текстуру для каждого юнита 9000 раз загружать чтоле будешь? Коли хочешь прям повыёбываться милисекундами - можешь попробовать ещё dense_map_hash из гугловского sparsehash хотя чо там, как минимум до ляма элементов не намного быстрее любого джява хэшмэпа будет.

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

Ответы: >>617058, >>617060

02 Янв, 17:04 #85 #617058

>>617011
Так это ж любительский проект. Иногда открываю, дописываю какую-нибудь фичу. Я не работаю над ним 24/7.

>>617052
Ну смотри. Допустим, я загрузил все текстуры в память. Использую только map. Тогда каждый раз при отрисовке объекта я буду производить логарифмический поиск нужной текстуры в контейнере. Каждый раз, для каждого объекта! А если у меня в сцене 10000 объектов? Поэтому простой map использовать нельзя. Или приходить к ухищрениям, как я. Когда для загрузки текстур у меня один контейнер, а для их использования - другой.

Ответы: >>618327

02 Янв, 17:06 #86 #617060

>>617052
Да дебил он странный, где он собрался избегать загрузки дважды?
Кстати, >>617009 можешь глянуть мой загрузчик взять, http://pastebin.com/ULLpfzKi

Ответы: >>617062, >>617067

02 Янв, 17:07 #87 #617062

>>617060
http://pastebin.com/bzCicdUX прошу прощения

02 Янв, 17:23 #88 #617067

>>617060
Так блядь, я избегаю загрузки дважды. Сначала у меня в map добавляются текстуры по ключу - имени файла. Текстуры не инициализируются! Т.е. по каждому ключу лежит нулевой указатель. Потом(после того, как они все добавлены) вызывается Init(), в котором уже через foreach происходит загрузка каждой текстуры из этого map. И только после этого их можно использовать.

Ответы: >>617072

02 Янв, 17:33 #89 #617072

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

Ответы: >>617074, >>617091

02 Янв, 17:39 #90 #617074

>>617072
Блядь, Я ТАК И ДЕЛАЮ.

Но что делать в рантайме уже при использовании текстур? Поиск по ключу - O(log N), и для рантайма это не подходит. Грузить в другой, более подходящий контейнер? Использовать ссылку на указатель или двойной указатель? Я использую последний вариант, но он не очень гибок. Думаю сделать всё-таки отдельный vector только для рантайма.

Ответы: >>617091, >>617095

02 Янв, 17:49 #91 #617091

>>617072
>>617074
Еблан еблана погоняет.
а) unordered_map не допускает дубликатов, даже проверять нихуя не недо;
б) поиск по unordered_map - O(n);
в) используя кортежи можно обойтись 1 контейнером.
Хватит спамить, мудели.

Ответы: >>617107

02 Янв, 17:51 #92 #617095

>>617074
Мать твою, тогда ХЕШ
НУ ЧТО ТЫ ЗА УЕБОК ТАКОЙ, Я ТЕБЯ СПРАШИВАЮ?! ТЫ С ТАКИМ УМНЫМ ВИДОМ НАХУЙ ПОДНИМАЕШЬ ТАКИЕ ВАННАБИ УМНЫЕ ВОПРОСЫ, 10^-9 мс сэкономить, охуеть, оптимизатор хуев, даже линерифметическую сложность нагуглил, молодец НО ТЫ, БЛЯТЬ, ДАЖЕ ОСНОВ не понимаешь, деточка, пошел нахуй из этого треда с двойными указателями, ты оптимизирован по жизни, никто кроме нас твоих высеров не увидит.

Ответы: >>617116

02 Янв, 17:59 #93 #617107

>>617091
>unordered_map не допускает дубликатов, даже проверять нихуя не недо;
map тоже, внезапно, да?

std::map<std::string id, std::unique_ptr<Texture>> прекрасно справятся с ебучей задачей этого игродела.

02 Янв, 18:01 #94 #617109

Ладно, я не хочу ни с кем ссориться, давайте будем жить дружно можно в качестве примирение обоссать игродебила с его движкопроблемами

Ответы: >>617110

02 Янв, 18:01 #95 #617110

>>617109
>примирения*

02 Янв, 18:05 #96 #617116

>>617095
Каких нахуй основ? Я на графике специализируюсь, все эти хэши и сеты нужны только всяким писателям фабрик абстрактных фабрик. И да, у меня на отрисовку кадра есть только 16 мс. Шестнадцать миллисекунд, блядь, это тебе не твой энтерпрайз, когда минутные задержки при поиске - это нормально и вообще оптимизация для байтоёбов. Если я буду одни текстуры из контейнера получать 2-3 мс, то нахуй можно забыть о просчёте физики, постпроцессинге и нормальной анимации. Потому что так разбазариваться временем отрисовки кадра нельзя, это жёсткий рантайм.

Твой хэш тоже медленный, потому что есть коллизии. Чем больше объектов в твоём хэшмапе, тем дольше будет поиск. Один вектор с обращением по ID - куда более приоритетный вариант. Но не является ли это обращение слишком большим оверхедом?

Ответы: >>617120, >>617121, >>617124, >>617163

02 Янв, 18:07 #97 #617120

>>617116
>все эти хэши и сеты нужны только всяким писателям фабрик абстрактных фабрик
Еще один поехавший байтоеб.

02 Янв, 18:07 #98 #617121

>>617116
А у тебя просчет физики в одной каше с отрисовкой графики? Хуясе.

Ответы: >>617130

02 Янв, 18:07 #99 #617123

>>617114
Прости, я не знал про O(n)

02 Янв, 18:08 #100 #617124

>>617116
Тут такой вопрос внезапно: а почему просто не запихать в вектор всё то, что должно быть в текущий момент на экране, и не ебать мозги?

Ответы: >>617130

02 Янв, 18:09 #101 #617125

>>617114
>мой же аргумент
Какой? std::pair? Я код скинул хуй знает сколько постов назад, мог просто сразу сказать про O(n) в умапе, осталось бы десять символов добавить и задача решена.

02 Янв, 18:10 #102 #617128

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

Ответы: >>617129, >>617133

02 Янв, 18:10 #103 #617129

>>617128
Чем ты их оттуда выщипывать будешь?

Ответы: >>617131

02 Янв, 18:11 #104 #617130

>>617121
Нет, конечно. Но ведь за кадр надо сделать и то, и то, верно?

>>617124
Я так и делаю. Но только не то, что на экране, а то, что в сцене. Octree-оптимизаций и подобных вещей у меня пока нет.

Ответы: >>617132

02 Янв, 18:12 #105 #617131

>>617129
Что-то типа object->texture_id.

Ответы: >>617134, >>617135

02 Янв, 18:13 #106 #617132

>>617130
Блядь, ну, начнем с того... Что если тебе нужно каждый кадр запрашивать текстуру - это уже хуйня какая-то, конечно если у тебя не имитация партиклов которые живут по 2-3 кадра.

Ответы: >>617138

02 Янв, 18:13 #107 #617133

>>617128
У тебя же не одна текстура на всю сцену. А как ты будешь говорить GPU, какую текстуру использовать для конкретного объекта? Правильно, следующей конструкцией:
dc->PSSetShaderResourses(0, 1, mTexture);

02 Янв, 18:14 #108 #617134

>>617131
И тут у тебя 100 объектов.
object1->texture_id
object->texture_id

Ответы: >>617136, >>617139

02 Янв, 18:15 #109 #617135

>>617131
Ну охуеть.
Не проще ли ПРОСТО в объекте хранить ссылку на объект текстуры? И искать ее в umap контейнере только при инициализации объекта.

Ответы: >>617137, >>617143

02 Янв, 18:15 #110 #617136

>>617134
Ебать, а запихнуть это в сам класс религия не позволяет?

02 Янв, 18:16 #111 #617137

>>617135
Так об этом и речь.

Ответы: >>617139

02 Янв, 18:18 #112 #617138

>>617132
А как ещё рисовать объекты? Текстурных слотов в GPU только 16, для каждого объекта ты волей-неволей будешь должен установить его текстуру в нужный слот, затерев то, что в этом слоте находилось.. Конечно, на самом деле ты используешь дескриптор, а GPU дальше сам всё сделает, но это уже мелочи реализации.

Ответы: >>617141

02 Янв, 18:19 #113 #617139

>>617137
Я понял, что ты это имел ввиду. Осталось объяснить это ему, судя по >>617134 ему не очень понятно.

02 Янв, 18:20 #114 #617141

>>617138
Но-но-но, не перекручивай, мы говорили о получении текстуры из контейнера текстур, все что происходит дальше - никого ИТТ не ебет.

02 Янв, 18:23 #115 #617143

>>617135
Так у меня пока так и делается. Только в классе объекта хранится ссылка на объект текстуры. При вызове функции Init() таким образом инициализируются все текстуры во всех объектах. Довольно удобно.

Но по определенным причинам я всё равно порываюсь сделать запрос по ID.

Ответы: >>617154

02 Янв, 18:34 #116 #617154

>>617143
Каковы причины? Все равно во время жизни объекта будет юзаться только она одна, я бы ее стащил единожды по айди и не морочил себе голову.
Вот, кстати, глянь http://pastebin.com/bzCicdUX
Сам таким пользуюсь, разве что нужно заменить на umap, как тот анончик подсказал.
Два в одном - и выгрузка, и загрузка, если такой текстуры нету еще в контейнере.

Ответы: >>617221, >>617266

02 Янв, 18:48 #117 #617163

>>617116
>16 мс
Это не жесткий рантайм, это так, детская песочница. Жесткий рантайм - это планировать работу ПО оптимально под политики планировщика системы. 16мс, охуеть вообще, дожили.

Ответы: >>617213, >>617266

02 Янв, 20:11 #118 #617213

>>617163
А вот надо будет тебе ВСЕГДА 16 мс иметь, и это будет самый что ни на есть обычный жесткий реалтайм.

Ответы: >>617224, >>617232

02 Янв, 20:17 #119 #617221

>>617154
> std::map<std::string, std::unique_ptr<T>> m_resources;
Почему бы не хранить хэш строки, а не саму строку, а?

Ответы: >>617254

02 Янв, 20:18 #120 #617224

>>617213
В игорях так не бывает.

02 Янв, 20:18 #121 #617225

>>616999
Конструкторе или операции присваивания.

02 Янв, 20:21 #122 #617232

>>617213
Жесткий реалтайм - это QNX, и уж точно не игры. Если допустим дрифт в 100мкс это уже soft-realtime.

Ответы: >>617248

02 Янв, 20:24 #123 #617238

В голос проиграл с текстурозагружателя.
мимооп

02 Янв, 20:40 #124 #617248

>>617232
У тебя какие-то странные термины. Жесткий реалтайм - это гарантированное время отклика. Хоть час, лишь бы гарантированное. Мягкий - это когда чаще всего время отклика равно предполагаемому, но иногда допустимо некоторое отклонение.

02 Янв, 21:00 #125 #617254

>>617221
Действительно, почему бы и нет?
Не понял вопроса.

Ответы: >>617256

02 Янв, 21:02 #126 #617256

>>617254
Я это подглядел в думе 3.
https://github.com/id-Software/DOOM-3-BFG/blob/master/neo/renderer/Image.h#L311
https://github.com/id-Software/DOOM-3-BFG/blob/master/neo/renderer/ImageManager.cpp#L237

Ответы: >>617259

02 Янв, 21:09 #127 #617259

>>617256
Не, я к тому, что если ты и сам в курсе, что так нужно - почему бы и нет?
Этот код я взял из курсовой работы годовой почти давности, и там было всего 25 текстурок.

Ответы: >>617261

02 Янв, 21:13 #128 #617261

>>617259
Думаю потому, что сравнение строк и сравнение чисел различается по скорости.
> Этот код я взял из курсовой работы
Если текстуры не большие, то имеется смысл объединить их в одну большую текстуру и менять координаты при рисовании или создать массив текстур.

Ответы: >>617265

02 Янв, 21:21 #129 #617265

>>617261
Я тогда не думал, что так можно было с хешем, лол.

А насчет кропалки - в моем случае и так текстуры резались на анимации, один большой файл был бы накладным в реализации, наверное.

02 Янв, 21:24 #130 #617266

>>617163
Мне же не только текстуры выбирать из контейнера за это время, верно?

>>617154
Ну, например, дело в том, что в DirectX11 текстуры имеют тип ID3D11ShaderResourceView, в DirectX12 - ID3D12ShaderResourceView, в DirectX9 - IDirect3DTexture9, а в OpenGL вообще GLuint.

И есть три варианта решения возникающих проблем:
1. В абстрактных классах объектов сцены хранить двойной указатель на void, а в наследниках, специфичных для конкретного рендера, делать reinterpret_cast, благо оверхеда 0. Минусы - выглядит довольно некрасиво. Это то, как сейчас делаю я.
2. Написать класс-враппер Texture, в котором будут методы GetD3D11Tex(), GetD3D12Tex() и т.д. Хранить в нём несколько указателей(md3d9Tex, md3d11Tex и т.д.), только один из которых валиден. Т.е. допустим, если сейчас у нас режим рендера в D3D11, то функция GetD3D11Tex() будет возвращать нужный нам дескриптор, а при попытке вызова GetD3D12Tex() будет возвращаться nullptr. Минусы - оверхед по памяти и чуть-чуть по скорости. Этот метод мне нравится меньше всего.
3. В классах объектов сцены хранить ID текстуры. В классе менеджера текстур иметь методы GetD3D11Tex(UINT id), GetD3D12Tex(UINT id) и т.д. Минусы - небольшой оверхед по памяти(дополнительные контейнеры для разных типов в менеджере текстур) и большой по скорости(дополнительная операция чтения из памяти при каждом использовании текстуры). Над этим методом думаю.

02 Янв, 21:30 #131 #617273

Пацаны, захотелось мне наваять что-нибудь на Qt, остановился на клиенте для Pastebin, какие подводные камни?

Ответы: >>617274, >>617275, >>617279

02 Янв, 21:32 #132 #617274

>>617273
>какие подводные камни?
наверно то что там с нетом нужно работать.

Ответы: >>617278

02 Янв, 21:32 #133 #617275

>>617273
Никаких няша. Кроме того что pastebin заблокирован за экстремизм.

Ответы: >>617278

02 Янв, 21:34 #134 #617278

>>617275
У кого, блин?
>>617274
Не проблема же.

Да и все равно, наверное, пад сибя, потому что нахуй никому это дерьмо не надо. Единственное, пока не разобрался с их ключами.

Ответы: >>617279

02 Янв, 21:36 #135 #617279

>>617278
>>617273
А что ты хочешь делать-то?

Ответы: >>617281, >>617283

02 Янв, 21:38 #136 #617281

>>617279
Он наверно это написал чтобы отвлеч нас от гемдева и текстур. Теперь будет семёнить.

Ответы: >>617284, >>617289

02 Янв, 21:39 #137 #617283

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

Ответы: >>617292

02 Янв, 21:40 #138 #617284

>>617281
Ноуп, не буду, зачем мне это нужно? Сритесь дальше, может и до моей охуительной задумки дойдет

02 Янв, 21:46 #139 #617289

>>617281
К слову, термины "игры" и "геймдев" я считаю слишком зашкваренными. Я предпочитаю термин "графические приложения реального времени".

Ответы: >>617290

02 Янв, 21:48 #140 #617290

>>617289
>графические приложения
А если игра без графики? Или она настольная? Тогда это нихуя не графическое или не приложении. Значит термины "игры" и "геймдев" убрать нельзя.

Ответы: >>617293

02 Янв, 21:54 #141 #617292

>>617283
> синхронизацию паст с локальным хранилище
Храни в каком-нибудь дропбоксе и всё.

Ответы: >>617294

02 Янв, 21:54 #142 #617293

>>617290
В таком случае там ни текстур, ни рендера не будет. А это меня не волнует.

Ответы: >>617296

02 Янв, 21:55 #143 #617294

>>617292
А при чём тут Qt?

Ответы: >>617297

02 Янв, 21:56 #144 #617296

>>617293
>А это меня не волнует.
Но они есть! И термины подходят для них тоже.

Ответы: >>617299

02 Янв, 21:56 #145 #617297

>>617294
А зачем для этого делать что-то на Qt если такое можно и на простых скриптах провернуть?

Ответы: >>617300, >>617305

02 Янв, 21:58 #146 #617299

>>617296
Да, но я специализируюсь только на графических приложениях реального времени.

02 Янв, 22:03 #147 #617300

>>617297
>захотелось мне наваять что-нибудь на Qt,
Мне кажется что он хочет потренироваться и ему похуй насколько полезно/конкурентно способно и популярно его приложение.

Ответы: >>617305

02 Янв, 22:15 #148 #617305

>>617300
this.
Нет, мне конечно было бы приятно, если бы кто-то из моих одноклассников взял на вооружение.
>>617297
На скриптах удобно только непосредственно заливать, сам так делаю.
Но ведь можно прикрепить охуительный гуёк с разными фишечками.

02 Янв, 22:26 #149 #617308

Объясните мне пожалуйста, как сработает в следующем примере конструктор/деструктор:
Есть класс Point. Он умеет пару полей, пару функций и не имеет конструктора копирования. Есть какая-то функция, которая имеет в параметрах объект Point.
Я создаю объект Point:
Point a;
Далее, вызываю функцию:
do_something(a);
Когда вызовется функция, то создастся побитовая копия "a" и будет указывать на него же. Когда функция закончит выполнение, то вызовется деструктор этого созданного объекта. И получается, наш оригинальный объект "a" тоже испортится деструктором?

Ответы: >>617309, >>617313

02 Янв, 22:28 #150 #617309

>>617308
Если передаёшь по значению, то вызовется деструктор для копии.

Ответы: >>617310

02 Янв, 22:30 #151 #617310

>>617309
Так а эта копия не будет указывать на оригинал? Как там скопируются значения, если конструктор копирования не определен?

Ответы: >>617311

02 Янв, 22:32 #152 #617311

>>617310
> не будет указывать на оригинал
Покажи определение функции тогда.

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

Ответы: >>617314

02 Янв, 22:35 #153 #617313

>>617308
в оригинале объекта указатель на строку, а в деструкторе эта стока удаляется. После выхода из функции а повредиться?

Ответы: >>617316, >>617322

02 Янв, 22:36 #154 #617314

>>617311
Ну а зачем тогда вообще нужен конструктор копирования? Приведи какой-нибудь пример.

Ответы: >>617318

02 Янв, 22:38 #155 #617316

>>617313
Вот да, я про это и спрашиваю.

58 Кб, 692x400

02 Янв, 22:43 #156 #617318

>>617314

Ответы: >>617320

02 Янв, 22:46 #157 #617320

>>617318
Ну, то что создаётся дефолтный конструктор копирования, ничего не значит. Как он копирует ссылки/указатели?

Ответы: >>617329

26 Кб, 284x432

02 Янв, 22:47 #158 #617322

>>617313
Как написать так чтобы программа не ломалась, а выводила тру и фолс? После второго вызова пишет невалидный указатель и ломается.

Ответы: >>617323

02 Янв, 22:49 #159 #617323

>>617322
Строки в стиле си сравниваются через strcmp

Ответы: >>617328

23 Кб, 255x377

02 Янв, 22:57 #160 #617328

>>617323
А этот почему сначала 5 и 0 выводит, а потом ломается?

Ответы: >>617331, >>617333, >>617369

02 Янв, 22:58 #161 #617329

>>617320
В том-то и прикол, что тут тебе уже свой пилить нужно конструктор.
Глупые вопросы задаешь.

FFTW 02 Янв, 22:59 #162 #617330

>If you are planning to use the DHT because you've heard that it is “faster” than the DFT (FFT), stop here. The DHT is not faster than the DFT. That story is an old but enduring misconception that was debunked in 1987.

Ядро быстрого преобразования Хартли — это
cos(x) + sin(x) == sqrt(2) * cos (-pi / 4 + x)

Как оно может не быть быстрее DFT? Нет, ну как?

02 Янв, 22:59 #163 #617331

>>617328
В следующий раз, пожалуйста, выкладывай свое говно на идеон.

Ответы: >>617332

02 Янв, 23:00 #164 #617332

>>617331
https://ideone.com/vpD9bT

Ответы: >>617355

02 Янв, 23:03 #165 #617333

>>617328
В общем, когда твой объект удаляется в main это происходит уже второй раз (1ый раз в f).
Для таких случаев придумали shared_pointer.
Ну или передавай по ссылке в функцию.

Ответы: >>617336

02 Янв, 23:06 #166 #617336

>>617333
Точнее при удалении происходит очищение памяти.

02 Янв, 23:16 #167 #617342

В чём шутка?

a: а linux'вская версия gcc может exe'шник выдать?
b: Может.
b: g++ file.c -o file.exe
b: ./file.exe — всё работает

Ответы: >>617343, >>617348, >>618943

02 Янв, 23:17 #168 #617343

>>617342
В линуксе нету расширения у бинарников.

Ответы: >>617344, >>617349

02 Янв, 23:18 #169 #617344

>>617343
А виндосовские бинарники он может делать?

Ответы: >>617347, >>617351

02 Янв, 23:21 #170 #617347

>>617344
Наверное.

02 Янв, 23:22 #171 #617348

>>617342
Варианты навскидку:
1) У питуха mingw, он действительно конпелирует для венды и запускает через wine.
2) .exe по какой-то причине не является настоящим расшерением файла.

Ответы: >>617349

02 Янв, 23:22 #172 #617349

>>617343
Бля, почти попал.
мимо спермовор >>617348

02 Янв, 23:23 #173 #617351

>>617344
Да, но не совсем через gcc.

Ответы: >>617352

02 Янв, 23:23 #174 #617352

>>617351
а как?

Ответы: >>617353, >>617360

02 Янв, 23:24 #175 #617353

>>617352
Как-то видел в репах дебиана мингв.
Видимо при помощи него.

02 Янв, 23:25 #176 #617355

>>617332
https://ideone.com/EVbnrt

02 Янв, 23:26 #177 #617360

>>617352
http://www.tinc-vpn.org/examples/cross-compiling-windows-binary/
Кстати, мне как фрилансеру тема охуенная, заказчики бывают на винде, но так влом ребутиться и менять полностью свое окружение.

02 Янв, 23:29 #178 #617369

>>617328
Для этого и нужен конструктор копирования. Когда ты передаешь объект в функцию (таким образом каким ты его передаешь) создается его копия. Конструктор по умолчанию создает неглубокую копию - тоесть получается что у двух объектов указатель i указывает на одну и туже область памяти. Потом когда после завершения функции один из объектов (копия) автоматически удаляется - освобождается (в вызове деструктора) и память на которую указывает i. Указатель в изначальном объекте начинает указывать на уже освобожденную память что UB. Нужно или избежать копирования, или, что правильней - переопределить конструктор копирования - с глубоким копириванием или другими способами избежать преждевременного освобождения памяти на которую указывает i (к примеру i можно сделать умным указателем). Гугли "правило трех C++".

02 Янв, 23:32 #179 #617376

>>617358
> В linux вообще нет понятия "расширение".
Схуяли нет? Просто там расширение не определяет исполняемый это файл или нет.

02 Янв, 23:59 #180 #617406

анон,как отключить Precompiled Headers в vs ? вроде ставил не испольховать в свойствах проекта,но всё равно ошибка с1083

Ответы: >>617408

10 Кб, 758x204

03 Янв, 00:01 #181 #617408

>>617406

Ответы: >>617426

03 Янв, 00:03 #182 #617409

>>617399
$ echo "#include <vector>" > aaa.cpp
$ gcc -shared aaa.cpp
$ mv aaa.cpp aaa.c
$ gcc -shared aaa.c
aaa.c:1:18: fatal error: vector: No such file or directory
#include <vector>
^
compilation terminated.

03 Янв, 00:16 #183 #617426

>>617408
сделал всё как у тебя,всё равно
Ошибка\tC1083\tНе удается открыть файл включение: corecrt.h: No such file or directory\tConsoleApplication8\tc:\program files (x86)\microsoft visual studio 14.0\vc\include\crtdefs.
как я понял нужно изменить католог включения?или что,где найти этот файл ?

Ответы: >>617432

03 Янв, 00:24 #184 #617432

>>617426
>C1083
https://msdn.microsoft.com/ru-ru/library/et4zwx34.aspx

03 Янв, 00:26 #185 #617433

Что означает синтаксис:
::function_name();
То-есть, без указания пространства имён. Просто два двоеточия.

Ответы: >>617435, >>617439

03 Янв, 00:28 #186 #617435

>>617433
Глобальное пространство имен.

Ответы: >>617438

03 Янв, 00:29 #187 #617436

>>617399
Дебил тупой? Дебил тупой.
aaa.cpp и aaa.c разные названия, тебе не кажется? Extension тут при чем?

03 Янв, 00:31 #188 #617437

Я ньюфаг. За плечи всего месяц опыта на СИ. Посоветуйте для нюфани книгу по крестам.

Ответы: >>617442

03 Янв, 00:32 #189 #617438

>>617435
Спасибо. Я догадывался.

03 Янв, 00:32 #190 #617439

>>617433
http://melpon.org/wandbox/permlink/XOmhdds2iHMjhaJJ

03 Янв, 00:41 #191 #617442

>>617437
Почитал шапку. А к алгоритмам когда приступать? Что вообще читать чтобы пердолить программирование как бог?

03 Янв, 00:53 #192 #617450

Посоны, я тут после Java внезапно перекатываюсь на C++. Есть вопросы:
1) Что из опенсурсных проектов можно почитать для усвоения хорошего стиля современного цпп?
2) Какие компиляторы сейчас поддерживают полностью с++11 и c++14 стандарт?

Ответы: >>617453, >>617493, >>617494

03 Янв, 00:55 #193 #617453

>>617450
> 2)
http://en.cppreference.com/w/cpp/compiler_support

03 Янв, 01:41 #194 #617472

Сап. Призываю SFML-гуру. Суть такова:
Есть спрайт прямоугольника rect. Есть окно window и его view.
Допустим, я хочу, чтобы при растягивании окна через
window.view = sf.View((0, 0, event.size[0], event.size[1]))
и изменении масштаба через
window.view.zoom(event.zoom)
абсолютный размер этого прямоугольника и его положение относительно границ окна не менялось.
Собственно, что уже пробовал:
1) присваивать windows.view кастомный sf.View(0, 0, 1.0, 1.0) - в таком случае меняется размер при ресайзе окна.
2) не присваивать кастомный view - тогда меняется размер при зуме.
Вопрос: что сделать, чтобы всё работало?

03 Янв, 02:17 #195 #617488

>>615922 (OP)

В шапке в разделе про IDE не хватает пары строк про божественный Xcode для макоёбов. Поправьте чтоли, а то нубасы же так и будут себе тормозной Clion втыкать.

03 Янв, 02:31 #196 #617493

>>617450
>почитать
Дум 3 или репы любого успешного чувака на гитхабе.

Ответы: >>617566

03 Янв, 02:33 #197 #617494

>>617450
Google code style guide

Ответы: >>617515

03 Янв, 02:58 #198 #617502

Я начинающий крестовик, и мне нужен ответ от продвинутых плюсовиков. Я написал немного кода ideone.com/1zY2dF с целью похимичить с указателями на виртуальные функции. Похимичить получилось, memset работает на ура. Так вот есть 2 вопроса:
1. Как избавиться от таких хитрожопых юзеров, которые смогут в клиентском коде вот так взять и подхачить мемсетом виртуальные методы?

Ответы: >>617508, >>618483

03 Янв, 02:59 #199 #617503

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

03 Янв, 03:00 #200 #617505

2. Можно ли в случае приватного наследования PrivatBank : NBU_Bank (без использования friend), понятное дело что функцию Increase_Debt он видеть не будет, заставить объект PrivatBank вызвать эту функцию Increase_Debt?

03 Янв, 03:03 #201 #617508

>>617502
Только начинающий, а уже ебанутый крестоеб.
Вот кому в голову может прийти так нахитрожопить? Это же непереносимо и поломается при любом обновлении.

Ответы: >>618083

03 Янв, 03:31 #202 #617514

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

03 Янв, 03:35 #203 #617515

>>617494
Кстати, странный он какой-то.

Ответы: >>617517

03 Янв, 03:41 #204 #617517

>>617515
Почему? Да даже если и странный, то по крайней мере в нём всё досконально разобрано, так что он готов к применению.

03 Янв, 04:37 #205 #617532

Можно вернуть значение из функции по ссылке?
То-есть, передать по ссылке значение в функцию. Значение, на которое указывает ссылка изменить и потом после завершения функции его использовать?

Ответы: >>617533, >>617936

03 Янв, 04:42 #206 #617533

>>617532
Ну да, проверил, всё норм. Просто наткнулся на гитхабе у чувака на метод, который использует указатели. Думал, может почему-то нельзя так сделать.

Ответы: >>617836

03 Янв, 10:24 #207 #617566

>>617493
Современного же. То есть с 11+ стандартами. Я тут порылся нашел пару фейсбучных либ
https://github.com/facebook/wangle и https://github.com/facebook/folly/ вроде ок должно быть.

03 Янв, 18:19 #208 #617836

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

Ответы: >>617936

03 Янв, 19:53 #209 #617936

>>617836
Не вводи человека в заблуждение.
>>617532
Для этого они, в основном, и используются. Ссылка - это, по сути, еще одно имя для переменной, привязанное к тому же адресу. И работать с ним надо как с обычной переменной.

Ответы: >>617955

03 Янв, 20:08 #210 #617955

>>617936
Обоснуй или иди нахуй, ньюфаг. Имя переменной, привязанное к адресу... Охуеть просто.
>работать с ним надо как с обычной переменной
Просто промолчу. Когда уже каникулы заканчиваются?

Ответы: >>617967, >>618217

03 Янв, 20:31 #211 #617967

>>617955
Ну ок, "name alias", у меня плохо с русским.
>И работать с ним
>с ней
фикс

int a = 1; // peremennaya
int& b = a; // ssylka
int* c = &a; // ukazatyel'
&a == &b; // true

>>работать с ним надо как с обычной переменной
>Просто промолчу. Когда уже каникулы заканчиваются?
То есть, b, по твоей логике - указатель? Может его разыменовывать можно, pointer arithmetics применять?

Ответы: >>618010, >>618038

03 Янв, 20:32 #212 #617968

>>615922 (OP)
Анан, как заделать что-то вроде динамической (не уверен, что это можно так назвать) типизации в плюсах? На пример, есть json/xml/bencode файл/строка. Парсим это всё и выплёвываем объект/ноду, содержащий другие ноды. Эти ноды содержат значения (инты, флоаты, строки) либо словари/списки других нод. Если ты понял мой бред, как такое можно заделать? Через наследование или как? Пни позязя в нужном направлении. С меня как всегда.

Ответы: >>617970, >>617971, >>617972, >>618036

03 Янв, 20:35 #213 #617970

>>617968
auto/enum

Ответы: >>617973, >>617990

03 Янв, 20:36 #214 #617971

>>617968
boost::any, boost::variant например. В qt что-то такое было.

Ответы: >>617973

03 Янв, 20:36 #215 #617972

>>617968
boost::any глянь. Ну или union использовать.

Ответы: >>617973

03 Янв, 20:39 #216 #617973

>>617970
>>617971
>>617972
сяп :3

03 Янв, 21:00 #217 #617990

>>617970
Пиздос, полон тред дегенератов. Причем здесь auto, если ему надо в _рантайме_ генерировать ноды? Скажи мне, жертва инцеста.

03 Янв, 21:29 #218 #618010

>>617967
> //peremennaya
> // ssylka
> // ukazatyel'
Самый каноничный петух ИТТ найден.

03 Янв, 22:02 #219 #618036

репортует >>617968 -кун
https://gist.github.com/anonymous/4dc4c242c0975ed33065
так, получается вот так с юнионом. правда с геттером какая-то пизданога получается.
если делать как описано здесь http://stackoverflow.com/a/26163140
и потом кастовать внутри свободной функции к нужному типу (через свитч по типу). как по вашему, нормально будет?

03 Янв, 22:03 #220 #618038

>>618009
>прочитал с++ за 21 день и кудахкает
Эти проекции. Вот этот бред:
>указатель, ограниченный в своих телодвижениях и возможностях
ты оттуда и вычитал, да?
>>618008
Ладно, допустим, это указатель. А что у нас является значением указателя? А что будет являться значением b? >>617967
И почему тогда &a == &b, если мы сравниваем указатель на a с указателем на указатель на a? Можешь сконпелировать и убедиться. Тебе не помешает.

Ответы: >>618045

03 Янв, 22:08 #221 #618045

>>618038
Указатель - адрес.
Угадай, каков адрес адреса.

Ответы: >>618049, >>618054

03 Янв, 22:11 #222 #618049

>>618045
Указатель -- переменная, содержащая адрес, указывающий на кусок памяти. Естественно у этой переменной есть адрес.
Мимопроходил

03 Янв, 22:17 #223 #618054

>>618045
Адрес адреса? Что, блядь? Адрес указателя, может быть? Так схуяли адрес указателя на int равен адресу самого int? (полагая, что мы все еще в рамках манявселенной, в которой ссылка это указатель)

Ответы: >>618057

03 Янв, 22:19 #224 #618057

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

Ответы: >>618095

03 Янв, 22:44 #225 #618083

>>617508
Ну тут уж хуй знает, если перенос на какие-нибудь ебнутые эмбедеды то может и полетит к хуям, а практика показала что во вменяемых компиляторах кланг джей-си-си и мсвс указатель идет вначале а потом поля. Твой ответ как пуканье в офисный стул - такой же бесполезный. Меня интересует секьюрный аспект, вот нахуячу я либу, с кококо архитектурой, а Васян в клиентском коде ебнет мемсет и нагнет меня раком. Вот собственно умных С++ господ я и спрашиваю, как такое ситуацию обойти секьюрно

Ответы: >>618094, >>618308

03 Янв, 23:04 #226 #618094

>>618083
1. Запускать код на собственном сервере.
2. Ебаться с шифрованием, виртуальной машиной и антиотладочными приемами.
Все. А твои йоба-хаки имеют мало смысла, если у человека будет доступ к бинарникам твоей либы (не говоря уже об исходниках), поменять он сможет что угодно и как угодно.

03 Янв, 23:04 #227 #618095

>>618057
Это ПРОСТО, блядь, биндинг/алиас/привязка/whatever, они не занимают память сами по себе, в отличие от указателя. Ладно, "статический" (компайл тайм) указатель, если так хочется.
http://pastebin.com/nUF9DYzp
Вывод:
14 88 228
14 88 919

Ответы: >>618099

03 Янв, 23:07 #228 #618099

>>618095
Хуйню несешь http://ideone.com/Ry1UcZ .

Ответы: >>618108, >>618116

03 Янв, 23:09 #229 #618108

>>618099
Ну про структуры забыл, да.

Ответы: >>618113

03 Янв, 23:13 #230 #618113

>>618108
Если бы на ideone можно было легко вывести ассемблерный листинг, я бы это и там показал. http://stackoverflow.com/questions/2336230/difference-between-const-pointer-and-reference
И больше не неси чуши с такой агрессией.

Ответы: >>618188

03 Янв, 23:16 #231 #618116

>>618099
Да, если бы это был указатель, то во второй строчке было бы 12 (предполагая x86_64)

Ответы: >>618119

03 Янв, 23:17 #232 #618119

>>618116
Школьник маняврирует, вы поглядите-ка. http://ideone.com/Ry1UcZ

Ответы: >>618167

04 Янв, 00:12 #233 #618167

>>618119
https://ideone.com/Hk1gbP
Ладно, ладно, ты подебил. А что на это скажешь?
http://pastebin.com/ydMuxxtH

04 Янв, 00:36 #234 #618188

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

Никто, блядь, не говорил что ссылка = указатель.
Не нужно вырывать из контекста.

04 Янв, 00:44 #235 #618203

За много про иде. идеон оставь, а остальное замени на это.

Windows: Visual Studio
Cкачать: https://goo.gl/qgAAc6
Инструкция: https://goo.gl/JMd57G

Linux: Code::Blocks
Cкачать: https://goo.gl/ZjrPgb
Инструкция: https://goo.gl/mFln8S

OS X: Xcode
Скачать: https://goo.gl/NEhJC4
Инструкция: https://goo.gl/TlN2QC

Ответы: >>618204, >>618215, >>618235

04 Янв, 00:44 #236 #618204

>>618203
>курсив
конечно заменить на жирный или вообще без разметки

04 Янв, 00:46 #237 #618207

> Унаследованная памятка:
И пора её убрать

04 Янв, 00:52 #238 #618215

>>618203
>ide
Vim

Ответы: >>618221

04 Янв, 00:54 #239 #618217

>>618175
>>617955
https://stackoverflow.com/questions/57483/what-are-the-differences-between-a-pointer-variable-and-a-reference-variable-in/57492#57492
>Since a reference has the same address as the original variable itself, it is safe to think of a reference as another name for the same variable.
> This variable is on the stack. Since a reference has its own space on the stack, and since the address is the same as the variable it references.
> This implies that there is a real address of a reference that the compiler will not tell you.

04 Янв, 00:56 #240 #618221

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

Ответы: >>618223

04 Янв, 01:00 #241 #618223

>>618221
Cледуя той же логике, можно сразу на завод идти.

04 Янв, 01:00 #242 #618225

>>615922 (OP)
>Почему стоит использовать именно C++?
- Очень быстрый
- Достаточно высокоуровневый
- Адаптируется под разные задачи
- Всегда останется популярным

04 Янв, 01:03 #243 #618228

>>615922 (OP)
> Но он же давно устарел!
С++ никогда не вымрет т.к. нужно поддерживать старые проекты и последнее время он стремительно развивается.

04 Янв, 01:04 #244 #618229

>>615922 (OP)
>Сейчас все пишут на %languagename, а кресты сосут у него!
тут вообще нужно переделать вопрос. типа нахуя нужны кресты и что на них пишут. потом над этим подумая и ты оп тоже попробуй

04 Янв, 01:07 #245 #618233

>>615922 (OP)
> Окей, я решил вкатиться. Какие же книги мне читать?
вот это нужно куда-то вынести где есть разметка и нет регистрации. Убрать устаревшее и добавить дейтла или как эта книга называется которыю какой-то анон из треда в тред в шапку реквестит
вынести надо т.к. её удобно использовать без треда и делает шапку трудно просматриваемой. долго листать и искать нужный пункт когда список книг отвлекает

04 Янв, 01:11 #246 #618235

>>618203
кстати можно ещё ссылку на вот это кинуть http://www.cprogramming.com/c++book/jumping_into_c++_sample.pdf

04 Янв, 01:22 #247 #618244

>>615922 (OP)
> Хуле тут так сложно? Я открыл учебник, там какой-то ад!
Попробуй https://goo.gl/kVaela т.к. после выхода 11ого стандарта язык стал проще. Но С++ остался очень сложным языком поэтому лучше не учить его первым. Перед крестами почитай про алгоритмы, архитектуру компьютера операционные системы. тут наверно надо дать ссылок на краткий курс и думаю TL;DR не нужен

Ответы: >>619995

04 Янв, 01:24 #248 #618245

>>615922 (OP)
>Не буду я все делать сам! Подавайте сюда софт, который все сделает за меня и подотрет мне жопу!
Думаю можно так и оставить. Но может перефразировать вопрос? типа дайте список программ упрощающих жизнь. Может ещё от мата в шапке избавиться?

Ответы: >>619017

04 Янв, 01:27 #249 #618248

>>615922 (OP)
>Я не умею читать.
так и оставить. о чём и говорил раньше. из-за слишком большой шапки я перепутал порядок вопросов
>Ты охуел? В этих книгах по тысяче страниц! Хочу коротких статей.
а это снова перефразировать надо т.к. статьями книги не заменить. и там поясняют какой-то отдельный аспек но подробно.

Ответы: >>618265

04 Янв, 01:34 #250 #618252

>>615922 (OP)
>Q: Мне надоело писать велосипеды, какие у вас тут популярные либы?
>Q: Нужно зделать %монструозная_хуйня_нейм, но я обосрался от одной мысли о написании ее с нуля, что же делать?
это тоже мне нравиться. вопросы только объединить наверно надо как-то. как вариант вместо двух абзацев текста вставить ссылку на вики или ещё куда-то где так-же пояснили. и ещё можно литературу продублировать в библиотеке которая будет вынесена из шапки. зделать через с в следующий напиши

Ответы: >>619017

04 Янв, 01:45 #251 #618265

>>618248
>раньше
выше

04 Янв, 04:17 #252 #618306

>>617009
Flyweight

04 Янв, 04:34 #253 #618308

>>618083
1. Что ты там прятать собрался от своих пользователей?
2. Экспортируй из длл, пряч детали за pimpl, не используй virtual

Ответы: >>618357

04 Янв, 04:42 #254 #618309

Можете объяснить, как работает memcpy?
Делает побитовую копию? То-есть, мне следует его использовать, если хочу скопировать значения, но не указатели/ссылки?

Ответы: >>618314

04 Янв, 04:50 #255 #618314

>>618309
Копирует область памяти на другую область. Предполагается, что области не пересекаются.

Часто применяют для копирования POD.

Если у тебя простые типы (числа), то =.
Если у тебя указатели на простые типы, то a = b

Ответы: >>618316

04 Янв, 04:57 #256 #618316

>>618314
>Если у тебя простые типы (числа), то =.
>Если у тебя указатели на простые типы, то a = b
Не понял. Указатели будут указывать на оригинальные значения, верно?

Ответы: >>618466

04 Янв, 04:57 #257 #618317

Я тут с глупеньким вопросом. По работе нужно тестировать некий софт, и вот в логах замечаются такие вещи:
>foo.cc(238): x called with y
>bar.cc(120): Starting up z
и т.д.

Но ведь язык компилируемый, откуда там какие-то номера строк? Не может же оно исходники хранить. Ладно там в при дебаге в вижуал студиях показываются, но в готовом продукте?

Ответы: >>618319, >>618624

04 Янв, 05:06 #258 #618319

>>618317
>foo
>bar
>По работе нужно тестировать некий софт
Лабы нужно протестировать к сессии.

поправил*

Ответы: >>618324

04 Янв, 05:26 #259 #618324

>>618319
Если бы ещё на вопрос при этом ответил...

Впрочем, там что-то такое, наверное, – http://stackoverflow.com/questions/2849832/c-c-line-number
Спасибо.

04 Янв, 05:59 #260 #618327

>>617058
Ты будешь загружать текстуры миллионы раз в секунду? Ёбнутый?

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

Или ты софтверный рендер пишешь? Тогда загружай в вектор текстуры, в другой вектор имена, потом для каждой модели делай линейный поиск и храни прямой адрес на текстуру в векторе.

Какой-то даунский вопрос.

Ответы: >>618426

04 Янв, 10:59 #261 #618357

>>618308
Пользователь может просто поиском по памяти найти секретные данные и код.

Ответы: >>618398

04 Янв, 12:24 #262 #618398

>>618357
Если пользователя припрет, он и из-под вмпротекта код и секретные данные вытащит. Тру стори.

04 Янв, 13:11 #263 #618426

>>618327
Да бляяяяяяяядь, как вы меня заебали.

Н_Е! З_А_Г_Р_У_Ж_А_Ю! Я! Т_Е_К_С_Т_У_Р_Ы! В! Р_А_Н_Т_А_Й_М_Е! ОНИ У МЕНЯ ЗАГРУЖАЮТСЯ ПРИ ИНИЦИАЛИЗАЦИИ! ЕЩЁ РАЗ: ПРИ ИНИЦИАЛИЗАЦИИ! И ЕЩЁ РАЗ: ПРИ ИНИЦИАЛИЗАЦИИ! В КОНТЕЙНЕР! ГЛАВНАЯ ПРОБЛЕМА - КАКОЙ КОНИЕЙНЕР ДЛЯ ЭТОГО ИСПОЛЬЗОВАТЬ!

Ответы: >>618552, >>618553, >>618951

04 Янв, 14:40 #264 #618466

>>618316
Блть, там звёздочки
^a=^b

04 Янв, 15:01 #265 #618483

>>617502
>>616556
Похоже фсб припахала выпускников вирус писать, а они после рашкенских вузов не могут вот и спрашивают помощь в крестотреде. Ещё в бэ кто-то с военной кафедры просил детскую задачку решить.

04 Янв, 15:25 #266 #618496

>>618478
Давай, скажи ещё раз, что я тупой и не понимаю, что трактором нужно пахать поле. А я, блядь, ещё раз взбешусь и отвечу, что я знаю, блядь, мне нужно узнать, трактор заправлять бензином или керосином. А ты ещё раз ответишь, что как можно быть таким тупым, чтобы не знать, что трактором вспаэивают почту.

Ответы: >>618497

04 Янв, 15:26 #267 #618497

>>618496
>вспахивают поле
Простите.

04 Янв, 15:27 #268 #618498

Есть крестозадача(нужно чтобы быстро было) — распидорасить буфер и собрать из содержимого один из нескольких вариантов классов, которые затем будут переданы во всевозможные места программы. Но общего функционала у этих классов нет, они просто хранят какие-то данные.
Можно сделать наследование от базового класса, носить с собою тип конкретного и кастить обратно при необходимости. Но как-то это говнецом попахивает, придется часто дергать хип и вообще переплачивать за виртуальные функции.
Можно налепить несвязанных классов и используя тонну многослойного бойлерплейта проталкивать их к нужным адресатам.
Что лучше и есть ли еще варианты?

Ответы: >>618500, >>618503

04 Янв, 15:31 #269 #618500

>>618498
Ты бы лучше задачу по подробнее расписал, а не свои догадки как её решить.

Ответы: >>618513

04 Янв, 15:32 #270 #618503

>>618498
Статический полиморфизм, CRTP, миксины и т. п.

Ответы: >>618513

04 Янв, 15:35 #271 #618505

Вопрос теоретического характера. Имеется void функция, оба аргумента которой передаются по ссылке (неважно, константные или нет, в моём случае неконстантные, т.е. функция меняет переменные по ссылке).

На мой взгляд, такая функция в 100% случаев должна подставляться. Потому что единственная причина, по которой код был вынесен в отдельную функцию, это избегание дублирования кода и/или повышение читаемости кода (если функция вызывается 1 раз).

Но что-то мне подсказывает, что функция не подставится.

Ответы: >>618511, >>618512, >>618534

04 Янв, 15:37 #272 #618511

>>618505
Посмотри отладчиком с -o2, что ты как маленький.

Ответы: >>618516

04 Янв, 15:37 #273 #618512

>>618505
Используй какой-нибудь __forceinline или always_inline

Ответы: >>618516

04 Янв, 15:38 #274 #618513

>>618500
Через сокет бегут данные в большом количестве, а конкретнее это всякая биржевая хуита. Нужно быстро преобразовать во что-то, с чем будет удобно работать и скормить это гую, роботам, логгеру итд.
>>618503
Сколько незнакомых слов, убежал гуглить.

Ответы: >>618515, >>620939

04 Янв, 15:39 #275 #618515

>>618513
>а конкретнее это всякая биржевая хуита. Нужно быстро преобразовать во что-то
Json какой-нибудь или xml.

Ответы: >>618520

04 Янв, 15:40 #276 #618516

>>618511
Это не ответ на вопрос, т.к. ответ на вопрос в данной среде/компиляторе.

>>618512
Хотелось бы обойтись средствами языка. Вот пишу я inline, а компилятор меня не обязан слушать.

Ответы: >>618517, >>618522, >>618554

04 Янв, 15:41 #277 #618517

>>618516
Компилятор пишут дядьки гораздо умнее тебя.

Ответы: >>618528, >>618555

04 Янв, 15:44 #278 #618520

>>618515
>Json
>xml
>быстро

04 Янв, 15:50 #279 #618522

>>618516
Оптимизации не прописаны в стандарте, это всегда будет данный компилятор.

Ответы: >>618528

04 Янв, 16:00 #280 #618528

>>618522
Спасибо, буду знать.

>>618517
>Компилятор пишут дядьки гораздо умнее тебя.
Нет. Я настаиваю.

Ответы: >>618529

04 Янв, 16:01 #281 #618529

>>618528
>Нет. Я настаиваю.
Значит используй фичи компилятора.

04 Янв, 16:21 #282 #618534

>>618505
Вот, смотри, это зависит чисто от оптимизации компилятора.

А поскольку компиляторы соответствуют стандартам(msvc, например, полностью поддерживает C++11 и наполовину - C++14), то и в любом другом компиляторе, поддерживающем те же стандарты, должен быть тот же результат.

Ответы: >>618535, >>618550

13 Кб, 773x286

57 Кб, 565x1125

36 Кб, 609x655

04 Янв, 16:21 #283 #618535

>>618534
Пикчи отклеились.

Ответы: >>618547

04 Янв, 16:43 #284 #618547

>>618535
Круто. А можешь на русский язык пересказать?

Inb4: O2 сделало подстановку, но всё же, вдруг какие-то тонкости/дополнительная информация.

Ответы: >>618554

04 Янв, 16:51 #285 #618550

>>618534
>в любом другом компиляторе, поддерживающем те же стандарты, должен быть тот же результат.
про undefined/unspecified/implementation-defined behavior слышал когда-нибудь?

Ответы: >>618554

04 Янв, 16:56 #286 #618552

>>618426
Это ты уже всех доебал
std::unordered_map, долбоеб, unordered_map.
Моча, забаньте этого пидора, он уже сам с собой.

Ответы: >>618561

04 Янв, 16:57 #287 #618553

>>618426
>Search, insertion, and removal of elements have average constant-time complexity.
>логарифмический

Ответы: >>618561

04 Янв, 16:58 #288 #618554

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

>>618547
/O2, как можешь заметить, не только сделало подстановку, но и убрало лишние операции сложения. Оптимизация - вообще довольно обширная тема.

04 Янв, 16:59 #289 #618555

>>618517
Часто приходится руками рулить в критичных местах, где компилятор стесняется инлайнить. Реально инлайн почти всегда повышает производительность, но увеличивается код и время компиляции. Компилятор не знает, какие куски кода критичны по производительности, поэтому не может сделать правильный выбор.

Ответы: >>618557

04 Янв, 17:04 #290 #618557

>>618555
>Компилятор не знает, какие куски кода критичны по производительности
Говорят, что для этого pgo придумали.

Ответы: >>618576

04 Янв, 17:08 #291 #618561

>>618552
Слишком долгое получение элемента из контейнера, не подойдёт.

>>618553
Как ты поиск-то логарифмический по ключу сделаешь? Для HashMap это верно, но там оверхед есть и коллизии, коллизии - это нехорошо.

Ответы: >>618565, >>618572

04 Янв, 17:13 #292 #618565

>>618561
С ХУЯЛИ ТЕБЯ ЕБЕТ ВРЕМЯ ПОЛУЧЕНИЯ ВО ВРЕМЯ ИНИЦИАЛИЗАЦИИ ТУПОЕ ТЫ ГОВНО.

Ответы: >>618574

04 Янв, 17:19 #293 #618572

>>618561
У хешмапы не логарифмический а константный поиск (в большинстве случаев). У бинарного дерева (с балансировкой) гарантированый логарифмический поиск по ключу. Так как в после изначальной инициализации добавления новых элементов не будет, то можно просто отсортировать в массиве по ключу и искать бинарным поиском - поиск все также за логарифм, но экономия памяти, у бинарного дерева больше накладные расходы памяти на элемент.

Ответы: >>618582

04 Янв, 17:20 #294 #618574

>>618565
ПОТОМУ ЧТО БЛЯДЬ, А ПОСЛЕ ИНИЦИАЛИЗАЦИИ ЧТО МНЕ ДЕЛАТЬ? НУ ЛЕЖАТ У МЕНЯ 50000 ТЕКСТУР В ПАМЯТИ, КАК МНЕ ВЫБРАТЬ ИЗ НИХ КОНКРЕТНУЮ ДЛЯ ОТРИСОВКИ ИМЕННО ДАННОГО ОБЪЕКТА, ДА ПОБЫСТРЕЕ?

Ответы: >>618583

04 Янв, 17:21 #295 #618576

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

04 Янв, 17:23 #296 #618582

>>618572
Так вот я и думаю сделать так. Только в качестве ключа использовать целый ID, что даст возможность делать что-то вроде

void GetTexture(UINT id)
{
return mTextures[id];
}

Только вот и ставлю я вопрос, а нельзя ли сделать ещё проще.

Ответы: >>618588

04 Янв, 17:24 #297 #618583

>>618574
Пиздец, при чем тут контейнер? Ты хочешь делать object->texture_id ты предлагаешь делать container.get(object->texture_id? Тупое ты говно.

Ответы: >>618592

04 Янв, 17:25 #298 #618585

Проще тебе застрелиться, тупой уебан. Про указатели иди читать.

Ответы: >>618592

40 Кб, 640x640

04 Янв, 17:27 #299 #618588

>>618582
> void
> return

Ответы: >>618597

04 Янв, 17:28 #300 #618592

>>618583
Да, да, я предлагаю делать так. Вместо object->mTex я предлагаю сделать container.get(object->mTextureID). Потому что смысл в этом есть.

>>618585
Делаю указателями, но выглядит некрасиво.

Ответы: >>618599, >>618608

04 Янв, 17:29 #301 #618597

>>618588
Ну блядь, уже мозги потекли. Ты понял меня.

04 Янв, 17:30 #302 #618599

>>618592
Никакого смысла в этом нет. Все, иди нахуй.

Ответы: >>618606

04 Янв, 17:43 #303 #618606

>>618599
Никакого смысла в этом нет, пока у тебя рендер один. Как только у тебя становятся два разных(d3d11 и d3d12, например), то возникают проблемы. Контейнер под текстуры у меня один, типов текстур много, а идея враппера мне не нравится. Введение ID делает всё проще.

Ответы: >>618626

04 Янв, 17:48 #304 #618608

>>618592
Заебал.
http://melpon.org/wandbox/permlink/ieqZ6gh9wGfThTlJ

Ответы: >>618627

04 Янв, 18:10 #305 #618624

>>618317
__LINE__
https://msdn.microsoft.com/en-us/library/b0084kay.aspx
у гвцц и шланга практически тоже самое, гугле

04 Янв, 18:14 #306 #618626

>>618606
Если у тебя контейнер один, то и указатель тебе нужен тоже только один - того же типа, что и mapped_type этого контейнера.
Т.е. если у тебя есть std::map<string, some_type> container; то
struct Object {
some_type texture_id;
Object(const char texture_string) : texture_id(&container[texture_string]) {
}
}

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

Ответы: >>618637

04 Янв, 18:14 #307 #618627

>>618608
Ну блядь, я так и собираюсь. Но не знаю, есть ли вариант поэффективнее.

Ответы: >>618629, >>618633

67 Кб, 700x525

04 Янв, 18:15 #308 #618629

>>618627
> Но не знаю, есть ли вариант поэффективнее.
Я не понял ты там убийцу какого-нибудь крузиса пишешь?
Нет?

Ответы: >>618637

04 Янв, 18:20 #309 #618633

>>618627
Храни в векторе, id будет порядковым номером элемента. Быстрее наверное уж не будет.

Ответы: >>618637, >>618642

04 Янв, 18:23 #310 #618637

>>618629
Нет, но это же не значит, что я не должен думать об эффективности.

>>618626
Изменится. Какого типа должен быть some_type? Для разных рендеров он разный.

>>618633
Ну вот так я и собираюсь сделать. Не будет? Спасибо.

Ответы: >>618639, >>618647

04 Янв, 18:23 #311 #618639

>>618637
Контейнер под текстуры у меня один - твои слова, тупое ты говно?

Ответы: >>618683

04 Янв, 18:24 #312 #618642

>>618633
Еще один даун не в курсе, зачем нужны указатели.

04 Янв, 18:33 #313 #618647

>>618637
>Нет, но это же не значит, что я не должен думать об эффективности.
Ты ещё ничего не сделал, а только сидишь и рассуждаешь как правильно было бы сделать.
Так и будешь сидеть ничего не сделав.

Ответы: >>618683

04 Янв, 19:52 #314 #618683

>>618647
Так я сделал. Но я думаю, стоит ли это переделать

>>618639
Могу сделать несколько и сделать методы GetD3D11Tex() и GetD3D12Tex(), которые возвращают текстуры из разных контейнеров.

Ответы: >>618730

37 Кб, 951x278

04 Янв, 20:36 #315 #618721

Шта?

32 Кб, 991x135

04 Янв, 20:37 #316 #618722

Чому я не могу получить указатель?

Ответы: >>618732, >>618774

04 Янв, 20:50 #317 #618730

>>618683
Нет, не можешь. Ты только что кукарекал о том, что "Никакого смысла в этом нет, пока у тебя рендер один. Как только у тебя становятся два разных(d3d11 и d3d12, например), то возникают проблемы.".
Ты очень тупой, не можешь продумать мысль на 2 шага вперед, и в итоге тебя тыкаешь в собственное говно, ты придумываешь кукарек, как бы свое говно обосновать, пока не выйдешь на второй круг своих сверхманевров.

Ответы: >>618741

04 Янв, 20:54 #318 #618732

>>618722
Дебил ебаный.

Ответы: >>618734

04 Янв, 20:57 #319 #618734

>>618732
Помоги вылечиться, объясни что не так.

Ответы: >>618772

04 Янв, 21:01 #320 #618741

>>618730
Но блядь, у меня уже _три_ разных рендера. Проблемы небольшие _уже_ есть. Я их_устранил_, но не изящно. Спрашиваю о более изящном методе - мне начинают городить какую-то хуйню, которая у меня уже давно решена и даже не рассматривается в вопросе.

Ответы: >>618745

04 Янв, 21:04 #321 #618745

>>618741
Нихуя у тебя нет. У кого есть, показывает код. Ты вместо этого уже полгода бегаешь со своим ДВИЖКОМ, на котором не будет ни одной игры.

Ответы: >>618750

04 Янв, 21:10 #322 #618750

>>618745
Окей, код чего тебе показать? Код объекта сцены, который не выглядит изящно и нужно это решить? Какой из классов - код объекта d3d11-сцены или какой-нибудь ещё? Или код менеджера текстур, который не выглядит изящно и нужно это решить? Или код отрисовки? Или код инициализации? Кода слишком много, чтобы уместить его в один пост, да и не хочу показывать слишком много.

И да, какие нахуй полгода? Писал месяц назад в первый раз, этот раз второй.

04 Янв, 21:46 #323 #618772

>>618734
Лол, хз, я для поддержания разговора.
http://ideone.com/fork/461bt5

Ответы: >>619435

04 Янв, 21:48 #324 #618774

>>618722
Вектор - сам по себе указатель.

Ответы: >>618784, >>618790

04 Янв, 22:08 #325 #618784

>>618774
Указатель на что?

Ответы: >>618794

04 Янв, 22:37 #326 #618790

>>618774
А теперь посмотри на скрин - каков тип у переменной V?

Ответы: >>618796

04 Янв, 22:44 #327 #618794

>>618784
На объект!

Ответы: >>618799

04 Янв, 22:45 #328 #618796

>>618790
Ты взял указатель на указатель и попытался ему присвоить адрес вектора

04 Янв, 22:52 #329 #618799

>>618794
Ну не на твою мамку же. На какой объект?

04 Янв, 23:01 #330 #618809

Сколько лучше тратить времени на непосредственно программирование? А то ведь можно десятки лет говнокодить, потом прочитать пару книжек и сразу апнуться на некст левел.

Ответы: >>618813, >>618836

04 Янв, 23:07 #331 #618813

>>618809
У тебя цель, блядь, написать что-нибудь или стать топ левел кодером?

Ответы: >>618833

04 Янв, 23:39 #332 #618833

>>618813
В говнокоде потом сложно разобраться.
Сейчас работаю на скриптоязыках. Фреймворки, абстракции, код писать - одно удовольствие.
И вот открыл я официальный репозиторий биткоина. Файлы в тысячи+ строк, все понамешено. На первый взгляд - write-only код. Казалось бы - область явно сложнее веба, но почему эти "мастера" не освоили элементарные паттерны?

Ответы: >>618859

04 Янв, 23:43 #333 #618836

>>618809
>Сколько лучше тратить времени на непосредственно программирование?
Чем меньше, тем лучше. Хорошая программа - это уже написанная программа. Если тебе нужно программировать, ты уже делаешь что-то не так.
>А то ведь можно десятки лет говнокодить, потом прочитать пару книжек и сразу апнуться на некст левел.
Нельзя.

05 Янв, 00:10 #334 #618859

>>618833
Потому что с них никто этого не требует, а паттерны ради паттернов не нужны?
>"мастера"
Правильно, так их! Не знаешь или не используешь тырпрайз стандартов кодинга - не программист. Поясни им по хардкору, чтобы в следующий раз боялись запускать иде, не вызубрив паттерны абстрактных фабрик интерфейсов!
кушай-кушай, наслаждайся!

05 Янв, 00:13 #335 #618860

я являюсь противником применения
обьектно ориентированного подхода в программировании
конечно иногда имеет смысл создать какойнибудь класс
но это очень редко
что мы хотим добиться создавая класс?
нужно осознать что универсальное не может быть шаблонным
и наоборот шаблонное не может быть универсальным
как только вы осознаете этот факт то вы сразу
выбросите все свои книги про обьектное программирование
создатели ООП так же это понимали
сначала никт ои не увидел тех капканов которые
раставлены под слоем конфетных оберток и красивых лозунгов
и тогда они были вынужены придумать "шаблончики "
но эти самые шаблончики все равно базируются на
ограниченности классов и это путь в никуда
только процедурный подход универсален

Ответы: >>618866, >>618871

05 Янв, 00:17 #336 #618866

>>618860
За что ты так с русским языком?

05 Янв, 00:26 #337 #618871

>>618860
Это реп?

Ответы: >>618873

05 Янв, 00:31 #338 #618873

>>618871
Я тоже подумал, что это новый трек Оксимирона.

Ответы: >>618879

05 Янв, 00:32 #339 #618874

Сколько времени обычно занимает втянуться в большой проект на новой работе?

Ответы: >>618956

05 Янв, 00:52 #340 #618879

>>618873
Да не, точно не Окси, мне в википедию лезть не пришлось.

Ответы: >>618905

05 Янв, 02:02 #341 #618905

>>618879
Чутка изменить и пойдет:

Сначала никто не увидел капканов,
Под слоем конфетных оберток раставленных.
Но чего же хотим мы добиться созданием
Классов шаблонных без осознания и понимания
Принципов мира объектных абстракций и карикатур
Куда следует стадо баранов
Принять не способных подход процедур

76 Кб, 443x723

05 Янв, 03:20 #342 #618943

>>617342

>>а linux'вская версия gcc может exe'шник выдать
Следующие действия происходят на Linux системе

>>g++ file.c -o file.exe
gcc компилирует файл file.c в исполняемый файл с именем file.exe

Поскольку эта команда была выполнена на Linux, исполняемый файл имеет формат ELF, а не PE

>>./file.exe
Запускает исполняемый ELF файл на линукс системе.
Линуксу все равно какое расширение у файла, очевидно что все работает.
Файл file.exe не является исполяемым файлом Windows.

На самом деле на линуксе можно компилировать исполняемые файлы для Windows, если интересно гугли про кросс-компиляцию.

05 Янв, 03:23 #343 #618944

Ребята, подскажите, что за класс и как вообще им пользоваться.
Порой натыкаюсь в коде на строки, типа:
Error("Wrong number");

Что это такое?

Ответы: >>619351

05 Янв, 03:32 #344 #618948

ВАЖНЫЙ ВОПРОС
Кто что может сказать про Intel SSE? Кто-то использовал? Стоит ли использовать?

Ответы: >>618950, >>619053

05 Янв, 03:36 #345 #618950

>>618948
>Кто что может сказать про Intel SSE?
Пускай компилятор там с нем ебется.

05 Янв, 03:40 #346 #618951

>>618426
Если у тебя так много текстур, что логарифмический поиск тебя не устраивает может быть есть смысл уменьшить число текстур. Использовать текстурные карты или процедурные текстуры?

Еще один вариант, запили свой контейнер, который с O(1) доступом по ключу как Dictionary в .NET.

Твоя проблема звучит так, как будто у тебя проблема на самом деле с архетектурой.

Ответы: >>618959, >>618986

05 Янв, 03:57 #347 #618956

>>618874

It's up to you.

05 Янв, 04:04 #348 #618959

>>618951
Да он просто покукарекать любит.
Даже если у него там тысяча текстур, разница по скорости будет - жалкие доли секунды. Даже если там написать вообще дикий костыль со сложностью O(n^5).

Ответы: >>618986

05 Янв, 06:10 #349 #618976

Посоны, а вы в попенсорц контрибутите вообще или нет?

05 Янв, 08:37 #350 #618986

>>618959
>жалкие доли секунды
>жалкие
>каждая микросекунда дорога, ибо нет 60 FPS - можно удалять движок нахуй

>>618951
Текстурные карты - неплохо, но от всех проблем не избавляет и порождает парочку новых. Процедурные не подойдут.

И да, я уже вполне разобрался с вопросом.

Ответы: >>619028, >>619211

sage 05 Янв, 11:28 #351 #619017

>>618252
>>618245
избавься от своего присутствия "сдесь" твоей ущербной задницы, "нравиться" ему

05 Янв, 11:53 #352 #619028

>>618986

Как решил свою проблему?

05 Янв, 12:43 #353 #619053

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

05 Янв, 15:55 #354 #619211

>>618986
> нет 60 FPS - можно удалять движок нахуй
Давай ты не будешь тут рассказывать про то, как можно написать хоть что-то сложнее хеллоуворлда одному. Даже всякие оупенсоурс проекты и движки всяких Кирилов с геймдев.ру и то по-лучше твоего будут, не говоря уже о всяких там край-энжинах.

05 Янв, 18:25 #355 #619351

>>618944
самописный?

Ответы: >>619354

05 Янв, 18:33 #356 #619354

>>619351
Не знаю, поищу.
Я думал это какое-то стандартное средство.
Хотя не исключаю, что это просто функция, которая пишет что-то в лог.

48 Кб, 1037x455

05 Янв, 20:02 #357 #619435

>>618772

05 Янв, 20:45 #358 #619474

>>615941
Где-то в менюшке есть rebase program, одна кнопка и готово

05 Янв, 22:13 #359 #619553

Как наследуются операторы? Как на них влияет доступ при наследовании (private/public)?
Если операторов много, но они простые(типа сложение/вычитание трех координат точек), стоит вообще делать наследование или лучше просто создать новый класс?

Ответы: >>619575, >>619577

05 Янв, 22:43 #360 #619575

>>619553
Все в точности как у обычных функций.

05 Янв, 22:44 #361 #619577

>>619553
Оператор есть иной синтаксис функции.

05 Янв, 23:14 #362 #619609

Аноны треба на москальском

Бьерн Страуструп - Программирование. Принципы и практика использования C++ (2015)

Ответы: >>620275

06 Янв, 00:22 #363 #619674

>>619670
Мне книга нужна, а не загадки твои

Ответы: >>619686

06 Янв, 00:25 #364 #619680

int a,b;
cin>>a,b;

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

Ответы: >>619686, >>619690, >>620427

06 Янв, 00:27 #365 #619686

>>619674
Так может тогда займись ее поисками, ПЕТУХ?
>>619680
Не ждет оно там запятой
std::cin >> a >> b;
Радуйся, дебил.

Ответы: >>619692

06 Янв, 00:29 #366 #619690

>>619680
Поглядите на ньюфага, не знает про comma operator!

Ответы: >>619692

06 Янв, 00:31 #367 #619692

>>619686
>std::cin >> a >> b;
>Радуйся, дебил.
знаю но по привычке пишу так у он это компилирует

>>619690
чего?

06 Янв, 01:29 #368 #619758

Сап, посоны, помогите с выбором. Что лучше учить: Rust или C++? Очень хочу выучить C++, но не так много времени есть - работаю каждый день по 9-10 часов, поэтому два языка + экосистемы выучить не смогу, надо что-то одно выбирать, да и учить буду где-то года 1.5. Говорят, что раст заменит C++, я в этом мало верю, но хотелось бы знать ваше мнение.

Ответы: >>619761, >>619763, >>619767, >>619787, >>619904

06 Янв, 01:31 #369 #619761

>>619758
C++

06 Янв, 01:35 #370 #619763

>>619758
>9-10 часов
Вряд ли у тебя выйдет серьезно выучить С++. Тем более, если не программист.

06 Янв, 01:38 #371 #619767

>>619758
почему только эти?

06 Янв, 02:07 #372 #619787

>>619758
Что мешает иногда смотреть в раст.

sage 06 Янв, 10:31 #373 #619904

>>619758
Лол
На самом деле отсос идёт из неожиданного места

Эти языки заменит C#

Ответы: >>619914

33 Кб, 226x200

06 Янв, 11:32 #374 #619914

>>619904

Ответы: >>619968

06 Янв, 13:21 #375 #619968

>>619914
C# сейчас развивается быстрее других языков

Ответы: >>619983

06 Янв, 13:50 #376 #619983

>>619968
Сишарпу хватает того что он заменил дэлфи. На большее не способен.

Ответы: >>619994

06 Янв, 14:04 #377 #619994

>>619983
Ближайшие 3 года ты увидишь что ты был неправ

Ответы: >>620021

06 Янв, 14:06 #378 #619995

>>618244
Про высокий порог вхождения ещё наверно надо написать. Сначала он мешает, а потом помогает.

06 Янв, 14:52 #379 #620021

>>619994
Хотел бы это увидеть.

мимо_люблю_C#_самый_пиздатый_язык

06 Янв, 14:57 #380 #620032

Хотеть дэбагер. Да так чтобы с гуям и кучай свистоперделок. Чтобы каждый байт из памяти видел и знал кому принадлежит. Чтобы мог со своими хэлоувордами играться. Дута сюда их по ассемблерному коду гноять.

Ответы: >>620037, >>620087, >>620102

06 Янв, 14:59 #381 #620037

>>620032
>гноять
гонять

06 Янв, 16:30 #382 #620087

>>620032
Программирую на PLC, лол

06 Янв, 16:48 #383 #620102

>>620032
>Дута
Туда

06 Янв, 19:21 #384 #620234

Может кому интересно будет http://habrahabr.ru/company/infopulse/blog/274549/

Ответы: >>620276, >>620279, >>620367

06 Янв, 19:51 #385 #620269

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

Ответы: >>620273

06 Янв, 19:53 #386 #620273

>>620269
передача в функцию как аргумент. 4 байта вместо всего массива

06 Янв, 20:03 #387 #620275

>>619609
Если я не ошибаюсь, переиздания с 14 стандартом еще не было. В 2015 делали допечатку, она не отличается от издания 2011 года.

06 Янв, 20:05 #388 #620276

>>620234
tangro, ты же взрослый дядька, чего ты тут забыл?

Ответы: >>620358

990 Кб, 245x200

06 Янв, 20:12 #389 #620279

>>620234
Так это что, Скотт больше не будет книжки пилить? Вот это действительно хуевая новость.

Ответы: >>620334

06 Янв, 21:34 #390 #620334

>>620279
Тебя даже новый год не разбудил...

06 Янв, 21:58 #391 #620358

>>620276
>взрослый дядька
Это ещё чего. В ПРОЛОГ треде дед 51ого года рождения себя расхваливает.

Ответы: >>620370

06 Янв, 22:13 #392 #620367

>>620234
ДА ОНИ ОХУЕЛИ!
Я до сих пор стараюсь не юзать всякие фичи из с++11, так как не хочу лишних багов добавлять, а тут уже какие-то вообще неясные фичи появляются.

06 Янв, 22:14 #393 #620370

>>620358
>51года
Лол, пруфы были какие-то? Чёт не могу представить, чтобы на сосаче сидел кто-то 30+лвл.

Ответы: >>620372, >>620373

06 Янв, 22:15 #394 #620372

>>620370
Аркоту около 40.

06 Янв, 22:16 #395 #620373

>>620370
Нет конечно. Просто похоже на комплимент напрашивался. Может анон мимо проходил и из профиль этого деда с хабра скопипастил предложение на харкач.

06 Янв, 22:59 #396 #620413

Учусь в десятом классе, умею в кресты на уровне олимпиадника, то есть базовые конструкции, стл. С ооп не все хорошо. Что мне упороть, чтобы по поступлении устроиться джуниором?

Ответы: >>620414, >>620422, >>620480, >>620497

06 Янв, 23:00 #397 #620414

>>620413
>по поступлении устроиться джуниором
Не реально почти.

Ответы: >>620415

06 Янв, 23:02 #398 #620415

>>620414
Почему? А если попозже? Просто очень вероятно, что в ближайшие лет пять некому станет обеспечивать семью

Ответы: >>620416, >>620417

06 Янв, 23:03 #399 #620416

>>620415
Значит пойдешь мешки ворочать.

Ответы: >>620418

06 Янв, 23:04 #400 #620417

>>620415
В епам на собеседование первокурсников даже не пускали. В остальных конторах так же наверно.

Ответы: >>620419

06 Янв, 23:05 #401 #620418

>>620416
Я подозревал.
А в гугле написано, что если ищут жуниора - значит готовы учить

Ответы: >>621955

06 Янв, 23:05 #402 #620419

>>620417
>В епам на собеседование первокурсников даже не пускали
В епам первокурсников даже на собеседование не пускали
так наверно красивее

06 Янв, 23:11 #403 #620422

>>620413
Первый и второй курс - самое тяжёлое время для студентов. Да и глуповаты они еще. Брать таких на работу - геморрой. После - можно.
Олимпиадников вообще не любят в энтерпрайзе, слишком много гонора при нулевых практических навыках.
Но как доп занятие для состоявшегося девелопера - хорошо.

Ответы: >>620426

06 Янв, 23:14 #404 #620426

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

Ответы: >>620427, >>620433

06 Янв, 23:16 #405 #620427

>>620426
>энтерпрайзе
А что это? И да бамп вопросу >>619680

06 Янв, 23:23 #406 #620433

>>620426
Под энтнрпрайзом я подразумевал сколько-нибудь серьёзные конторы с продуктом и рынком (даже небольшая), а не Рога&Копыта© в которой только директор, админ, девелопер и ОХУЕННАЯ ИДЕЯ КОТОРАЯ ДОЛЖНА ВЗЛЕТЕТЬ

Ответы: >>620436

06 Янв, 23:27 #407 #620436

>>620433
Видишь, я настолько ноль, что даже не догнал, что есть энтерпрайз. Я всегда делил программирование на спортивное и промышленное.
То есть я правильно понял, что до третьего курса мне соваться никуда смысла особого нет, а в случае финансового пиздеца идти грузчиком/кассиром/etc?

Ответы: >>620444, >>620446, >>620447, >>621956

06 Янв, 23:34 #408 #620444

>>620436
Вписывайся на вские университеты от контор. Могут заметить и взять к себе.
Но в текущих условиях потребность в таких джунах очень низкая.
Лучше думай как перекатиться на учёбу в Европу. Там побольше возможностей.

Ответы: >>620452, >>620456

06 Янв, 23:35 #409 #620446

>>620436
Никто не будет с джуна требовать знаний больше олимпиадных. Может знакомство с фрейморком каким (буст там, или кьют). А если требуют, значит хотят найти мидла на зарплату джуна - смысла в такие идти мало. Найчиться самостоятельно (тоесть не работая) очень тяжело, фактически единственный вариант - изучать опенсорсные проекты, читать чужой код.

Ответы: >>620452

06 Янв, 23:36 #410 #620447

>>620436
Пробуй в опенсурс. За год-полтора сможешь очень сильно подтянуть свои умения. Да и красивый профиль на гитхабе все любят

Ответы: >>620452

06 Янв, 23:39 #411 #620452

>>620444
С заграницей вряд ли получится по ряду причин, но спасибо
>>620446
Отлично на шкуре прочувствовал, что реальный опыт необходим. Пробовал годик назад опенсурс почитать, но потонул в каких-то здоровенных проектах. Не подскажешь, куда конкретнее рыть?
>>620447
Пробовать - в смысле писать самому?

Ответы: >>620458

06 Янв, 23:40 #412 #620456

>>620444
как за границу?

06 Янв, 23:42 #413 #620458

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

Ответы: >>620459, >>620464

06 Янв, 23:44 #414 #620459

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

Ответы: >>620462, >>620465

06 Янв, 23:46 #415 #620462

>>620459
>научится
Для начала мягкий знак научись ставить.

06 Янв, 23:48 #416 #620464

>>620458
Спасибо, а какого плана проекты смотреть? Просто на гитхабе искать? Я, помнится, на хромиум смотрел, кажется, но ничего не понял

Ответы: >>620469

06 Янв, 23:50 #417 #620465

>>620459
Жопой. Старайся, пытайся, пробуй.
Не будь ленивым уебаном, которому подавай подробный howto и кнопку makemeawesome

06 Янв, 23:51 #418 #620469

>>620464
Ты его собрать хоть смог?

Ответы: >>620472

06 Янв, 23:52 #419 #620472

>>620469
Не помню. Мануал по сборке точно читал и долго-долго что-то качал

Ответы: >>620476

06 Янв, 23:58 #420 #620476

>>620472
Ну вот и попробуй собрать.
Параллельно найди какую-нибудь средне популярную либу или утилитку с десятком открытых issue. Попробуй найти среди открытых что-нибудь попроще, типа стиль кода поправить или мелкий фикс запилить. Часто, авторы забивают на такое, пока есть более насущные проблемы и задачи. Ещё хорошо воспользоваться каким-нибудь статическим анализатором кода (cppcheck) и поправить его замечания.

Ответы: >>620477

06 Янв, 23:59 #421 #620477

>>620476
Спасибо большое

07 Янв, 00:01 #422 #620480

>>620413
>олимпиадник
>10 класс
Ты о чём вообще? Какие еще олимпиады? Школьные что-ли? Или всякие там codeforces?

>с ООП не очень
Что там мочь-то? Или ты имеешь ввиду, что навыки с++ уровня пишешь говнокод в main функцию?

Ответы: >>620484

07 Янв, 00:04 #423 #620484

>>620480
И школьные, и школьно-командные, и кфчик пишу по возможности

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

07 Янв, 00:26 #424 #620497

>>620413
>умею в кресты на уровне олимпиадника, то есть базовые конструкции, стл
на уровне районного олимпиадника или даже выше? дейкстру без гугла напишешь?

Ответы: >>620499, >>620501

07 Янв, 00:27 #425 #620499

>>620497
>дейкстру без гугла напишешь?
Я не он, но дейкстру любой дурак напишет.

Ответы: >>620501

07 Янв, 00:29 #426 #620501

>>620497
>>620499
а дурак который знает "базовые конструкции, стл"?

Ответы: >>620510

07 Янв, 00:42 #427 #620510

>>620501
А вообще, что значит знать СТЛ? Я вот за последний год кроме вектора, стринг и всяких мелких функций, вроде min, max, swap ничего и не использовал. Так зачем мне что-то еще знать?
Бывало раньше юзал стэк, куча, мэп, вот это всё, но чтобы ими пользоваться, достаточно загуглить просто, посмотреть сложность операций и вперед.

Ответы: >>620512, >>620524

07 Янв, 00:43 #428 #620511

Джуниорских вакансий по крестам вовсе почти нет.

Ответы: >>620514

07 Янв, 00:45 #429 #620512

>>620510
А треды там, смартпоинтеры, байнды всякие?

Ответы: >>620515

07 Янв, 00:49 #430 #620514

>>620511
Вот этого двачую.
Сам планирую пока работу не искать, а после универа устроиться фулл-тайм на что-то, связанное с графикой. Потому что тут опыт Кирильства хоть как-то будет цениться, в отличие от обычных компаний, которые просто смотрят на опыт работы. И там, надеюсь, не будет конкуренция с чуваками, уровня НУ Я РАБОТАЮ СО ВТОРОГО КУРСА, ПОРАБОТАЛ ТАМ С С#, ПОРАБОТАЛ ТАМ С С++, ПОРАБОТАЛ В РАН'Е, ВОТ ТЕПЕРЬ К ВАМ ПРИШЁЛ.

Ответы: >>620516

07 Янв, 00:51 #431 #620515

>>620512
Ну, пойнтеры еще, да. Треды как-то не использовал пока.

Ответы: >>620518

07 Янв, 00:55 #432 #620516

>>620514
Я считаю, вот это всё маняфантазии про РАБОТАТЬ ПОСЛЕ ПОСТУПЛЕНИЯ В УНИВЕР))
Слишком глубокий язык, очень увесистые технологии, связанные с ним. Блядь, вот что вчерашний школьник может наваять полезного? Опыта нет, знаний нет.
Возможно, это потому, что я в мухосранске, в крупных городах, наверное, возможна стажировка ньюфагов, у нас такая раз в году бывает, но там отбор - пиздец.
Я пока на третьем курсе, например, живу как бич за счет мамки, компенсирую свои унижения контрибутами в попенсорц. В то время как мои одногруппники на сисярпе вполне так нормально работают и совмещают с учебой.

07 Янв, 00:56 #433 #620518

>>620515
Напишешь навскидку свой смарт поинтер?

Ответы: >>620530

07 Янв, 00:59 #434 #620524

>>620510
Понимать принципы построения контейнеров, итераторов, аллокаторов. Помнить как можно больше алгоритмов и их понимать их сложность в различных случаях.

Первая часть достаточно легко решается написанием своих контейнеров и итераторов, совместимых со стандартными алгоритмами (даже просто своя реализация вектора, деки, сета и мапа). Ну и pool алокатор, куда же без него.

Второе - читать cppreference перед сном и иногда писать код с использованием алгоритмов.

07 Янв, 01:02 #435 #620530

>>620518
А я учу кресты и не знаю что такое итераторы и тем более алокаторы. Знаю кресты наверно на уровне того школьника. Скоро искать работу?

Ответы: >>620533

07 Янв, 01:04 #436 #620533

>>620530
При чем тут смартпойнтер, только?

07 Янв, 01:48 #437 #620595

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

07 Янв, 01:52 #438 #620600

ОП в треде?

07 Янв, 02:15 #439 #620612

http://hh.ua/vacancy/15580923?query=c%2B%2B
Ну вот давайте разберем по частям написанное...

Ответы: >>620613, >>620615

07 Янв, 02:17 #440 #620613

>>620612
Складывается впечатление что в Днепропетровск нужен крестовик с 6летним опытом и знанием английского

07 Янв, 02:19 #441 #620615

>>620612
им нужен цепепе-девелопер-вообще, и они не хотят отсекать все возможности (от джуна до синьора)
на самом деле проще и эффективнее послать резюме туда

алсо готовься, что твоё резюме еще может по разным левым HR походить и найму ваще не туда

07 Янв, 02:22 #442 #620623

http://hh.ua/vacancy/15581602?query=oral%20english%20c%2B%2B
Вот кстати. Думали, я шучу? Нихуя.

Ответы: >>620627, >>620629

07 Янв, 02:24 #443 #620627

>>620623
http://ell.stackexchange.com/questions/16053/verbal-english-oral-english-and-spoken-english

Ответы: >>620631

07 Янв, 02:25 #444 #620629

>>620623
>необходимы знания STL
>приветствуются знания С++
Это как? Типа, раз не умеешь программировать, будешь ходить и рассказывать всем про контейнеры и сложность операций над ними?

Ответы: >>620630

07 Янв, 02:26 #445 #620630

>>620629
По всей видимости.
Я бы вбросил туда CV, наверное, эти ребята уже полгода бампают вакансию, но смущает MFC... И тот факт, что они до сих пор не нашли никого, что-то там явно не так.

07 Янв, 02:26 #446 #620631

>>620627
> I always avoid "oral", because it can be used in sexual context. Does that make sense?

Они какие-то извращенцы.

07 Янв, 03:05 #447 #620658

>>620656
кажется получилось
prcpWBRpANUSkC>jabberPUNCTUMoSpru

Ответы: >>620663

07 Янв, 03:12 #448 #620663

>>620658
А если я не плюсовик, можно приходить?

Ответы: >>620664

07 Янв, 03:15 #449 #620664

>>620663
Нет. Мы тебе проверку устроим и выгоним если не пройдёшь. За всё время там 3 сообщения.

07 Янв, 04:28 #450 #620686

а я за пол часа задачу эйнштейна только что решил предположил что в ответе надо дать только национальности и это разные люди.

07 Янв, 05:00 #451 #620692

Кстати натыкался на блог какого-то хуя который обзоры на книги делает. По крестам обзоров 10 по несколько книг сделал. По моему в этом треде ссылку давали. Реквестирую его блог.

Ответы: >>620841

## Mod ## 07 Янв, 05:46 #452 #620700

Господа, ну неужели обязательно доводить до того, что я ночью вынужден чистить сотню анрилейтед сообщений? Что вы несете вообще? Про какие-то джававакансии, про хохляцкие города. Есть специальный тред про работу и всякое такое: https://2ch.hk/pr/res/618884.html (М) Обсуждение крестовакансий легитимно и здесь, их никто не тронет. Но все равно не надо увлекаться этим и топить тред, постя большое количество хуйни.

Ответы: >>620734, >>620740

07 Янв, 09:19 #453 #620734

>>620700
Ты опоздал на семнадцать тредом, мод

Ответы: >>620736, >>620741

07 Янв, 09:24 #454 #620736

>>620734
>тредов

07 Янв, 10:42 #455 #620740

>>620700
Мод, ты нахуя нормальные посты снёс, сука? Нормально же расписал за работу и мотивацию. Нет, хотим перекидываться говном и тереть за днище работу в днище хохляндии.
ДА НЕ БОМБИТ У МЕНЯ!!!111адын

Ответы: >>620743

07 Янв, 10:44 #456 #620741

>>620734
A wizard arrives precisely when he means to.

07 Янв, 10:53 #457 #620743

>>620740
Не волнуйся, все осталось на архиваче http://arhivach.org/thread/135285/ , если кто-то хочет читнуть. Годнота годнотой, но у нас тут немного другая тематика, негоже засорять.

07 Янв, 11:40 #458 #620748

WinAPI. Открываю существующий файл

file = CreateFile(
path, \t\t\t\t\t\t\t\t\t GENERIC_READ | GENERIC_WRITE,\t\t\t\t\t\t\t\t\tFILE_SHARE_WRITE | FILE_SHARE_READ|FILE_SHARE_DELETE,
NULL,
OPEN_EXISTING,\t\t\t\t\t\t\t\tFILE_ATTRIBUTE_NORMAL,
NULL
);

Хочу, чтобы во время работы моей программы, он был доступен пользователям. Поставил флаги FILE_SHARE_WRITE | FILE_SHARE_READ|FILE_SHARE_DELETE. Но файл не доступен ни для чего. Как это решить ?

Ответы: >>620783, >>620887

07 Янв, 13:31 #459 #620783

>>620748
Флаги совместного доступа должны совпадать. Убери share write, и большинство программ согласятся совместно открывать файл.

07 Янв, 15:27 #460 #620841

>>620692
Сам нашёл не архиваче. Там мало крестов.
http://eax.me/books-issue-1/

Ответы: >>620845, >>620848

07 Янв, 15:33 #461 #620845

>>620841
- Я не чувствую своих крестов!
- А у тебя их и нету.

07 Янв, 15:41 #462 #620848

>>620841
Вот ещё книга для шапки в раздел отдельные аспекты. Сам не читал только планирую
file.allitebooks.com/20150510/Professional C++, 3rd Edition.pdf

07 Янв, 16:58 #463 #620887

>>620748
HANDLE m_hFile = CreateFile(L"data", GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL);
У меня вот так вот было, все работало. Но вообще, файл самому нужно создавать, насколько я помню!

07 Янв, 18:42 #464 #620939

>>618513
Ну так это же просто бинарные данные, которые можно распаковать в struct'ы, так ведь? Всегда считал что с ними работают через тупой бойлерплейт switch

Ответы: >>620962

07 Янв, 19:15 #465 #620962

>>620939
Ну весь вопрос в количестве этих свичей и говнястости получившегося кода.
Наверное налеплю гору структур, буду отсылать их через тонну функций и pimpl'ов в недра Application, обновлять там какой-то стейт и рассылать только уведомления о том что что-то там изменилось в остальные части программы.

07 Янв, 20:00 #466 #620981

Наркоман вкатился и спрашивает - в каком c++ builder появилась поддержка юникода?

Ответы: >>621135

07 Янв, 22:38 #467 #621135

>>620981
http://docwiki.embarcadero.com/RADStudio/Seattle/en/C%2B%2B11_Language_Features_Compliance_Status

08 Янв, 01:55 #468 #621279

Но вот. Мод запретил разговаривать и у нас 15 постов за 20 часов. Давайте сами придумаем проблему которая всех заинтересует и начнём её решать. Только на этот раз пусть про кресты будет.

Ответы: >>621281

08 Янв, 01:58 #469 #621281

>>621279
я клиент для сосача пишу например на плюсах

Ответы: >>621293

08 Янв, 02:18 #470 #621290

Доброй ночи, пачаны. Не знаю где лучше спросить, но т.к. тут обитаю чаще спрошу тут. В общем такая задача, нужно написать автокомплит-плагин тут не важно для какого редактора или IDE для некого корпоративного недоязыка. Что можно погуглить?

Ответы: >>621294, >>621299

08 Янв, 02:21 #471 #621293

>>621281
кроссплатформенный?

Ответы: >>621295

08 Янв, 02:22 #472 #621294

>>621290
>некого корпоративного недоязыка
парсер есть или надо писать?

Ответы: >>621298

08 Янв, 02:22 #473 #621295

>>621293
>кроссплатформенный?
Qt
Symbian, Maemo, возможно Desktop

Ответы: >>621297

08 Янв, 02:24 #474 #621297

>>621295
>Symbian, Maemo
Тогда молодец. А можно ещё на мой сименс его поставить? Только у меня пол метра свободных осталось. Влезешь?

08 Янв, 02:26 #475 #621298

>>621294
Надо писать

Ответы: >>621301, >>621304

08 Янв, 02:27 #476 #621299

>>621290
А насколько умным оно должно быть? Можно собрать все токены длиннее X, затолкать в сортированное дерево и по нему уже смотреть варианты.

Ответы: >>621303

08 Янв, 02:28 #477 #621301

>>621298
Я думаю нужно гуглить разработку плагинов для %иденейм%. Вим наверно самый простой, но и geany вроде простой. Просто посоветовал не разбираюсь в этом кун

08 Янв, 02:31 #478 #621303

>>621299
Умным должно быть на столько, чтобы после имени экземпляра класса дополнялось методами и полями, в т.ч. если поля тоже экземпляры классов

08 Янв, 02:31 #479 #621304

>>621298
читни книжку с дракончиком (есть на торрентах) Компиляторы: принципы, технологии и инструменты

Ответы: >>621307

08 Янв, 02:38 #480 #621307

>>621304
Спасибо, посмотрю

72 Кб, 736x736

08 Янв, 02:49 #481 #621312

Проверка на быдло:

1 Что быстрее - inline или farcall
2 Как выполнить функцию в динамической библиотеке не загружая ее
3 Сколько байт в int
4 Что больше char или int
5 Что такое endiannes
6 Чем процесс отличается от потока

Ответы: >>621314, >>621315, >>621316

08 Янв, 02:51 #482 #621314

>>621312
3-6 знаю, 1-2 не знаю даже приблизительно. Каковы мои шансы?

08 Янв, 02:52 #483 #621315

>>621312
>farcall
кек
>Как выполнить функцию в динамической библиотеке не загружая ее
што

Ответы: >>621318

08 Янв, 02:53 #484 #621316

>>621312
>inline
В ассемблере компилятор по велению левой пятки может макросредства использовать а не вызов функции делать.
>2 Как выполнить функцию в динамической библиотеке не загружая ее
Не ебу.
>3 Сколько байт в int
Зависит от платформы.
>4 Что больше char или int
Зависит от платформы.
>5 Что такое endiannes
Не ебу.
>6 Чем процесс отличается от потока
Поток это маленьая часть процесса которая работает параллельно с ним.

Ответы: >>621321, >>621324

08 Янв, 02:53 #485 #621318

>>621315
> Не можешь решить
> Придрался к условию

08 Янв, 02:54 #486 #621319

Пацаны, я проебался с тестом на быдло.
Во втором вопросе - вместо загрузки - линковка

Ответы: >>621322, >>621323

86 Кб, 736x736

08 Янв, 02:56 #487 #621321

>>621316
Пример платформы где char больше либо равен int

Ответы: >>621325, >>621334, >>621339

08 Янв, 02:56 #488 #621322

>>621319
Автор теста провалил тест

08 Янв, 02:56 #489 #621323

>>621319
ты еще проебался с тем, что __farcall ни разу не стандарт

08 Янв, 02:57 #490 #621324

>>621316
>>5 Что такое endiannes
>Не ебу.
Ну ты даешь, это даже я знаю.

Ответы: >>621332

08 Янв, 02:58 #491 #621325

>>621321
Они могут быть равны

Ответы: >>621326, >>621328

71 Кб, 736x736

08 Янв, 02:59 #492 #621326

>>621325
Пример платформы.

Ответы: >>621332, >>621344

08 Янв, 03:03 #493 #621328

>>621325
Не могут, char равен 1 байту, int не менее 2.

08 Янв, 03:04 #494 #621332

>>621324
>endiannes
Загуглил. ГОворит порядок байтов. Это как я понял имеется ввиду что если переменая 4 байта, до их значение записываются с лево на право. Раньше так считать в столюик проще было. Или что-то в этом роде. Читал знал. Название не знал. Честно-честно. Правда-правда.

>>621326
КР580ВМ80А. Теперь проверяй, мудило.

Ответы: >>621334

08 Янв, 03:05 #495 #621334

>>621321
Толстота пошла.
>>621332
Верю. Little-Endian и Big-Endian.

08 Янв, 03:09 #496 #621339

>>621321
> 1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
Из стандарта.

Ответы: >>621346

117 Кб, 736x736

08 Янв, 03:10 #497 #621341

>Производство: \tс 1977 по середину 1990-х

08 Янв, 03:11 #498 #621344

>>621326
https://gcc.gnu.org/wiki/avr-gcc#Deviations_from_the_Standard

Ответы: >>621348

08 Янв, 03:12 #499 #621346

>>621339
там прикол, что int должен позволять значения от -32768 до 32767

но я есть TI C54x в которых char двубайтный :D

Ответы: >>621348

131 Кб, 700x467

08 Янв, 03:17 #500 #621347

>avr-gcc
>deviations
>hack
Низачет.

Ответы: >>621351

08 Янв, 03:18 #501 #621348

>>621344
>>621346
Приводить в пример кривую отсебятину — моветон-с.

Ответы: >>621351

26 Кб, 502x195

08 Янв, 03:30 #502 #621351

>>621348
>>621347
http://www.ti.com/lit/an/spra366/spra366.pdf страница 15

08 Янв, 03:31 #503 #621352

о мы в бамплимите. оп и этой ночью спит?

Ответы: >>621378

08 Янв, 03:53 #504 #621363

Так что там с вопросом про линковку? Платформозависимо пидорасить ручками файл?

Ответы: >>621494

08 Янв, 04:35 #505 #621378

>>621352
Скоро очень скоро.

08 Янв, 04:43 #506 #621382

кстати совету убрать совет про искать платину на архиваче из шапки

08 Янв, 11:24 #507 #621494

>>621363
Пусть нормально вопрос сформулирует. Линкуются объектные файлы и статические библиотеки из которых линкер собирает исполняемый файл. Динамические библиотеки не линкуются.

08 Янв, 15:58 #508 #621641

>>615922 (OP)
Сап, котаны. Зарылся немного в поисках ответа на вопрос - возможно вы знаете - "можно ли разблокировать критическую секцию, заблокированную в треде А , из треда Б?". Ну т.е. есть ли в POSIX или еще где способ вмешиваться в блокированные куски памяти?

08 Янв, 18:35 #509 #621757

Что мне снег, что мне зной, что мне дождик проливной, когда я ухожу в запой.
Где ОП?

08 Янв, 19:01 #510 #621772

Можно ли конектить слоты (статические) из другого класа без его инстанса?

08 Янв, 22:34 #511 #621881

пацаны, я вам задачек принес: http://cppquiz.org/

Ответы: >>621888

08 Янв, 22:46 #512 #621888

>>621881
По русски есть?

Ответы: >>621891

08 Янв, 22:53 #513 #621891

>>621888
там всегда нужно написать что выведет программа либо будет ошибка компиляции либо поведение unspecified либо поведение undefined

Ответы: >>621893

08 Янв, 22:54 #514 #621893

>>621891
>поведение undefined
а это что?

17 Кб, 480x273

08 Янв, 22:56 #515 #621897

И это вообще что такое? Лафоре и страуструп про него не рассказывали. Что ещё я не знаю и где узнать?

Ответы: >>621900

08 Янв, 22:58 #516 #621900

>>621897
Это ЛЯМБДА.

09 Янв, 00:53 #517 #621955

>>620418
Ну так и иди в гугол, хули.

09 Янв, 00:55 #518 #621956

>>620436
Попробуй фриланс, получишь дюже опыта энторпрайза.

Ответы: >>622067

43 Кб, 606x374

УПОРОТЫЙ C++ 09 Янв, 04:04 #519 #622024

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

вот тут кусок кода: http://lpaste.net/4479853745328357376
я старался как могу, но получилось какое-то говно, ехал const через const, string (&s)[8][2] и все в таком духе.

может кто-нть посмтореть на кусок этого смердящего говнокода и подсказать, где я тут проебался и как это можно более элегантно записать?

задача: на вход номер регистра и его значение, на консолке приттипринтитятся значения битиков. все работает, но выглядит как говно и пахнет как говно.

Ответы: >>622312, >>632612

09 Янв, 11:21 #520 #622067

>>621956
Можно подумать там нужны крестобляди без тонн опыта.

Ответы: >>622331

09 Янв, 17:54 #521 #622312

>>622024
ипать ты накроман

09 Янв, 18:23 #522 #622331

>>622067
А кто говорил про кресты? Джаву бери, веб, любой скриптоязык, лабы делай, похуй. Курс настолько на твоей стороне, что можешь демпинговать. Или ты синьер-помидор дохуя? На все готовое хочешь?

09 Янв, 18:51 #523 #622350

Начааальник! Тонем!

Ответы: >>622352, >>622353

7 Кб, 231x251

09 Янв, 18:52 #524 #622352

>>622350

09 Янв, 18:54 #525 #622353

>>622350
Надо наверно снова все дохлые треды бампнуть чтобы ОП-хуй зашевелился. А потом создать крестотред типа не нашёл создал

09 Янв, 21:54 #526 #622522

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

09 Янв, 22:00 #527 #622526

Что лучше freopen или fstream?

09 Янв, 23:48 #528 #622597

Для чего нужно явное создание экземпляров?

10 Янв, 00:17 #529 #622613

НОВЫЙ ТРЕД
https://2ch.hk/pr/res/622611.html (М)
https://2ch.hk/pr/res/622611.html (М)

Ответы: >>622615, >>624830

10 Янв, 00:18 #530 #622615

>>622613
И это всё? Просто пришёл спустя столько времени после бамплимита и перекатил тред со старой шапкой?

Ответы: >>622616

10 Янв, 00:24 #531 #622616

>>622615
Праздники же, быстрее было никак невозможно. Не сердись, няша.

11 Янв, 17:20 #532 #623377

Visual studio бесплатен?

Ответы: >>623550

sage 11 Янв, 21:43 #533 #623550

>>623377
community edition

13 Янв, 14:36 #534 #624815

Здарова, почаны. Помогите разобраться:

Пытаюсь релизнуть неконсольную программу и получаю ошибку

LNK2001: unresolved external symbol _wWinMain@16

Если делаю этот же код как консольный проект тоже появляется LNK2001 но с __imp__ShowWindow@8 на конце

С консольным проектом проблемма решилась подключением в linker>input>additionalDependencies стопки разных .lib, по советам из интернетов

По какому принципу их нужно добавлять?

Ответы: >>624830

13 Янв, 15:03 #535 #624830

>>624815
>>622613

13 Янв, 18:03 #536 #624911

codeblock+sfml. При попытке компиляции проекта пишет default is untitled. Отдельный файл (он же пока единственный) компилирует, но не запускает, ссылаясь на отсутствие на компе sfml-graphics-2.dll, хотя она есть. Что делать?

14 Янв, 23:18 #537 #625804

Помогите с лабой на C++.
Задание: Дан массив типа BYTE размером не менее 256 Кбайт. Переписать его во внешнюю память поблочно. Операцию повторить 10 раз. Характеристика: размер блока (диапазон изменения 512-1024 байта).

Моя попытка решить: http://pastebin.com/EfGYjgfa

Проблема в том, что буфер нужно инициализировать не из файла, а из массива в оперативной памяти.(см. 70 строчку в пасте)

18 Янв, 00:09 #538 #627864

Сап, с чего начать изучение openGL?

23 Янв, 10:26 #539 #632612

>>622024
Ничо так.

Что бы улучшить читаемость, объяви typdef на array<string, 8> и bitset<8>. Кстати, там должно быть не 8, а CHAR_BIT (#include <climits> для этого).

Где можно, объявляй переменные как auto или auto&. const не забывай, это святое.

Две функции ExplainRegFunc объяви отдельно (и помести в анонимный namespace), не надо их лямбдами вставлять, хуй проссышь потом.

Придерживайся единого стиля имен - либо describeData, либо foreach_bit.

Я бы еще поток вывода передавал в функции как параметр ostream&. Мало ли, захочется еще куда вывести.

И, блядь, комментарии кто, сука, писать будет? Пушкин?

А так малацца. Толк будет

160 Кб, 806x1024

24 Янв, 18:06 #540 #633503

Анон, хелп!
Есть класс, интерфейс которого описан в myclass.h. В нем есть конструктор myclass(int xSz=100, int ySz=80);
В реализации(в myclass.cpp) я вижу такую строчку:
...
myclass::myclass(int xSz, int ySz) : X_SIZE(xSz), Y_SIZE(ySz)
{
...
}
...
Что это за дерьмо ":" после аргументов конструктора?

Ответы: >>637015, >>639543

25 Янв, 12:43 #541 #633965

Здравствуйте, господа! Что скажете насчёт C++ Builder 10 от embarcadero? Пока учусь (в университете) писать в стареньком С++ Builder 6, нравится, но начинаю думать о будущем.

Ответы: >>639544

28 Янв, 18:37 #542 #637015

>>633503
Инициализация полей класса

31 Янв, 18:55 #543 #639543

>>633503
Это называется "списки инициализации". В них можно через запятую инциализировать поля, вызывать функции и все такое. А так же, только через них можно инициализировать константные переменные и поля класса - ссылки.
http://en.cppreference.com/w/cpp/language/initializer_list

31 Янв, 18:56 #544 #639544

>>633965
Все таки посоветую Visual Studio или Lion. Имхо, они мощнее. Аргументов не будет

31 Янв, 19:52 #545 #639595

>>615922 (OP)
Сап, анон. Вот я, начинающий программистраспиздяй, научился писать всякую простенькую херню на с++, типа операций со строками, ввод/вывод из файла, массивы там, циклы. Куда двигаться дальше? Не хочется просто читать учебники, хотелось бы именно иметь какие-то задачи, чтоб по ходу разбираться в новых темах.

02 Фев, 17:21 #546 #641241

Аноны, стал читать книгу с шапки - эффективный и современный цэ крест крест. Так вот и сразу же затупил, автор повествует о выводе типов - это вообще что? Я сколько книг раньше не читал (тот же страуструп, книги по кьюту) - такой диковинки не встречал. Подскажите, милейшие.

Тред утонул или удален.
Это копия, сохраненная 3 февраля 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion