Вы видите копию треда, сохраненную 27 марта 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
ДОБГО ПОЖАЛОВАТЬ В НОВЫЙ C++ ТГЕД!
1. Почему мы используем именно C++:
- C++ действительно быстрый - по скорости уделывают большинство языков, часто с большим отрывом. Замедление относительно pure C находится в районе 0-20%. Замедление зависит от вас, девиз языка: "Платишь только за фичи, которые используешь".
- C++ - очень выразительный язык. В него заимствованы большинство существующих парадигм из самых популярных языков.
- У C++ очень большое и, самое главное, профессиональное комьюнити. Это так из-за высокого порога вхождения.
Однако C++ очень сложный. Прямая работа с памятью и тысяча способов выстрелить себе в ногу - это про него. Не стоит его использовать всегда: нужно понимать, что используемый язык должен соответствовать поставленной задаче. Да, анон, не нужно писать на C++ скрипты или веб-фронтенд, а потом жаловаться, что C++ говно. Плохому танцору и ноги мешают, как говорится.
2. Литература для начинающих:
Все примерно одинаковой годноты, читать имеет смысл только какой-нибудь один, который больше приглянется.
- Стэнли Липпман, Жози Лажойе и Барбара Му - Язык программирования C++ (2014) - https://goo.gl/kVaela
- Стивен Прата - Язык программирования C++ (2012) - https://goo.gl/z7kA8u
- Бьерн Страуструп - Программирование. Принципы и практика использования C++ (2011) - https://goo.gl/nAFUXa
3. Литература для тех, кто осилил предыдущий пункт:
Книги про основные подводные камни. Следует пролистать все.
- Скотт Мейерс - Наиболее эффективное использование C++ (1996) - https://goo.gl/tHa0tO
- Скотт Мейерс - Эффективное использование STL (2002) - https://goo.gl/QtS8Dc
- Скотт Мейерс - Эффективное использование C++ (2005) - https://goo.gl/wsDXGz
- Герб Саттер и Андрей Александреску - Стандарты программирования на языке C++ (2005) - https://goo.gl/Cpk4YR
- Скотт Мейерс - Эффективный и современный C++ (2015) - https://goo.gl/Im8VYQ
4. Наиболее детальные описания языка:
- Бьерн Страуструп - Язык программирования C++ (на ангельском) (2013) - https://goo.gl/XkAiOX
- Николаи Джоссатис - C++. Стандартная библиотека (2012) - https://goo.gl/PEyiMH
- Стандарт 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 (черновик)
5. Нюансы проектирования на C++:
Следует пролистать все перед переходом от лаб к написанию настоящего софта.
- Ален Голуб - Веревка достаточной длины, чтобы выстрелить себе в ногу (2001) - https://goo.gl/fBmuxp
- Андрей Александреску - Современное проектирование на C++ (2002) - https://goo.gl/e1V5BC это - квинтэссенция ГИБКОСТИ, поэтому стоит прочитать в любом случае, чтобы охуеть от того, как можно делать.
- Джеймс Коплиен - Программирование на C++ (2005) - https://goo.gl/Y1WGdU
6. Тонкости языка (для гурманов):
- Герб Саттер - Решение сложных задач на C++ (2002) - https://goo.gl/iWaa6S
- Герб Саттер - Новые сложные задачи на C++ (2004) - https://goo.gl/4nn512
7. Годные ресурсы по C++:
- Годный блог, в котором все просто и понятно тян не нужны кококок борщ - 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
- Куча других блогов (на ангельском) - https://www.quora.com/What-are-the-best-blogs-on-C++
- Большой FAQ по C++ (на ангельском) - https://isocpp.org/wiki/faq
8.Видеоуроки: (для совсем уж ленивых пидорасов)
- Видеокурс на тытрубе - https://www.youtube.com/watch?v=atVgLRzl3rI
- Еще один - https://youtube.com/watch?v=MOpF5lk3cLY
- Среди прочих есть несколько курсов по C++ - https://stepic.org
- Видео с CppCon (на ангельском) - https://youtube.com/user/CppCon/videos
9. Куда писать код:
- Кроссплатформенные IDE: QtCreator, Eclipse CDT, CLion (Последняя платно, но зато энтерпрайз. Легко сбрасывать пробный период, можно купить на торрентах)
- Только Windows: Microsoft™ Visual Studio® рекомендуется для новичков
- Только OS X: XCode
- Уникальный способ для *nix-господ: Компилим через консольку с помощью clang(очень информативный и читаемый вывод) или в крайнем случае gcc (для ценителей).
- Все остальные: https://goo.gl/qkujDP
- Для тех, кто капчует с домофона: http://ideone.com
По просьбам трудящихся:
Инструкция "Как создать проект в Visual Studio" - https://goo.gl/JMd57G
Специальное уточнение для ньюфагов: А вообще, в случае возникновения вопросов по какой-либо IDE не брезгуйте чтением офф. документации. Все подобные вопросы там освещаются.(Ведь ее же для этого и пишут!). Так что сначала читаем доки, а только потом задаем здесь вопросы. Найти доки можно в пункте меню "Справка". Либо нажать F1, лал.
10. Code Quality:
- CppCheck. Статический анализатор, который умеет находить в коде ошибки и неоптимальные места. Швабодный. Есть плагин для Visual Studio. - http://cppcheck.sourceforge.net
- Clang Static Analyzer. То же самое, но встроено в одноименный компилятор. Активно пилится Google и Apple. - http://clang-analyzer.llvm.org
- PVS-Studio. То же самое, но энтерпрайз. Для пиара пишут годные статьи. - http://www.viva64.com/ru/pvs-studio/
- Visual Leak Detector. Детектор утечек для Visual Studio. Предельно прост в прикручивании - https://vld.codeplex.com
- Google Sanitizers. Гугловские утилиты для поиска утечек, дедлоков, гонок, неинициализированной памяти и некорректного доступа - https://github.com/google/sanitizers
- Valgrind. То же самое, но медленно.(Очень. По сути, это - виртуальная машина) http://valgrind.org
11. Годные библиотеки:
- Standard Library. С недавнего времени(С++11) стала годнотой. Например, теперь можно писать кроссплатформенный распределенный код, не подключая boost. Что очень хорошо. Кстати о бусте.
- Boost (http://www.boost.org) - бесспорно, самый популярный набор C++-библиотек. Воистину всеобъемлющий, boost способен удовлетворить твои самые скотские фантазии. В нем есть практически все - от математических функций до сетевых компонент, от инструментов тестирования до динамических типов. Функции для работы с твоей мамашей там тоже есть. Разумеется, все это швабодное и работает на любых платформах. Boost является своеобразным инкубатором хороших библиотек, поэтому наиболее удачные из них с большой вероятностью можно будет увидеть после принятия очередного стандарта уже как часть стандартной библиотеки.
Недостатком boost можно считать его размер - более 300 мегабайт. Большинство компонентов boost не являются независимыми, и попытка использовать один единственный контейнер обернется фактическим подключением 2/3 всего присутствующего в комплекте. Таким образом, если boost не будет использоваться на полную, лучше юзать другие, более специализированные библиотеки.
- Qt (http://www.qt.io/) - свободный кроссплатформенный фреймворк-надмножество C++ под названием Qt. Он содержит довольно большое количество компонентов (для работы с сетью, базами данных, для юнит-тестирования и др.), но киллер-фичей и основным полем его применения являются возможности по разработке графических интерфейсов. Qt сам по себе, как расширение языка, предоставляет для этого более удобные средства, чем обычные библиотеки, а использование специализированных IDE наподобие Qt Creator позволяет в буквальном смысле собирать интерфейсы мышкой, а код писать только по существу.
Тем не менее, использование Qt нельзя однозначно назвать хорошей практикой. Во многом это уже не C++, а другой язык, со своими концепциями и паттернами. Qt-код требует дополнительного препроцессинга при помощи встроенных в Qt утилит (т.н. метаобъектная компиляция), поэтому не получится просто подключить Qt как обычную библиотеку и использовать свой любимый компилятор без дополнительного софта. Нельзя сказать, что это существенное препятствие, но есть мнение, что использование Qt нарушает дух C++, раздувает машинный код и порождает макак-любителей кодогенерации.
В настоящее время основные версии Qt - 4.8 и 5.х, полной обратной совместимости между ними нет как в пистоне, ага.
- И еще куча библиотек на любой вкус - http://en.cppreference.com/w/cpp/links/libs
Итого:
Вопросу по синтаксису идут на хуй.
Лабы идут на хуй.
"Как мне сделать Х на чистых крестах без библиотек" идут на хуй.
Стихоебы идут на хуй
Все идут на хуй.
Хейтер, ОП сосет члены на пару со своей мамашей.
Старший брат: >>629715 (OP)
Предыдущий: >>663494 (OP)
#1 https://arhivach.org/thread/94971/
#2 https://arhivach.org/thread/94972/
#3 https://arhivach.org/thread/99414/
#4 https://arhivach.org/thread/100995/
#5 https://arhivach.org/thread/105148/
#6 https://arhivach.org/thread/109335/
#7 https://arhivach.org/thread/112797/
#8 https://arhivach.org/thread/114519/
#9 https://arhivach.org/thread/117109/
#10 https://arhivach.org/thread/120019/
#11 https://arhivach.org/thread/122683/
#12 https://arhivach.org/thread/124637/
#13 https://arhivach.org/thread/125532/
#14 https://arhivach.org/thread/127327/
#15 https://arhivach.org/thread/128133/
#16 https://arhivach.org/thread/134437/
#17 https://arhivach.org/thread/135285/
#18 https://arhivach.org/thread/139690/
#19 https://arhivach.org/thread/144812/
#20 https://arhivach.org/thread/147540/
#21 https://arhivach.org/thread/149983/
#22 https://arhivach.org/thread/151271/
Старые ненумерованные треды:
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/
#1 https://arhivach.org/thread/94971/
#2 https://arhivach.org/thread/94972/
#3 https://arhivach.org/thread/99414/
#4 https://arhivach.org/thread/100995/
#5 https://arhivach.org/thread/105148/
#6 https://arhivach.org/thread/109335/
#7 https://arhivach.org/thread/112797/
#8 https://arhivach.org/thread/114519/
#9 https://arhivach.org/thread/117109/
#10 https://arhivach.org/thread/120019/
#11 https://arhivach.org/thread/122683/
#12 https://arhivach.org/thread/124637/
#13 https://arhivach.org/thread/125532/
#14 https://arhivach.org/thread/127327/
#15 https://arhivach.org/thread/128133/
#16 https://arhivach.org/thread/134437/
#17 https://arhivach.org/thread/135285/
#18 https://arhivach.org/thread/139690/
#19 https://arhivach.org/thread/144812/
#20 https://arhivach.org/thread/147540/
#21 https://arhivach.org/thread/149983/
#22 https://arhivach.org/thread/151271/
Старые ненумерованные треды:
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/
Ниет, саси
Нет, ток на питоне и яве.
вот он пока рассказывает, кто и где изобрел кресты, уже можно было бы две проги написать
Кто-нибудь юзал casablanka? Какое мнение?
В смысле?
- Делаешь screenshot через любимый gui фреймворк
- Кладешь его в коллекцию
- Сравниваешь(хоть побитово) с предыдущими
Как это лучше всего сделать, чтобы исключить повторения и т.п.? Я не знаю, как лучше всего это обустроить.
Ну айдишники рандомные могут повторяться.
Можно поставить инкремент - но теоретически они могут дойти до максимума unsigned short int'a и ФСЁ.
>Qt
Надумал таки вкатиться в С++. Но вкатываться решил (в предыдущем треде посоветовали) не через Visual Studio, а через Qt Creator.
Какие подводные камни?
Как правильно передавать string в функцию, чтобы не забивался стек? До отладки рекурсии дело даже не дошло.
https://ideone.com/XEE9Nj
Ничего не понятно, опиши подробнее. С какой целью тебе нужен map<socket, id>, почему там могут быть повторы player_id, и почему ты вообще их допустил, раз хочешь избежать повторений?
Объясни подробнее. Я до этого писал только текстовую базу данных под линуксом. Просто часто вижу, что на C++ в функцию передается адрес строки через оператор &.
У тебя даже не компилируется. (потому что ты xvalue пытаешься передать по неконстантной ссылке).
Зделай const string&
В смысле писал только на чистом си.
> Просто часто вижу, что на C++ в функцию передается адрес строки через оператор &.
Это называется ссылка.
Это все очевидно, конкретизирую вопрос:
- Пользователь должен работать в другой программе, а на переднем плане постоянно должен быть счетчик активности. Скрин релейтед.
- Как сделать задание пользователем нужной области для слежения? Типа рамку может чтобы он по экрану перетаскивал и детектилось строго внутри нее.
- Можно сделать скриншот всего экрана
- Можно текстово задать две точки, которые определяют прямоугольник. Можно через рисование в прозрачном окне. Тут ничего не скажу конкретно
Нужны 2 переменные. Длина строки и количество звёздочек в ней.
https://ideone.com/U80PJH
>>676295
Qt параша не нушна. Не для того кресты нужны чтобы окошки лепить.
>Qt параша не нушна. Не для того кресты нужны чтобы окошки лепить.
Самое то, чтобы писать отзывчивые интерфейсы
SimpleFunctor(const char *name) : name_(name)
и это конструктор класса. Объясните, зачем нужно двоеточие? Это инициализатор или что?
http://voodoo-slide.blogspot.ru/2010/01/amplifying-c.html?m=1
Кому нужен C++, если даже в геймдеве от него отказываются? Не траллирую, правда интересно. Если чисто хочется челленджа (а не БДСМ), лучше по хачкелю угореть, например.
>Самое то, чтобы писать отзывчивые интерфейсы
Да, но он же в кресты вкатыватся. Другого нет и Qt для этого подходит, но кресты не для отзывчивых интерфейсов.
Для калькуляторов
Зачем ты принес это устаревшее говно сюда? В 2010 много чего не было, ты бы еще притащил пасту Торвальдса о том, какое C++ нестабильное говно.
Все верно, не слушай того поехавшего.
> Или я что-то не правильно понимаю?
Всё правильно. Только ты смешаешь изучение Qt и C++ вместе.
>Для чего кресты нужны?
Хайлоад. Он самый быстрый. Его очень сложно заменить на серверах где требуются большие мощности.
В смысле, биндингов Qt к любому другому языку? Спору нет, но я не только про гуевый софт же интересовался, а про область применения самого C++. Ну, если легаси всякое отбросить, само собой.
>>676385
Для чего?
>>676390
А что кардинально поменялось? Кластерфак парадигм разросся до такой степени, что в нем запутался сам создатель, как Кодзима в сюжетах своих игр?
Под армы есть и норм.
Фундаментальный вопрос.
Какую эмоджи выбрать в качестве символа плюсов http://www.emoji-cheat-sheet.com
:shit:
Ну да. Как бы поэтому и пошутил. Пидору наверно шапка без стишка не понравилась, а этот хуй на то же самое жалуется. Ты шутку похоже не понял.
Недо-qt-дипломом снова тут.
Забавно, но стоит признать что я разобрался с моделями (включая прокси), БД подцепил, это все.
Час назад даже немного озарился на тему передачи объектов по ссылке / значению. Вопрос, кстати, примерно об этом.
Есть QTableView и подключающаяся база:
http://pastebin.com/0Cz7vVyD
(вырезал кучу всего, оставил только относящееся к делу)
На примере в документации с QSqlRelationalTableModel - открывается норм. Попытался перенести на "прод" - внезапно оказалось что после подключения ничего не отображается. Нихуяшеньки.
База заполнена, проверил - на том же примере и проверял (там же и подгонял удаление столбцов в прокси).
По ссылке выше уже прошли следующие мучения:
- Начал "обращаться напрямую" к переменной.
- Отдельно прописал db_view в начале.
В общем, я уже не знаю что здесь не то. Если не впадлу, посмотрите, плиз.
Подозреваю обосрамс с областями видимости (поэтому в models_prepare там прокся назначается тоже напрямую), но не знаю как проверить наверняка.
Да я только ради стишка и заходил. А теперь унылое говно тут.
Там есть якорь?
кекнул
Просто alias-ы
Чому?
Неправильно, раз ты не знаешь, почему так. Ты-то может и угадаешь, но в следующий раз можешь не угадать. Открывай стандарт и читай, только так.
Ок.
Ну, возможно, анончик опасается, что выражение раскроется в (a==b)||(a<b), а как вы знаете, байтоебы очень чутко к этому относятся.
>байтоебы очень чутко к этому относятся.
А что не так? operator<= перегружается отдельно от operator== и operator<
А еще он внутри реализовывается через те же !(a<b). Но главная моя мысль была о том, что нехуй о таких вещах вообще думать, пока не посмотришь в профайлере.
>676707
>А еще он внутри реализовывается через те же !(a<b)
Речь про типичную реализация перегруженного оператора
>Забыл сообщение написать
Почему так? в чем подводный камень? переменная вроде дабл, так почему 5/2 не 2.5? или дело в инт х ??
Так что просто добавив точку к любому мы решим проблему? т.е. сначал посчитали, потом в дабл переменную записали?
перегружать операторы не обязательно. это делается исключительно для удобства и интуитивности. как ты думаешь, будет ли интуитивно перегрузить < и не перегружать >=? сколько бы wtf/sec словил бы ты?
а если точку не добавлять, то ничего не считается. да, решим. какой-то ты слишком нюфажистый. иди книжке из шапки почитай. разберись с хотя бы с lvalue/rvalue терминологией и минимально с типизацией
да вот, с типами вроде знаком и с приведением типов тоже. Но спорить по-поводу нью бессмысленно. Как раз строструпа сейчас прохожу. В задании на "исправь ошибку" и нашел это. Вроде и исправил легко, но стало интересно копнуть глубже
Уже рекурсией сделал.
>шиндовс
>что-то пиздеть на кутю
>2076
Если ты даун не заметил, то segfault вызывается твоей IDE, а не Qt.
Погугли по этому dorun.sh. Проблема решалась.
Ну вот пусть, сука, и на платформе cygwin работает.
Всё работает из коробки с Qt Creator'ом, но илитка как обычно не ищет легких путей
Я не анон с netbeans
И boost по доке ковыряю.
Ну, цепепе несколько изъебистый, да.
Ну значит я всё делаю правильно. Пойду допиливать свой простенький аллокатор.
Я кодгда начал учить плюсы доучил, по моему мнение, до 3/10 и начал искать работу. Понял что я нихуя не знаю, и у меня 1/10.
>За это исследование авторам статьи была присуждена Шнобелевская премия по психологии за 2000 год[4].
)))
Я поддерживаю идею. Если договоритесь между собой, что это приемлемо, запилю отдельный гитхаб для шапок официальных тредов. Потом сможете при перекате дергать меня, чтобы я заливал актуальную версию шапки.
Вот эту штуковинку можно в скрипт засунуть:
><script src="http://xcont.com/snow.js"></script>
Зимой будет очень круто смотреться :3
У меня такой вопрос. Тут на википедиях пишут, что тысячи программ во всем мире написаны с использованием Qt.
Есть какие-то яркие примеры? Я пока нахожусь в сомнениях - вкатываться мне в Qt или засесть за WinAPI
Ты спиздил шапку у предыдущего ОПа, стихов не написал. Так чем же ты, пидор, лучше? Предыдущий, кстати, обещал допилить шапку.
Я тут про C++ Builder узнал, который тоже окошки перетаскиванием создает.
Я ее нормально оформил, а не спиздил. На стихи мне похуй.
В консольке сначала пиши на С++, визуальное программирование подождет. Вполне подойдет code::blocks
Ты мне лучше за такую штуку поясни. Мой exe-шник helloworld.exe (написанный с использованием Qt) запустится у моего друга Васяна, если я ему его по скайпу скину?
Да
Нинужно.
Если у него DLL-ки есть или экзешник собран статически.
Там даже layout manager не завезли.
Решение типа:
string s;
s = (const char)aWord;
не работают
Правильно ли я понял, что нам рекомендуют свои функции и типы писать с большой, а заместо верблюда юзать нижний прочерк?
>>677485
>>677487
http://en.cppreference.com/w/cpp/string/basic_string/basic_string см. второй конструктор
Тебе так принципиально для изучения цепепе нарисовать, а не вывести в таблицу?
Слишком сложно. 99% не могут даже нарисовать крестик.
два чая адеквату
Можно. Но это удлиняет время компиляции, так как при изменении хедера будут перекомпилироваться все зависимые модули.
Пиши имено функций ф в хедерах function1.h function2.h, и подключай их в allfunctionanmes.h, если так хочешь их всех объединить где-то.
очевидные ncurses жи
Ты мне кароч даёшь экзешник и я как счастливый юзер могу использовать всё это один день, пока курс не изменится, да?
Запили ка ты нормальный класс Money с соотв. перегрузкой операторов. Шоб было что-нить навроде:
t::Money m1{ 123.2, Money::dollars };
t::Money m2{ 4, Money::rubles };
std::cout << m1 + m2 << std::endl;
В смысле?
>>677636
Извините, я пока еще учу язык. Как выучу - сделаю программу, которая бы онлайн курс ловила бы и выводила для валюты на выбор. (почему-то я думаю что таких прог уже 100+ есть)
Просто, показываю что сделал, если какие недоработки и т.д.
Вообще, когда в сообществе что-то делаешь, то тяжелее бросить начатое - я так считаю.
Ты хотел поведать нам о своих успехах?
Батя помогал.
Если ты сюда это пишешь, значит хочешь критики. Вот она. Пили нормальный класс с нормальным интерфейсом и перегрузками.
Ну молодец, что осваиваешься, чего еще сказать. Попробуй смотреть в сторону прикручивания http-библиотеки, чтобы оно курс брало с какого-нибудь сайта автоматически. Тогда получится если не полезная программа, то уже что-то похожее на полезную.
Похвалы? Ты шутишь? Осиль switch-case, а то от elif'ов рябит в глазах. Нормальную абстракцию и напиши что-нибудь полезное. Тогда, может быть, тебе не обосрут. Похвалы, лол. Мы тебе не родители и не тянка твоя.
Ну всё. В пизду кресты. Хорошо что ещё не много времени на них угробил. Питон учить буду.
Сука, тебе похвалить сложно? Или ты только обсирать можешь? Запомни: как ты к людям, так и они к тебе!
Поэтому борда "успешных" людей.
>>677642
Кстати, поясните вот что, у меня в папке проекта лежит дебаг с расширением .ехе, он работает как программа, которую я написал. Но, если я запускаю этот файл на другом компьюторе, то он ругается на отсутствие каких-то библиотек, которые, как я понял, идут с вижуалом.
Как я понял, потом я уже узнаю как делать экзешник и вшитые в него билиотеик?
> ругается на отсутствие каких-то библиотек
РУГАЕТСЯ НА ОТСУТСТВИЕ РАНТАЙМА С ДЕБАГ-СИМВОЛАМИ
Перенеси щас питонерам шапку с гитхаба. Посмотрим как это выглядит. Алсо как происходит вставка хтмлэля в пост? Может они тебе бота для автопереката запилят?
И на другие компьютеры надо распространять Release-билды.
Если у тебя студия, то там запрещено вообще распространять дебаг-версии.
А как релиз билд сделать?
Я на вижула_студио пишу, пишут что вроде самая удобная иде для разработки.
Я, конечно, еще много чего не понял, и интерфейс громоздкий и н слишком удобный...
А ты на нём пишешь? У меня была бы пара вопросов по интерфейсу.
>Если у тебя студия, то там запрещено вообще распространять дебаг-версии.
>>677690
Вот тебе пруф, если хочешь:
> Debug versions of an application are not redistributable, and debug versions of the Visual C++ library DLLs are not redistributable. You may deploy debug versions of applications and Visual C++ DLLs only to your other computers, for the sole purpose of debugging and testing the applications on a computer that does not have Visual Studio installed.
https://msdn.microsoft.com/en-us/library/aa985618.aspx
Каст к указателю на void.
В C ненужно, так как любой указатель кастуется в на-void
В C++ ненужно, так как убивать за это
Мод, плиз.
Говно
1. какой у тебя аллокатор, попробуй jemalloc
2. если критично, делай свой пул памяти и развлекайся с имплейментами
* имплейсментами
она предвещает большую беду. увидишь её, сразу закрывай двери и залазь под кровать
лабы идут на хуй
Так это чисто юридический запрет, лол.
http://ideone.com/df6V1p
Суть такова: пользователь создаёт файл A, в который пишет целые ненулевые числа. Положительных столько же, сколько и отрицательных. Программа создаёт файл B, в котором эти числа записываются так, чтобы рядом не стояло двух чисел с одинаковым знаком (т.е. положительные и отрицательные чередуются), но отдельный порядок следования сохраняется как для положительных, так и для отрицательных чисел.
Вопрос: какого хуя эта хуерга не работает, блядь? Я напутал что-то с указателями? Вчера весь вечер ебался с ней, в итоге не доебал.
Хуерга не работает, потому что ты накопипастил с-шного говнеца
Так там как понял без этого никак. Это для CUDA C, конструкция (void)&a. Что значит каст, ни разу такое не использовал на обычном С++. На приведение не похоже, на взятие адреса тоже.
WinAPI лучше Qt. Сам несколько лет назад решил освоить какую-нибудь библиотеку для всяких гуёв. Выбор пал на Qt. Потихоньку осваивался, переписывал свои старые программы под GUI, но с каждым разом разочаровывался в Qt всё больше и больше. Реализация простейшей хуйни требовала создание абстрактного класса листенера события и использование парадигмы MVC. Про один экзешник можно забыть - нужен ещё и Qt5Core.dll, Qt5Widgets.dll и т.д. Программы не всегда делали то, что я хочу - например, не могли создать объект QImage размером больше гигабайта, а без QImage я тогда обойтись не мог. Поведение некоторых элементов было не такое, какое следовало ожидать. Где-то тогда же я узнал про WinAPI - древнюю, могущестенную библиотеку, когда-то бывшую доминантой, но теперь забытую за всеми этими фреймворками и абстрактными парадигмами. Уже тогда, не зная её вообще, я называл её "лучшей библиотекой в мире". А когда решил выучить её - понял, насколько же я был прав. Один экзешник, маленького размера. За счёт отсутствия нагромождения абстракций код на WinAPI получатся даже короче. Делала библиотека всё, что нужно, я до сих пор удивляювь, когда узнаю, что в ней есть яички для моей сегодняшней задачи. Вдобавок в Visual Studio был охуительный шрифт и сама архитектура WinAPI-программ взрывали мозг. Он охуителен.
А вообще её за месяц-полтора можно как-нибудь освоить?? Ну, даже не освоить, а реализовать проект. Дело в том, что я никогда не писал приложения с гуи, а тут вот понадобилось и чтоб таблица была и картинки...
StackOverflow там -->>
Блядь, ты там ебанутый нахуй? Пошел ты в жопу с такими дебильными пастами. Бинарник у него один, бля. Если этот хуила не знает про статическую линковку, понятно какое ценное у него мнение.
Знаю я, блядь, про статическую линковку. Как и про то, что ты ОБЯЗАН распространять программу под GPL, если слинкуешь статически. Я уж молчу про то, сколько всякого говна надо ставить, чтобы пересобрать Qt под статическую линковку.
>>678004
По документации можно, но только если ты умеешь читать документацию.
>Я уж молчу про то, сколько всякого говна надо ставить, чтобы пересобрать Qt под статическую линковку.
Сколько? Qmake и компилятор C++? (Которые в составе Qt SDK идут, лол).
Даже 200 мб библиотек – лучше чем привязывание ануса к одной платформе и пожирание сишного говнолегаси из 70-х (винапи).
Алсо, я так понимаю поставлять бинарник в комплекте с 2 дллками – слишком трудно.
>ОБЯЗАН
Проиграл чёто. К тебе на хату завалятся, отпихдят и свяжут, потом будут натягивать кишки на скалку, крича -"ХУЛИ ТЫ КУТЮ СТАТИЧЕСКИ СЛИНКАВАЛ ПИДАР".
Посмотрим как ты запоешь когда тебе позвонит один из сотен натренированых лично Столлманом юристов FSF.
Про то, что код на winapi короче и проще, - это вообще пушка. Ну покажи нам этот код, хули.
Как ты можешь распространять не свободно свою программу и нигде не указать свой телефон? Ситауция такая что ты начинаешь распространять свою программу за $10, другие парни начинают продавать ее за $5. Ты пытаешся подать на них в суд - общественности становится известна твоя личность. К тебе подъезжают люди от Столлмана для разговора.
Поссу им на ебало и кекну. У нас здеся за хентай сажают, а не за нарушение лицензий на ПО.
Алсо, какая вообще вероятность что твоим высером будет пользоваться больше 2,5 васянов и кто-то вообще узнает о факте этой статической линковки?
>узнает о факте этой статической линковки
Справедливости ради, если код без защиты, то сделать это довольно легко.
Это хорошо что ты определился с целями своей жизни и решил что ничего больше laba2.cpp ты не напишешь - тут действительно можно линкануть статически с маловероятными последствиями. Но анона, возможно, интересует написание серьезных коммерческих проектов. И писать их с нарушениями лицензий недальновидно.
Если будешь делать коммерческий софт – уж будь так добр заплатить и за Qt и не выёбываться. Это не студия с ценником от 1,5к до 6к$, всего-то 300$ для коммерческого проекта – не много. Ну а если у тебя очередное васяноподелие для 2-х человек – не вижу смысла ебать мозги.
Но тогда он и купит коммерческую лицензию на qt и точно будет поставлять свой продукт не одним бинарником. Так что его аргументы выглядят весьма вскукаречно.
Для сурьёзного проекта 300$ – не деньги. Только это всё высер твоего манямирка, в попытках оправдать сказанную тобой тупость.
>>678097
Что с этого будет-то? Кто-то усрётся и наспамит тебе на почту что ты хуесос?
>Вдобавок в Visual Studio был охуительный шрифт и сама архитектура WinAPI-программ взрывали мозг. Он охуителен.
Да ясен хуй что это даун уровня ОПа пуревасик треда, просто чем жирнее наброс тем сложнее пройти мимо когда так нагло ебут кому-то мозги.
> Да кто вообще узнает, ха хах ах, как хочу так и линкую))))
> ну конечно я заплачу деньги, какой вопрос
Уменьши обороты манямирка, дефектное. Ты впаривал нюфагу про то, что ДЛЯ СУРЬЙОЗНОГО ПРАИКТА НУЖНА ПЛАТИТЬ, ИНАЧИ ПАЗВОНЯТ ДЯДИ И СКАЖУТ ЧТО ТЫ ДОЛЖИН ЖРАТЬ ГРЯЗЬ ИЗ ПОД НОГТЕЙ КАК СТОЛЛМАН))). И что-то не заметно, чтобы тебя ебало, что на статическую линковку васяноподелия без крупной базы (тем более если оно некоммерческое – тебе даже по закону сделать в СШП нихуя не смогут) всем похуй.
Ты двинулся. Эта бибка сишная, которая по существу эмулирует сишными же средствами ООП. Чего в этом хорошего, учитывая, что всё это досталось со временён третьих Окон?
Подобный подход может быть обоснованным разве что в kernel space, но никак в user space, где аноны пилят гуйню.
Алсо, что не так с MVC-парадигмой? Давай разложи по полочкам, мамкин проектировщик.
Гуи на гуёвых языках. Если очень хочется писать на плюсах и иметь gui, то как вариант пиши плюсовую бибку, которая дёргается из графического фронт-энда, написанного на C++ .NET.
Насколько я помню, git, msys, ruby, python, Cygwin и что-то ещё. А, ну и Qmake и mingw. По крайней мере, в 2013 было так.
Да, таскать за собой лишний мусор - это пиздец. Лучшая программа - та, что распространяется в одном .exe. Всякие zip-архивы с rar-архивами мусора не нужны.
>>678091
Да, вот только с WinAPI тебе вообще не нужно ни за что платить, чтобы нормально распространять программы.
Код бы показал, да вот Qt давно не стоит, чтобы написать аналогичный для сравнения.
>>678109
Это не троллинг. Когда устал от паттернов абстрактных фабрик синглтонов(а Qt ими наполнен), то WinAPI кажется невероятно охуительным. В нём всё так неправильно, так непривычно. И это круто.
>>678198
Что в этом хорошего?
Там, блядь, ООП НА СИ! Без крестов! ООП! НАСТОЯЩИЙ! НА СИ! И ВСЁ ПРИ ЭТОМ РАБОТАЕТ! Это же венец творения!
Каждый дурак может написать ООП на C++. ООП на сях могут написать только самые крутые чуваки с инженерным мышлением.
MVC-парадигма? Да всё с ней нормально, только заехал этот ДИЗАЙНЕРСКИЙ АРХИТЕКТУРНЫЙ ПОДХОД. Хочется чего-то неправильного. Того, что нарушает правила по разработке ПО.
А ведь в WinAPI помимо всего этого ещё и синтаксис охуителен.
>>678119
Дело даже не в том, что где-то следят какие-то дяди. Дело в собственном ощущении лицензионной чистоты.
Насколько я помню, git, msys, ruby, python, Cygwin и что-то ещё. А, ну и Qmake и mingw. По крайней мере, в 2013 было так.
Да, таскать за собой лишний мусор - это пиздец. Лучшая программа - та, что распространяется в одном .exe. Всякие zip-архивы с rar-архивами мусора не нужны.
>>678091
Да, вот только с WinAPI тебе вообще не нужно ни за что платить, чтобы нормально распространять программы.
Код бы показал, да вот Qt давно не стоит, чтобы написать аналогичный для сравнения.
>>678109
Это не троллинг. Когда устал от паттернов абстрактных фабрик синглтонов(а Qt ими наполнен), то WinAPI кажется невероятно охуительным. В нём всё так неправильно, так непривычно. И это круто.
>>678198
Что в этом хорошего?
Там, блядь, ООП НА СИ! Без крестов! ООП! НАСТОЯЩИЙ! НА СИ! И ВСЁ ПРИ ЭТОМ РАБОТАЕТ! Это же венец творения!
Каждый дурак может написать ООП на C++. ООП на сях могут написать только самые крутые чуваки с инженерным мышлением.
MVC-парадигма? Да всё с ней нормально, только заехал этот ДИЗАЙНЕРСКИЙ АРХИТЕКТУРНЫЙ ПОДХОД. Хочется чего-то неправильного. Того, что нарушает правила по разработке ПО.
А ведь в WinAPI помимо всего этого ещё и синтаксис охуителен.
>>678119
Дело даже не в том, что где-то следят какие-то дяди. Дело в собственном ощущении лицензионной чистоты.
>Насколько я помню, git, msys, ruby, python, Cygwin и что-то ещё. А, ну и Qmake и mingw. По крайней мере, в 2013 было так.
На ШIИD0W2 так и до сих пор. Блять, даже в OSX позиционирующейся как ОС для домохозяек это всё есть из коробки.
>Да, таскать за собой лишний мусор - это пиздец. Лучшая программа - та, что распространяется в одном .exe. Всякие zip-архивы с rar-архивами мусора не нужны.
Когда у тебя большой софт - намного удобнее положить хуй и слинковать динамически.
>Да, вот только с WinAPI тебе вообще не нужно ни за что платить, чтобы нормально распространять программы.
А ещё тратить на создание банального окна сотню строк кода. Ладно, если пары кнопок нету нихуя, но на любом банальном листе который нужно заполнить данными из интернета ты повесишься. Если уже на бесплатном, то и на сокетах наверно весь десктопный софт пилить предлагаешь?
>Код бы показал, да вот Qt давно не стоит, чтобы написать аналогичный для сравнения.
Ясен хуй, что ты просто вбрасываешь потолще. Молодец, заглотни хуйца и слейся до конца.
>Это не троллинг. Когда устал от паттернов абстрактных фабрик синглтонов(а Qt ими наполнен), то WinAPI кажется невероятно охуительным. В нём всё так неправильно, так непривычно. И это круто.
Учитывая что всё это облегчает код во всех аспектах - попизди ещё что ты не жирный ублюдок.
>Каждый дурак может написать ООП на C++. ООП на сях могут написать только самые крутые чуваки с инженерным мышлением.
Эээ, блять, кек. Чтобы писать на Goвне теперь тоже нужно инжинерное мышление. Создал структурку, в хидерах маскируешь её под void* и мартышки НИПАНИМАЮТ))))) АХУИТЬ КЛАССНА)))
>Дело в собственном ощущении лицензионной чистоты.
И при этом тебе нравится измазываться говном Билли 30-ти летней выдержки?
>Код бы показал, да вот Qt давно не стоит, чтобы написать аналогичный для сравнения.
Ну давай без сравнения, закинь свой код winapi онли.
Да чего ты с ним разговариваешь, лол? Это же тот поехавший с охуительными историями про его превозмогания винапи. Его еще зимой тут хуями накормили.
>Лучшая программа - та, что распространяется в одном .exe. Всякие zip-архивы с rar-архивами мусора не нужны.
Назови хоть одну такую.
Покормил
Нашел его.
>На ШIИD0W2 так и до сих пор. Блять, даже в OSX позиционирующейся как ОС для домохозяек это всё есть из коробки.
Но блядь, нахуя мне одноразовый мусор в системе? Ещё и из коробки, охуеть просто. Мусора вообще быть не должно. Если ты не ruby-кодер, то нельзя ставить ruby для подобных задач ни при каких обстоятельствах. Всё, что у меня стоит на компьютере, так или иначе мной используется.
Поэтому никакой статической линковки.
>Когда у тебя большой софт - намного удобнее положить хуй и слинковать динамически.
А потом искать нужный файл в нужной папочке, и только попробуй потерять хоть один файлик из нужных.
Ладно я, который знает, как это было написано и что нужно для работы. Но пользователи! Ни в коем случае нельзя создавать пользователям неудобства.
>А ещё тратить на создание банального окна сотню строк кода. Ладно, если пары кнопок нету нихуя, но на любом банальном листе который нужно заполнить данными из интернета ты повесишься. Если уже на бесплатном, то и на сокетах наверно весь десктопный софт пилить предлагаешь?
Тебя удивить? В Qt та же сотня строк кода. Только они уходят не на очевидные действия, а на всякое наследование абстрактных классов и перегрузку методов листенеров. Скууууука!
>Ясен хуй, что ты просто вбрасываешь потолще
Да, конечно, можешь не замечать того, что я написал строкой выше. Только меньшей правдой оно от этого не становится.
Давай так - вбрось-ка сам сюда код на Qt.
>Учитывая что всё это облегчает код во всех аспектах - попизди ещё что ты не жирный ублюдок
Это не облегчает код, это вызывает жуткое уныние. По сложности абсолютно то же самое.
>Эээ, блять, кек. Чтобы писать на Goвне теперь тоже нужно инжинерное мышление. Создал структурку, в хидерах маскируешь её под void и мартышки НИПАНИМАЮТ))))) АХУИТЬ КЛАССНА)))
Хуйня какая-то, подумаешь, под void замаскировать. А вот WNDCLASS::lpfnwndproc(я от одного этого названия кончаю) - это интересное и замысловатое архитектурное решение.
>И при этом тебе нравится измазываться говном Билли 30-ти летней выдержки?
Это не говно тридцатилетней выдержки, это древний диалект, который на сегодняшний день помнят лишь немногие. Охуенно быть в числе немногих.
>>678270
Что-то я не помню такого, помню лишь, что никто так и не смог доказать, чем их %либанейм% лучше WinAPI.
>>678272
Такие пишу только я. Смотри, например, тебе нужно, чтобы пара твоих знакомых посмотрело, какую охуенную штуку ты написал. Дальше 2 сценария:
Сценарий 1.
-Смотри, что у меня!
-Ладно, давай посмотрю. Принимает. Не запускается чёт, Qt5Core.dll какой-то требует.
-Эээ... Ладно, подожди, я кинуть ещё.
-Скучающий вздох Ладно, давай. Принимает. Опять требует что-то.
-Ой-ой, ща.
-Да ладно, забей, потом как-нибудь.
Сценарий 2.
-Смотри, что у меня!
-Ладно, давай посмотрю. Принимает. Вау, чувак, это круто!
Ну и что бы ты выбрал?
>На ШIИD0W2 так и до сих пор. Блять, даже в OSX позиционирующейся как ОС для домохозяек это всё есть из коробки.
Но блядь, нахуя мне одноразовый мусор в системе? Ещё и из коробки, охуеть просто. Мусора вообще быть не должно. Если ты не ruby-кодер, то нельзя ставить ruby для подобных задач ни при каких обстоятельствах. Всё, что у меня стоит на компьютере, так или иначе мной используется.
Поэтому никакой статической линковки.
>Когда у тебя большой софт - намного удобнее положить хуй и слинковать динамически.
А потом искать нужный файл в нужной папочке, и только попробуй потерять хоть один файлик из нужных.
Ладно я, который знает, как это было написано и что нужно для работы. Но пользователи! Ни в коем случае нельзя создавать пользователям неудобства.
>А ещё тратить на создание банального окна сотню строк кода. Ладно, если пары кнопок нету нихуя, но на любом банальном листе который нужно заполнить данными из интернета ты повесишься. Если уже на бесплатном, то и на сокетах наверно весь десктопный софт пилить предлагаешь?
Тебя удивить? В Qt та же сотня строк кода. Только они уходят не на очевидные действия, а на всякое наследование абстрактных классов и перегрузку методов листенеров. Скууууука!
>Ясен хуй, что ты просто вбрасываешь потолще
Да, конечно, можешь не замечать того, что я написал строкой выше. Только меньшей правдой оно от этого не становится.
Давай так - вбрось-ка сам сюда код на Qt.
>Учитывая что всё это облегчает код во всех аспектах - попизди ещё что ты не жирный ублюдок
Это не облегчает код, это вызывает жуткое уныние. По сложности абсолютно то же самое.
>Эээ, блять, кек. Чтобы писать на Goвне теперь тоже нужно инжинерное мышление. Создал структурку, в хидерах маскируешь её под void и мартышки НИПАНИМАЮТ))))) АХУИТЬ КЛАССНА)))
Хуйня какая-то, подумаешь, под void замаскировать. А вот WNDCLASS::lpfnwndproc(я от одного этого названия кончаю) - это интересное и замысловатое архитектурное решение.
>И при этом тебе нравится измазываться говном Билли 30-ти летней выдержки?
Это не говно тридцатилетней выдержки, это древний диалект, который на сегодняшний день помнят лишь немногие. Охуенно быть в числе немногих.
>>678270
Что-то я не помню такого, помню лишь, что никто так и не смог доказать, чем их %либанейм% лучше WinAPI.
>>678272
Такие пишу только я. Смотри, например, тебе нужно, чтобы пара твоих знакомых посмотрело, какую охуенную штуку ты написал. Дальше 2 сценария:
Сценарий 1.
-Смотри, что у меня!
-Ладно, давай посмотрю. Принимает. Не запускается чёт, Qt5Core.dll какой-то требует.
-Эээ... Ладно, подожди, я кинуть ещё.
-Скучающий вздох Ладно, давай. Принимает. Опять требует что-то.
-Ой-ой, ща.
-Да ладно, забей, потом как-нибудь.
Сценарий 2.
-Смотри, что у меня!
-Ладно, давай посмотрю. Принимает. Вау, чувак, это круто!
Ну и что бы ты выбрал?
>Такие пишу только я
Не думал, почему так? Собственно, я уже точно знаю, что ты больших проектов в глаза не видел. Достопочтенным господам в крупных проектах нужно:
- Кроссплатформенный GUI и код в целом.
- Скорость работы отладчика
- Скорость работы IDE на проекте
- Внешняя конфигурация работающего приложения
- Плагины
- Простота доставки обновлений
- Расшаривание функциональности между несколькими бинарниками.
Поставлять приложение одним бинарником - это бред, никто так не делает. Использовать непереносимую библиотеку GUI на десктопе это тоже бред.
P.S. И покажи все же свой код на WINAPI
>Кроссплатформенный GUI и код в целом
Не нужно. У меня нет ни одного знакомого, который всерьёз бы использовал линукс. А это вполне нормальная выборка, чтобы сделать соответствующие выводы.
>Скорость работы отладчика
И на Visual Studio она очень высокая. А на Qt вообще где-то до 5.1 был просто отвратительный отладчик.
>Скорость работы IDE на проекте
И тоже достаточно высокая.
>Внешняя конфигурация работающего приложения
Есть.
>Плагины
Уточни - плагины для IDE(потому что в Visual Studio, в отличие от Qt Creator, они есть) или плагины для твоего же приложения? Если второе - то идеальному приложению вообще плагины не нужны, оно выполняет все необходимые задачи.
>Простота доставки обновлений
Заменяешь бинарник и всё, делов-то.
>Расшаривание функциональности между несколькими бинарниками
А что ты имеешь в виду? Нахуй несколько бинарников?
А у меня полно знакомых девочек с макбуками. Пилить им отдельных гуй на cocoa?
> У меня нет ни одного знакомого, который всерьёз бы использовал линукс.
Андроид твои знакомые тоже не используют?
>И на Visual Studio она очень высокая. А на Qt вообще где-то до 5.1 был просто отвратительный отладчик.
Qt вообще-то нормально работает под Visual Studio.
Любезный, не следует отверзать ту бездну, что скрывается за сим суждением.
А нужен ли им вообще твой софт для начала? Девочки с макбуками - весьма специфическая аудитория. Если твой софт для них, может, тогда виндовая версия вообще не нужна?
>>678376
>Андроид твои знакомые тоже не используют?
Прости, но Android - это вообще не десктоп. Мобильные приложения - совершенно другая среда. Они по-другому распространяются, по-другому пишутся, по-другому работают и по-другому используются. Я уж молчу про то, что только идиот будет писать приложение под андроид не на Java(хотя Java - ужаснейший язык).
>Qt вообще-то нормально работает под Visual Studio
Только вот он там не особо нужен.
Мобильные приложения другая среда только для winapi-дрочеров. Ничего особенного в них нет для тех, кто умеет писать кроссплатформу. Ты просто программист ниже рангом, вот и все.
Нет. Тут 3 профи сидят 2 могут в асм 1 в js. Оп студент последнего курса возможно работает в бодишопе и когда говорит от своего имени часто называет остальных няшеми ещё олдфаг или луркоёб. Другой отвечает даже на глупые вопросы и использует vim, а третий использует класс tvoymamka и часто материться тогда что-то поясняет похоже что это алчан и теперь он куда-то сбежал. Остальные не очень активные. Раньше похоже модер сильно не выделялся как и новый оп т.к. их не помню. Алсо предлагаю затролить мода и устроить бамплимит до 8ого марта и это где его посты? Нахуя потёр всё?
Не. Я точно этих трёх запомнил. А до нашего опа опом был алчан кстати. Это он писал в шапке чтобы все шли нахуй и свой скрипт для [code] в шапку пихал.
>Не нужно. У меня нет ни одного знакомого, который всерьёз бы использовал линукс. А это вполне нормальная выборка, чтобы сделать соответствующие выводы.
Это просто ультратолсто. Ты уже давно не помещаешься в этот тред. Давай тоньше, а то не интересно.
>И тоже достаточно высокая.
Охуительные истории ITT. Ты хоть раз открывал солюшн с 170 подпроектами? Я открывал. Мне не понравилось. Помимо того, что code assistant работал довольно медленно, так он еще и хуево работал. В Eclipse ситуация намного лучше, но все равно на таких объемах кода разработчики иногда включают распарс только на проектах, на которых работают. А если у тебя еще нет SSD, то это просто блять обязательно, иначе можешь идти пить чай, пока анализ кода не завершится.
>Есть.
В реестре, лол? А я думал, в отдельном файлике, который рядом с бинарником лежит. Вот ведь не задача-то!
>Если второе - то идеальному приложению вообще плагины не нужны, оно выполняет все необходимые задачи.
Ага, попизди тут еще, макака ебаная. А если эти плагины платные и кастомеру все они не нужны? А если это моды к играм? Я же говорю, ты никогда не работал с крупными проектами, а пиздишь, будто ты Макконелл.
>А что ты имеешь в виду? Нахуй несколько бинарников?
Ну ты поставляешь консольную и gui-шную версию приложения, например. Ах да, в твоем манямирке такого не предусмотрено.
Ну да. Я же это и написал. Только не помню почему так решил.
>>678459
Про последний курс да. Но он не говорил что он ОП. В одном из тредов 1 хуй какие-то лекции по архитектуре компьютера советовал когда другой реквестил аналог таненбаума покороче. Там у него спросили аспирант ли он, а он ответил что студент. Про последний курс не помню, но судя по знаниям последний. Было это летом или весной. Раньше всё записывал, но проебал файл. Ухожу на архивач освежить воспоминания.
>Только не помню почему так решил.
Всё. Вспомнил. У него они на одном гитхабе лежат. А ещё возможно это он этот тред вайпал т.к. там же и какая-то универсальная вайпалка лежит https://github.com/ololoepepe/wipe.js
>Мобильные приложения другая среда
Блядь, я тебе как пользователь это говорю. У десктопа и у мобайла совершенно разные задачи. Там, блядь, даже браузеры разные.
Кроссплатформы "мобайл-десктоп" не бывает. Назови мне хотя бы одно приложение, которое одинаково работает в обеих средах.
>Кроссплатформы "мобайл-десктоп" не бывает.
Серия GTA, например. Ты думаешь они ее заново переписали?
Да ладно. Кстати дочитываю первый тред. Там как-раз оп и говорит что те лекции у них на 2ом курсе читают. Значит Он минимум 3ий курс. А задедектил его по спойлерам. Оп их любит.
>Кроссплатформы "мобайл-десктоп" не бывает.
Зато бывает мобайл-мобайл, лал. И вообще, что ты пытаешься доказать? Что winapi не говно? Ну давай ты накинешь сравнений, а потом мы тебя обоссым.
а нынешний откуда взялся? это тот который с разметкой или другой?
Может, у тебя у функций ещё адреса нет?
А как я узнаю какие байты принадлежат функции?
Вот ещё нашёл.
>Статический метод попадает туда же, куда и обычные методы - в сегмент команд. Суть в том, что методы не копируются для каждого объекта класса. В смысле размещения все функции "статические", потому что все функции, которые вызываются хотя бы один раз, записываются в память и не дублируются. static-методы отличаются только тем, что они не принимают неявно первым параметром указатель на объект, и поэтому их можно вызывать не только от имени объекта как mamka.ebat (), но и вообще при отсутствии объектов класса, от имени всего класса: TvoyaMamka::ebat ().
Тут же дохуя проблем может быть. Например если эта функция будет обращаться к другому методу или переменной в классе, а объект не создан. Знаю что можно попробовать проверить, но могут быть проблемы о которых я не подумал. Где на столько подробно за кресты поясняют?
>>678526
Он увидел спагети в шапке и тред который 2 дня в бамплимите и решил стать новым опом.
>Зато бывает мобайл-мобайл
Да, но мы говорим о десктопе. Мне похуй, что там в мобильной разработке, всё равно интересных средств там нет.
>Ну давай ты накинешь сравнений
Ну отлично, кидай код на Qt, а я его сравню с винапишным.
>это тот который с разметкой или другой?
Нет. Тот написал
>Красава, достойный преемник, благословляю.
И перестал быть опом.
Ну там изи, если немного разобраться. Можно прочитать про формат бинарника для своей архитектуры и отрезать от существенных байтов заголовок и всякую хуйню. Или просто взять таблицу машинных кодов и перегнать ассемблерный код вручную в машинные команды.
>Ну отлично, кидай код на Qt, а я его сравню с винапишным.
Прошу, начинайте:
https://github.com/qtproject/qtquickcontrols/tree/dev/examples/quick/controls/gallery
>Тут же дохуя проблем может быть. Например если эта функция будет обращаться к другому методу или переменной в классе, а объект не создан.
Так нельзя. Объекта же нет.
>Где на столько подробно за кресты поясняют?
Страуструп/стандарт
>Страуструп
Там нет.
>стандарт
Там много сложно.
>Так нельзя. Объекта же нет.
>можно вызывать ... при отсутствии объектов класса
Если статическая функция попытается обратиться к нестатическому члену, то код просто не скомпилируется. Почитать можно книги из шапки, те, что более хардкорные.
fstream
>те, что более хардкорные.
>Литература для тех, кто осилил предыдущий пункт
>Наиболее детальные описания языка:
>Тонкости языка (для гурманов)
Какие?
Может, сначала создать класс "орган"?
Еще есть охуенная книжка Inside the C++ Object Model Липпмана, но она емнип только на английском.
Хуй его знает, почему я выкинул этот раздел. Помню только, что "Параллельное программирование" выкинул как нерелейтед, хотя сейчас понимаю, что зря.
Вероятно, случайно забыл добавить.
>4. Наиболее детальные описания языка:
>- Бьерн Страуструп - Язык программирования C++ (на ангельском) (2013) - https://goo.gl/XkAiOX
У тебя старое издание. Но там тоже это есть. В главе "Классы"
Понял спасибо. Значит читал не внимательно.
Хорошо, подожди часик и я напишу WinAPI-код. Только уточни для начала, ты вот эти вот QML+JS тоже считаешь? Ибо QML+CPP как раз и занимает у тебя примерно столько же кода, сколько винапишный эквивалент.
>ты вот эти вот QML+JS тоже считаешь?
Ну конечно.
>Ибо QML+CPP как раз и занимает у тебя примерно столько же кода, сколько винапишный эквивалент.
Охуительные истории.
Алсо, код на Qt занимает ~360 строк.
Что дальше? Как узнать сколько байт отрезать и в какую сторону?
И еще: мне когда-то посоветовали хороший учебник по сабжу от одного из майкросовтовских разработчиков Visual C++, но я пролюбил PDF-ку и в упор не могу вспомнить имени автора, могу точно сказать, что это не Страуструп и не Мейерс, других авторов из ОП-поста пока не гуглил. Есть идеи?
gnuplot
MS давно не поддерживает формошлепство на С++. Ставь или QtCreator или новый C++ Builder.
Чтобы если программа упадет от чтения в неположенном месте, вывелось все, что успело вывести, а не подохло вместе в буфером. Какой длины - узнать x86 код ассемблерной команды RET и заменить цикл на while. Ну или в отладчике посмотреть disassembly и прикинуть сколько байт там будет.
Чем свежее - тем лучше. Вот в 2015 Visual Studio добавили профайлер памяти встроенный, и, насколько я понимаю, добавили туда поддержку стандарта C++14.
Что касается свиньи (шиндоус хр) и прочего старого хлама - то это там можно, да.
Стандартная библиотека сейчас очень даже ничего, но кк ни крути, редист качать надо будет, даже для старых версий компилятора. Таки дела.
Даже больше скажу, скорее всего ты прочитаешь данные PLT, а не саму функцию в случае PIC.
Но если функция, которую хотят прочитать и функция, которая читает находятся в одной секции, то да, в случае PIC все сработает. Но я все равно не понял, зачем ты упомянул PIC
Как сделать чтобы программа со второго пика компилировалась не в 8.5 кб, а поменьше?
>>678741
>узнать x86 код ассемблерной команды RET
Похоже c3, но это не точно.
https://ideone.com/h0Un65
>>678791
Если раскоментить строку, то будет ошибка в время выполнения. Как исправить? Может не правильно количество байт беру?
https://ideone.com/CU77R1
Формошлепством уже давно не интересуюсь, все руками делаю.
>C++ Builder.
Ты про борландовский цпп? Да ну его нах, после нескольких лет дельфоебства я теперь на пушечный выстрел не подойду к их кривому софту. В фак-треде на 100% верно про них написано:
>Если интерес не поиграться, а работать, то не нужно следовать за массовыми истериями. Выбирай язык с кучей библиотек, туториалов и проверенными временем фреймворками под твои нужды. Иначе будешь тратить время на велосипеды и поиск багов в чужих пакетах.
Я несколько лет страдал изобретением велосипедов, правкой их багов и обходом вредных свистелок, в то время, когда нормальные люди учились нормальным языкам и не тратили время.
>>678752
Спасибо, наверное стоит попробовать с 2015 Visual Studio. А что насчет классической MS Visual C++ 6.0? У меня самого железо - старый хлам, когда нормальный ноут помер, я собрал на скорую руку свое нынешнее помойное ведро и ХР на нем работает нормально, чаще даже под ней приходится сидеть, чем под Семеркой. Меня, если что, не интересует на данный момент ничего кроме создания простейших приложений с окном и простым циклом обработки сообщений. На дельфе все это есть, но хочется поближе к системе, и чтобы без гигантских и глючных объектных нагромождений поверх простых вещей.
>Я несколько лет страдал изобретением велосипедов, правкой их багов и обходом вредных свистелок, в то время, когда нормальные люди учились нормальным языкам и не тратили время.
>Меня, если что, не интересует на данный момент ничего кроме создания простейших приложений с окном и простым циклом обработки сообщений.
Ты ебанутый и так ничего и не понял. Голое winapi в 2016 - это трата времени.
Ебанутый здесь толькот тот, кто считает, что для программы, где нужен только WinAPI, нужно использовать что-то кроме него. А обучение нужно начинать с основ, а не с наворотов.
>2016
Ох уж эти форчково-школьные ракомемы. Тебе лет-то сколько вообще? Если нечего сказать, так ничего не говори.
>Ебанутый здесь толькот тот, кто считает, что для программы, где нужен только WinAPI, нужно использовать что-то кроме него.
WinAPI просто не нужен, нужны кроссплатформенные объектно-ориентированные фреймворки. Qt, wx, fltk если так охота что-то от MS, то winforms, но MS давно забила на гуй для нативного С++.
>А обучение нужно начинать с основ, а не с наворотов.
WinAPI - это не основы, это устаревшая хуево задизайненная библиотека. Весь пиздец в том, что ты пишешь "изобретением велосипедов, правкой их багов и обходом вредных свистелок, в то время, когда нормальные люди учились нормальным языкам и не тратили время", и при этом хочешь делать что-то с WinAPI, вместо того, чтобы послушать нормальных людей.
>Ох уж эти форчково-школьные ракомемы. Тебе лет-то сколько вообще?
Мне 27. При чем тут мемы я не понял.
>>678931
Ах, да.
> POSIX says that the behavior of mprotect() is unspecified if it is applied to a region of memory that was not obtained via mmap(2).
Так что, для надёжности, замени
UC w[100];
на выделение куска памяти через mmap(). Заодно и флаги, разрешающие исполнение укажешь при вызове mmap().
Что это? Написано он устанавливает защиту на участок памяти, а не снимает. Пример не понял.
>>678936
> Написано он устанавливает защиту
> mprotect() changes protection
Что-т ты пиздишь.
> Пример не понял
Забей на mprotect(), выдели место, куда будешь копировать код функции, с помощью mmap() с флагами PROT_EXEC, PROT_READ и PROT_WRITE
>Что-т ты пиздишь.
Да. Случайно.
>Забей на mprotect(), выдели место, куда будешь копировать код функции, с помощью mmap() с флагами PROT_EXEC, PROT_READ и PROT_WRITE
Щас сделаю.
>Щас сделаю.
Заметь, я перечислил не все флаги, которые тебе будут нужны. Только те, которые сделают возможным запись и исполнение.
Ну и да, mmap() это POSIX. Если у тебя сперма, тот там свои функции для управления защитой памяти.
Будет полезно: http://eli.thegreenplace.net/2013/11/05/how-to-jit-an-introduction
Эти картинки. Не могу поверить, что ЭТИ ебонаты уже в профессии.
А как это сделано у других? JIT который выше кидали вроде что-то похожее делает. И это ведь не зависит от компилятора? Только типа процессора и ОС?
То, что я выше кидал, это не особо про JIT. Это про то, как правильно выделить память под запись в неё машкода и выполнение оного.
Я в это не вникал. Просто прочитал по диагонали и посмотрел как код этот вставлять.
>>679011
Уже гуглю, но что там конкретно искать?
http://eli.thegreenplace.net/2012/11/24/life-of-an-instruction-in-llvm/
http://eli.thegreenplace.net/2013/02/25/a-deeper-look-into-the-llvm-code-generator-part-1
Нихуя не понял кроме того что пишут на вики про промежуточный код. Наверно хватит на сегодня. Всем спасибо.
Кстати, я только в консольке код писал. Не могу в гуи, еще всяких терминов типо тех.лид, фронт енд, бек енд не понимаю.
сега прилипла
А еще STL не очень знаю.
Учи CUDA, OpenCL и на апворк.
Толсто, братиш.
Нахуя ты книги то читаешь? Ты код пиши.
Я так понимаю, можно официально признать, что код на winapi настолько большой, что его не получилось написать за вечер?
Вопрос, что это за такой "элемент после конца" и нахрена он нужен? Почему не возвращается указатель (итератор) просто на последний элемент? И, тем более, в учебнике сказано, что значение этого самого "элемента после конца" не может быть получено.
Короче, что это за хуйня такая? Я так понимаю, если у нас массив типа int (кстати, сколько там оно занимает? Ну пусть будет 4 байта), то "указатель на элемент после конца массива", это то же самое, что и указатель на последний элемент + 4 байта?
В чем смысл этого понятия, я не понимаю. Может кто-нибудь объяснить?
Пикрелейтед, одно из упоминаний.
>>678302
>Сценарий 1.
>-Смотри, что у меня!
>-Ладно, давай посмотрю. Принимает. Не запускается чёт, Qt5Core.dll какой-то требует.
>-Эээ... Ладно, подожди, я кинуть ещё.
>-Скучающий вздох Ладно, давай. Принимает. Опять требует что-то.
>-Ой-ой, ща.
>-Да ладно, забей, потом как-нибудь.
Перед нами школьник. Сам также грустил лет пятнадцать назад.
Маня, в какой класс ходишь?
В основном указатель на следующим за последним элементом возвращается из соображений удобности.
Итератор же это обобщение указателя - штука, которая позволяет обойти элементы заданного множества. Открой документацию для приличия. Там ты увидишь различные классы итераторов, которые по своим свойствам сильно отличаются от обыного указателя.
Что за шарага с таким учебником?
Я понимаю, что такое итератор и что такое указатель.
Я к тому, что в чем тут удобство, возвращать указатель (итератор) на элемент (которого на самом деле нет) после последнего?
В том, что тебе цикл for проще писать или где?
Учебник кстати из шапки, вот этот:
Стэнли Липпман, Жози Лажойе и Барбара Му - Язык программирования C++ (2014)
Неужели придумали еще одну сущность ("элемент после конца") только ради того, чтобы цикл for писать было "удобно"?
Как по мне, так это полный пиздец, если так.
>еще одну сущность
А как ты по другому последний элемент узнаешь?
Ещё можно по аналогии с си-массивами делать. Массив размером 5. Сдвиг от нулевого элемента может быть от 0 до 4. А 5 это элемент после последнего.
У нас в шараге Страуструп позиционировался как оче сложный, что-то на уровне Кнута. Ботаны читали Шилдта, обычные студенты - методичку.
Ну смотри, на пикче, которую я скопипастил из учебника написано про позицию за последним элементом массива или контейнера.
Т.е. последний элемент (про который ты говоришь), это элемент, находящийся на позиции: результат функции end() - 1. Не проще ли сразу было сделать эту функцию, возвращающей итератор или указатель на последний элемент?
Я пытаюсь понять, зачем нужен "элемент идущий после последнего" вместо "последний элемент"?
Нахуя мне элемент, идущий после последнего? Согласно тому же учебнику, я его значение получить не могу. Это просто итератор, либо указатель, указывающий куда-то за конец контейнера либо массива.
На-ху-я он мне нужен? Он мне нахуй не нужен. Покажите, если кто знает, где он нужен, кроме цикла for.
Я не понимаю.
Как часто ты используешь последний элемент? Покажи программу где end() возвращающий итератор на последний элемент полезнее чем тот end() который сейчас. И есть всякие push_back которые упрощают работу с разными контейнерами.
У меня это произошло осенью. С друзьями мы сидели в клубе "Golden Dolls", болтали, пили абсент, смотрели стрип-шоу, когда ко мне подошел Ганс и сказал:
- Пора, мой друг.
Я сразу понял, что он имеет в виду - все-таки готовился все лето - но переспросил на всякий случай:
- Пора - что?
- Пора валить программиста! - засмеялся Ганс.
Мы пошли на улицу, на парковку, где стоял джип Ганса. Он открыл заднюю дверь, и я увидел разложенное оружие - пистолеты, снайперскую винтовку, разнообразные карабины, дробовики, автоматы - целый арсенал.
В нашем тире я учился стрелять из всех видов оружия, даже из тех, которых тут не было, но сейчас - от неожиданности - не знал, что выбрать. Ганс заметил мою нерешительность.
- Из автомата валить программиста неинтересно, - сказал он. - Разве что из "узи", но тут надо уметь разрезать его пополам, тогда прикольно. А так просто решето получается - некайфовое. Из пистолета - тоже требуется навык, чтобы засадить программисту пулю между глаз. Снайперская винтовка - для девчонок. А вот карабин большого калибра - самый то. Да еще пуля с тупым наконечником. Если засадить программисту в голову, она разлетается на кусочки, как арбуз, а если в грудь - он смешно так подпрыгивает и отлетает. Так что советую - карабин.
Я послушался совета Ганса - все-таки он уложил уже с десяток программистов, одного даже из арбалета. Поэтому взял карабин и мы поехали на окраину. За руль джипа, конечно, сел я.
Программисты ездят на метро, велосипедах и дешевых машинах-развалюхах. Поэтому и ловить их надо в соответствующих местах. Я выбрал метро. Время было позднее, программисты уже вернулись с работы, попадались в основном старичье, стайки негламурной молодежи с банками пива в руках, противные тетки. Я уже думал ехать к район хрущевок, где программиста можно найти, когда он выносит мусор, но тут повезло. Из метро вышел одинокий программист. То, что это он, я понял сразу - средних лет, одетый в какое-то потертую куртку китайского или турецкого производства - буэээ! - стоптанные ботинки, какая-то кожаная кепка на голове. С ноутбуком в руке. Да, да, с ноутбуком!
Он прошел мимо ларьков, свернул за угол дома, и пошел через площадку в сторону большого длинного дома, в котором программисты живут как в муравейнике в том, что они называют квартирами.
Так как я заранее покатался вокруг этой станции метро, я знал, что надо делать. С места врубил на полную, выскочил на площадку между домом и программистом, ударил по тормозам прямо на протоптанной программистами тропинке и одновременно развернул машину на 180 градусов, так, что моя дверь оказалась как раз напротив него. Программист замер, не понимая что происходит. А я уже взял зажатый между коленями карабин, передернул затвор, открыл дверь "джипа" и выскочил из машины. Все это заняло у меня от силы две-три секунды. Программист ошалело смотрел на меня, и тут я к своей радости увидел на нем очки. Во повезло-то, успел подумать я. И всадил ему пулю в грудь. Программист взмахнул руками, ноутбук упал в сторону, а сам он улетел метра на два или три от меня - вот что значит большой калибр! - и лишь его кепка плавно спланировала на то место, где он только что стоял.
С другой стороны джипа вышел Ганс, неторопливо подошел к лежащему в грязи программисту:
- Точно, с одной пули, молодчина!
Он вернулся к машине, протянул мне фляжку с коньяком. Было прохладно, коньяк пришелся очень даже. А сам Ганс стал обзванивать всех, кого надо. Сначала прилетела съемочная группа "НТВ", довольно симпатичная девушка-журналист расспросила меня, какие чувства я испытываю после того, как убил своего первого программиста. Я от волнения плел что-то невнятное - потом, когда смотрел в наших новостях по кабельному, было даже немного стрёмно, но мама сказала, что я выглядел очень мужественно с карабином в руках. Потом приехала полиция, Ганс дал им по 100 баксов, старшему пятьсот, и они принялись заниматься формальностями. Уже после того, как труповозка увезла тело программиста, ко мне подошел старший, кажется, капитан, отдал честь и сообщил, что программиста звали Степанов, и работал он на заводе C++'ником. Даже Ганс позавидовал мне - такого кристально чистого программиста не всегда удается завалить.
Тут принялся разрываться мой телефон. Позвонил отец, поздравил меня с первым, сказал, что завтра меня ждет сюрприз. Сюрпризом, кстати, оказался новенький "Бентли". Потом начали звонить друзья - сообщение о том, что я завалил программиста, да еще такого, быстро разлетелась по всему твиттеру.
Когда мы вернулись в клуб, там началось просто ликование. Знакомые и незнакомые бизнесмены, политики, депутаты, сенаторы, журналисты, писатели, визажисты, музыканты и певцы подходили ко мне, жали руку, целовали, оставляли свои визитки. Позвонил лучший друг отца, который тогда работал вице-премьером по социальным вопросам и сказал, что он гордится, что у его друга вырос такой замечательный сын.
Праздновать дальше мы потом поехали в наш поселок на Рублевке и вот там ко мне подошла наша соседка, отдыхавшая у родителей после учебы в Гарварде. Я давно на нее положил глаз, но до этого дня она казалась мне Снежной Королевой. А тут подошла сама и прошептала на ухо: "Я хочу тебя".
И потом, уже под утро, у меня был с ней такой секс, какого никогда еще не было в моей жизни. Все-таки не зря говорят, что когда уложишь программиста - потом такая эрекция, как после травы или кокса. А уж тем более - после первого программиста.
У меня это произошло осенью. С друзьями мы сидели в клубе "Golden Dolls", болтали, пили абсент, смотрели стрип-шоу, когда ко мне подошел Ганс и сказал:
- Пора, мой друг.
Я сразу понял, что он имеет в виду - все-таки готовился все лето - но переспросил на всякий случай:
- Пора - что?
- Пора валить программиста! - засмеялся Ганс.
Мы пошли на улицу, на парковку, где стоял джип Ганса. Он открыл заднюю дверь, и я увидел разложенное оружие - пистолеты, снайперскую винтовку, разнообразные карабины, дробовики, автоматы - целый арсенал.
В нашем тире я учился стрелять из всех видов оружия, даже из тех, которых тут не было, но сейчас - от неожиданности - не знал, что выбрать. Ганс заметил мою нерешительность.
- Из автомата валить программиста неинтересно, - сказал он. - Разве что из "узи", но тут надо уметь разрезать его пополам, тогда прикольно. А так просто решето получается - некайфовое. Из пистолета - тоже требуется навык, чтобы засадить программисту пулю между глаз. Снайперская винтовка - для девчонок. А вот карабин большого калибра - самый то. Да еще пуля с тупым наконечником. Если засадить программисту в голову, она разлетается на кусочки, как арбуз, а если в грудь - он смешно так подпрыгивает и отлетает. Так что советую - карабин.
Я послушался совета Ганса - все-таки он уложил уже с десяток программистов, одного даже из арбалета. Поэтому взял карабин и мы поехали на окраину. За руль джипа, конечно, сел я.
Программисты ездят на метро, велосипедах и дешевых машинах-развалюхах. Поэтому и ловить их надо в соответствующих местах. Я выбрал метро. Время было позднее, программисты уже вернулись с работы, попадались в основном старичье, стайки негламурной молодежи с банками пива в руках, противные тетки. Я уже думал ехать к район хрущевок, где программиста можно найти, когда он выносит мусор, но тут повезло. Из метро вышел одинокий программист. То, что это он, я понял сразу - средних лет, одетый в какое-то потертую куртку китайского или турецкого производства - буэээ! - стоптанные ботинки, какая-то кожаная кепка на голове. С ноутбуком в руке. Да, да, с ноутбуком!
Он прошел мимо ларьков, свернул за угол дома, и пошел через площадку в сторону большого длинного дома, в котором программисты живут как в муравейнике в том, что они называют квартирами.
Так как я заранее покатался вокруг этой станции метро, я знал, что надо делать. С места врубил на полную, выскочил на площадку между домом и программистом, ударил по тормозам прямо на протоптанной программистами тропинке и одновременно развернул машину на 180 градусов, так, что моя дверь оказалась как раз напротив него. Программист замер, не понимая что происходит. А я уже взял зажатый между коленями карабин, передернул затвор, открыл дверь "джипа" и выскочил из машины. Все это заняло у меня от силы две-три секунды. Программист ошалело смотрел на меня, и тут я к своей радости увидел на нем очки. Во повезло-то, успел подумать я. И всадил ему пулю в грудь. Программист взмахнул руками, ноутбук упал в сторону, а сам он улетел метра на два или три от меня - вот что значит большой калибр! - и лишь его кепка плавно спланировала на то место, где он только что стоял.
С другой стороны джипа вышел Ганс, неторопливо подошел к лежащему в грязи программисту:
- Точно, с одной пули, молодчина!
Он вернулся к машине, протянул мне фляжку с коньяком. Было прохладно, коньяк пришелся очень даже. А сам Ганс стал обзванивать всех, кого надо. Сначала прилетела съемочная группа "НТВ", довольно симпатичная девушка-журналист расспросила меня, какие чувства я испытываю после того, как убил своего первого программиста. Я от волнения плел что-то невнятное - потом, когда смотрел в наших новостях по кабельному, было даже немного стрёмно, но мама сказала, что я выглядел очень мужественно с карабином в руках. Потом приехала полиция, Ганс дал им по 100 баксов, старшему пятьсот, и они принялись заниматься формальностями. Уже после того, как труповозка увезла тело программиста, ко мне подошел старший, кажется, капитан, отдал честь и сообщил, что программиста звали Степанов, и работал он на заводе C++'ником. Даже Ганс позавидовал мне - такого кристально чистого программиста не всегда удается завалить.
Тут принялся разрываться мой телефон. Позвонил отец, поздравил меня с первым, сказал, что завтра меня ждет сюрприз. Сюрпризом, кстати, оказался новенький "Бентли". Потом начали звонить друзья - сообщение о том, что я завалил программиста, да еще такого, быстро разлетелась по всему твиттеру.
Когда мы вернулись в клуб, там началось просто ликование. Знакомые и незнакомые бизнесмены, политики, депутаты, сенаторы, журналисты, писатели, визажисты, музыканты и певцы подходили ко мне, жали руку, целовали, оставляли свои визитки. Позвонил лучший друг отца, который тогда работал вице-премьером по социальным вопросам и сказал, что он гордится, что у его друга вырос такой замечательный сын.
Праздновать дальше мы потом поехали в наш поселок на Рублевке и вот там ко мне подошла наша соседка, отдыхавшая у родителей после учебы в Гарварде. Я давно на нее положил глаз, но до этого дня она казалась мне Снежной Королевой. А тут подошла сама и прошептала на ухо: "Я хочу тебя".
И потом, уже под утро, у меня был с ней такой секс, какого никогда еще не было в моей жизни. Все-таки не зря говорят, что когда уложишь программиста - потом такая эрекция, как после травы или кокса. А уж тем более - после первого программиста.
До этого я читал книжку (дошел до раздела по STL и решил, что надо бы обратиться к более современным трудам) по крестам 2004 года от Роберта Лафоре. Там такой функции не упоминалось, да и вообще такого понятия не было.
Поэтому в паре программ, которые я написал, эту вещь я не использовал.
Я к тому, что с точки зрения новичка (кем я являюсь), непонятно, нафига придумали эту сущность.
Для меня вот это словосочетание "элемент следующий после конца контейнера" это просто абстракция. Причем, так оно и есть. И я не могу понять, почему сделали именно так, а не иначе.
Неужели только для того, чтобы цикл for писать типа удобнее?
>Неужели только для того, чтобы цикл for писать типа удобнее?
Да. В таком end'е смыла и пользы больше чем в другом.
Ну ОП раньше графоманил, я тоже решил попробовать.
> Неужели только для того, чтобы цикл for писать типа удобнее?
Да. Для итератора может быть не определена операция >, как тогда узнать, в какой момент надо прервать цикл?
С невалидным последним элементом цикл выглядит так:
for (auto it = begin(); it != end(); ++it){...}
А последний элемент валидный, то нужно писать специальный метод, чтобы узнать, когда он будет невалидным.
for (auto it = begin(); it.vaild(); ++it){...}
Сделать-то так можно было, но ребятам больше понравилось первое решение. В принципе, я видел и второй вариант в одном коммерческом коде. Это всего лишь решение, а не догма или правило.
> зачем нужен "элемент идущий после последнего" вместо
По каким-то причинам было принято решение что функционал итератора (в том числе синтаксис) должен полностью повторять функционал указателя (и естественно быть шире). Вполне возможно это для того чтобы функции из <algorithm> можно было без всяких промежуточных сущностей использовать с указателями. Тоесть можно использовать std::sort как с итератором, так и с старым добрым указателем на массив. А исторически (почему-то) так сложилось что указатели перемещают именно таким образом - проверятся не то что указатель показывает на последний элемент, а то что на элемент следующий за последним. Эта хуйня еще с С тянется.
На ОП-пике Николай II и Ленин?
ОП-пик символизирует террор нового ОПа, шапку, которую мы потеряли, а также предвещает 70 лет сосания для всех анонов ИТТ.
Только си и гну.
делал по видео гайду https://www.youtube.com/watch?v=aTZIJc-_nq4
и получил пикрезультат
где там прописывать кодировку?
сразу не посылать в хуй, я только начинаю познавать этот мир
Работаю в топовой компании. Сую мнение, что самый лучший язык - это си-п-п, а не си. Работаю и с тем и с тем, но код на си-п-п всегда проще, понятнее, и быстрее. Всякие джавы , питоны, и си шарп - вообще параша.
Только си-п-п и гну.
Прошлый ОП, плиз.
Работаю в топовой пекарне. Сую мнение, что самый лучший хлеб - это черный, а не белый. Работаю и с тем и с тем, но черный хлеб всегда пропекается лучше, поджаристее и быстрее. Всякие булки , коржики, и пицца - вообще параша.
Только черный хлеб и вода.
Схуяли? Я так и не понял
Нет.
Ну присвое значение одной переменой в другую. Или поясните ему как в cin курсор сдвинуть что-то типа seek а то я умею
да но мне надо не чтобы я вводил два раза число в разные переменные. А чтобы я один раз с клавы ввел число, и мне его записало сразу в int и в ch! на 2 в 2 а 1 в 2
Работает. https://ideone.com/lEEftE
Только как ты собрался читать числа? И зачем? Ведь если считывать число как чар, то он первую цифру считывает.
другой порядок! сначало int потом char, а то как ты собрался число например 930 вводить. Ошибочку получишь.
Короче. Вводи число. Проверяй поток на fail. Если fail, то в потоке символ. Вызывай clear и вводи символ. Потом преобразуй и всё. Правда я не знаю зачем тебе это нужно.
просто чтобы знать это :) и что int передает если введен символ? как проверить?
в переменной будет старое значение. В потоке будет fail.
>как проверить?
int a = 0;
char ch = '\0';
std::cin >> a;
if(std::cin.fail())
{
std::cin.clear();
std::cin >> ch;
a = static_cast<int>(ch);
}
else
{
ch = static_cast<char>(a);
}
Как-то так.
cin.fail() значит? указывает на несоответствие введеного значения относительно типа?
int a = 0;
char ch = 's';
cin >> a;
// вот только чтобы тут одновременно значение записывалось в и в "a" и в "ch"! т.е. в обе переменные! а вводить пришлось только 1 раз.
>указывает на несоответствие введеного значения относительно типа?
Нет. Проверяет failbit и badbit. Что в каком случае ставится гугли сам.
thx
вот меня интересует что например при вводе 2 запись была и туда и туда, при ошибке с любой переменных запись только в ту что без ошибки
ну, по-сути да, но хочется просто узнать возможно ли без "дублирование" (i=a;) и т.д. сразу в две переменные разных типов считывать
http://honermann.net/blog/?p=3
>но хочется просто узнать возможно ли
Нет. Для таких глупостей инструментов не завезли. Сам пиши если надо.
Модули не рассматривались на этой конференции и modules TS не имеют сейчас никаких установленных сроков работы. Плюс есть некоторые срачи на форуме стандартизации по поводу этой фичи. С другой стороны clang и MSVC уже сделали кое-какие реализации модулей, что вселяет надежду, что на следующей конференции рабочая группа уже будет иметь какой-то опыт использования этой хуерги и может быть к чему-то прийдет.
Но пока хз
ребят в чем беда такой проверки? по идее должно же заканчивать цикл только когда temp[0]==numbs[0] и т.д. правильно? почему тогда просто выходит с цикла?
>while(temp[0]!=numbs[0] && temp[1]!=numbs[1] && temp[2]!=numbs[2] && temp[3]!=numbs[3]);
>;
Да ну нахуй.
std::equal
ооо, вот оно что, чаю этому господину. Помогла замена && на ||... Сначало не понял почему, но потом сразу допер..... Пока a1!=b1 ИЛИ a2!=b2 ...т.е. как сразу несколько значений для выхода, а если && то при исполнении любого выйдет из цикла, верно? или я опять не прав? )
Consolas + monokai
вопрос к знатокам
я интересующийся
есть ли путь программить на c++ кроссплатформенные приложения?
что?где? и как для этого нужно.
или как я понял c++ это сугубо компиляторо зависимый язык как в принцепе и все остальные т.е. на каждой платформе свой c++ и подружить их чтоб они понимали друг друга весьма проблематично, так?
ЕСТЬ ЛИ КРОССПЛАТФОРМЕННЫЙ КОМПИЛЯТОР C++?
или тогда кроссплатформенная исполняемая среда
типо .exe'шник только для всех платформ
inb4:азазазаз всех затралел
Как это противоречит, что в 17 стандарте этого не будет? Тащемта разработчик ranges сказал, мол вы че там охуели, оно еще сырое
>ranges
Что за ranges? Это типа для того, чтобы написать range(max), range(min, max) и range(min, max, step) нужно разрешение Комитета и благословление Страуструпа?
он жи чисто под линупс
ответвление вида mingw уже другое жи
а универсальный исполняемый файл для с++ на всех платформах есть?
Скачал visual studio. А оно мне и грит, мол, ты - хуй, винда у тебя старая и вообще эксплорер 11й не стоит. С хуев, думаю, старая, если 7я? Ну ладно, скачал эклипс, какой-то хеллоу ворлд из книжки туда переписал. А он мне такой "бинари нот фаунд". Какие на хуй бинари? Мне никто не говорил, что надо писать бинари. Я, блджад, не знаю, что это такое.
Мне, наверное, не надо пытаться в кресты, да?
Тебе надо перестать смешивать язык и IDE.
Начни скромно, аскетично, пох-ристиански: Notepad++ или ещё что с постветкой, компиль командой из консолечки. Авось за твое смирение Бог будет милостив к тебе.
Работаешь кем? Почему ты сразу не попробовал в консоли компилировать?
Конструктор работает, методы работают, а у этого значит "???", что за язык-то такой нипонятный!
Переустанови винамп.
class Sqmatrix{
int x;
int (звездочка)(звездочка)elem;
public:
Sqmatrix();
Sqmatrix(int x);
~Sqmatrix();
void show();
void opred();
void transpor();
};
Sqmatrix::Sqmatrix():x(2),elem(new int [x]) {
for (int i = 0; i < x; i++) {
elem = new int[x];
}
for (int i = 0; i < x; i++) {
for (int j = 0; j < x; j++) {
elem[j] = j + i 2 + 1;
}
}
}
мэйн
cin >> max_size;
Sqmatrix arr = new Sqmatrix*[max_size];
arr[0] = new Sqmatrix();
for (int i = 0; i < max_size; i++) {
delete []arr;
}
delete[] arr;
}
class Sqmatrix{
int x;
int (звездочка)(звездочка)elem;
public:
Sqmatrix();
Sqmatrix(int x);
~Sqmatrix();
void show();
void opred();
void transpor();
};
Sqmatrix::Sqmatrix():x(2),elem(new int [x]) {
for (int i = 0; i < x; i++) {
elem = new int[x];
}
for (int i = 0; i < x; i++) {
for (int j = 0; j < x; j++) {
elem[j] = j + i 2 + 1;
}
}
}
мэйн
cin >> max_size;
Sqmatrix arr = new Sqmatrix*[max_size];
arr[0] = new Sqmatrix();
for (int i = 0; i < max_size; i++) {
delete []arr;
}
delete[] arr;
}
Нет такого. У разных систем разный формат нативного бинаря. Только байткодожоры так умеют.
Windows sdk и из консоли cl.exe
> windows 7
> нет ie 11
Наотключают апдейты, а потом у них не работает нихуя.
Особо код не смотрел, но, как я понял, ты после удаления можешь ещё раз удалить данные (один раз в методе и в деструкторе). После удаления присвой указателю nullptr. Иначе ты пытаешься удалить уже удаленное. А вообще запускай отладчик и смотри на какой строчке вылетает.
>- Из автомата валить программиста неинтересно
>Так что советую - карабин.
>пуля с тупым наконечником
>он улетел метра на два или три от меня - вот что значит большой калибр
Надо ртутный нож было использовать.
Ты создаёшь 1 экземпляр Sqmatrix, а удалить пытаешься 20 штук.
Также:
>delete[]arr;
delete arr;
хотя стоп, вроде все чистит. Спасибо, анон!
Неправда, редистры можно статически линковать поменяв всего лишь одну опцию в параметрах проекта visual studio. Бинарник немного увеличится, но это не проблемма.
std::vector<std::vector<int> > Matritsa(n, std::vector<int>(m));
Можешь std::vector <std::vector <int> > заэмбеддить.
Можешь std::unique_ptr на вектор векторов, если хочешь, чтоб класс потоньше был.
int arr = new int[n];
for(size_t i = 0; i!=n; ++i)
arr = new int[m];
а
int arr = new int[n];
arr[0] = new int[n*m];
for(size_t i = 1; i!=n; ++i)
arr = arr[i-1] + m;
Препод мне рассказывал, что это не правильно, и что так будет утечка. Ебанат конченый.
И да, я помню, как он дрочил на камеру, но видео у него намного лучше, чем у того школьника, который в шапке.
Ну извини. Я кушал вафлю и дотрагиваться до клавиатуры не сильно хотелось, а вкладка с ideone у меня была открыта.
А конкретные пруфы будут? Самому браузить 10гб текста не хочется чёто. В том же google code style везде используется new с delete.
Бля да ну прекрати реагировать на такую толстоту. new и delete появились потому, чтобы не было ошибок при использовании malloc, когда sizeof берется неправильно
Учусь по этому гайду:
>- Еще один - [YouTube] Уроки по С++.1 урок.Как создать программу?
Уже уроверь 5 - циклы.
Поясните мне вот что: есть циклы for, while, do while.
С первым вроде всё ясно.
Со вторым тоже ясно и там можно добавить break.
Но нахуя нужен третий если всё можно сделать в первых двух?
Объясните разницу.
проиграешь
Её в 15 студии-то не завезли, куда там.
Можно попробовать заменить компилятор на последний из Windows SDK, только. Совместимы ли там флаги и тд – другой вопрос.
Когда тебе нужно, чтобы цикл обязательно выполнялся хоть один раз и не хочется ради это велосипедить флаг. По факту, используется редко.
типо питона, жавы, руби и т.д.?
>Библиотека iostreams или ты имеешь ввиду для чего?
Да, для чего это тебе нужно? Если просто потоки, то почему бы не использовать их из стандартной библиотеки. Если для networking, то чего ты сомневаешься в использовании asio? В чем, собственно, вопрос-то?
>Modify the programs entab and detab (written as exercises in Chapter 1) to accept a list of tab stops as arguments. Use the default tab settings if there are no arguments.
Что надо написать-то? Что такое list of tab stops as arguments? Формулировки здесь иногда выносят мозг.
Сейчас, чтобы написать обобщенный код для rvalue и lvalue ссылок, нужно писать так:
>template<typename>
>void f(T&& _t){
> call_overloaded_function(std::forward<T>(_t));
>}
Во-первых, нахуя здесь нужен std::forward, если после сворачивания ссылок _t и так имеет тип либо T&&, либо T&.
Во-вторых, это ебучее сворачивание ссылок приводит к тому, что нельзя написать такой код
>template<typename T> class A{
> typedef T&& RVALUE_REF_T;
>}
с явным намерением выполнить destructive read.
Почему нельзя было нахуй выкинуть сворачивание ссылок и ввести вместо этого явное обозначение универсальной ссылки типа &&&? Тогда бы и std::forward был бы не нужен, и не было бы сраного references collapsing
>Во-первых, нахуя здесь нужен std::forward, если после сворачивания ссылок _t и так имеет тип либо T&&, либо T&.
Уже понял, в случае rvalue, _t будет иметь тип T
Эээ, ты, даун, спутал дебика который предлагает делать гуй на винапи, и адекватных людей, интересующихся околосистемщиной. Как минимум 1 мой коммент про Д. Рихтера не семёновский.
Спалили быдлу годноту, а он еще ебало воротит. Ну и иди на хуй, дегенерат.
https://github.com/pr-hats/2ch.hk-pr-Hats/wiki
До завтра вылизываем новую шапку (при объединении могли проскочить ошибки), дальше делаем перекат и переходим на новую систему. ОП-стихоплет должен поторопиться, если хочет успеть на этот поезд, лол.
Ебать, мочератор понял что сказанул хуйню про криптеры и потёр посты. Крудошлёп не палится.
Несущественно же, можно сделать со спойлерами, если слишком большая.
>Общепризнанно самая продвинутая и удобная IDE, не имеющая равных по части автодополнения и возможностей отладчика.
>Visual Studio
>Visual
>Studio
Более хуевое автодополнение я видел только в notepad'е
Да нихуя, сейчас всего две или три IDE поддерживают автодополнение для STL C++11 из коробки. И в студии оно наименее кривое.
Алсо, не добавить QtCreator, Eclipse CDT и XCode в список основных, это надо уметь.
Рукожопый, плиз
> И сейчас оно только сильнее лагать начало.
Может пора свой калькулятор на что-то адекватное поменять?
Ну хуй знает. У меня на исходниках boost прекрасно пашет. Ты туда мамку свою штоле загрузил, что оно сломалось?
Qt это ебаный чужой, который надел на себя C++, а внутри пиздец с велосипедами и макрогенерацией.
>макрогенерацией
Как что-то плохое. Главное, что все правила ООП не нарушены, а наоборот выполнены.
>>680846
Машины у всех dev'ов были i7 haswell. Размер кода не помню, компилилась эта байда 1 час 20 минут на -j8. Единственной IDE, которая нормально жрала исходники, была eclipse cdt. Как по скорости анализа, так и по функциональности и скорости навигации. Как там type hierarchy с call hierarchy поживают на студии, лол? Рефакторинг тоже тормозил и частенько лажал: вот это вообще самая мякотка была, откатывать эти изменения. Короче, студия была только у ценителей работы без ассиста, но зато с нормальным дебагером.
Но я не ОП.
>Но нахуя нужен третий если всё можно сделать в первых двух?
Нахуя вообще циклы, я и на goto могу всё налапшевать.
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md
ЗАПИЛИТЕ В ШАПКУ
Там любой даун найдет ответ на вопрос.
https://invite-me-to-2chpr.herokuapp.com
>qtcreator
Всё правильно делаешь, ведь это фреймворк, не имеющий аналогов. Успехов, хотя, думаю, трудно будет пересесть на кресты.
>Всё правильно делаешь, ведь это фреймворк, не имеющий аналогов.
Через интернеты непонятно, троллишь ты или нет.
https://2ch.hk/pr/res/681348.html (М)
https://2ch.hk/pr/res/681348.html (М)
https://2ch.hk/pr/res/681348.html (М)
Мод, перекатывай шапку.
1) Темлейты тормозят компиляцию - значит можно не бояться остаться без работы, именно поэтому все любят и боготворят буст!
2) РТТИ сосёт, потому что делает не то что от него тербуется - значит можно не бояться остаться остаться без работы, необходимо пробовать велосипеды с первых трёх ссылок на стэкоферфлоу.
3) Классы сосут, потому что надо выкладывать хэдеры - значит можно не бояться остаться без работы, нужно будет засунуть каждый класс большого проекта в пимпл.
Статей нормальных не нашёл. Отправлять команды на javascript я знаю как, но как можно принимать команды от javascript(может можно каллбеки какие-поставить и т.д.)?
Как добавить и удалять так, чтобы не терять указатели? В гугле нашел только через массивы
Пробовал вот так : http://pastebin.com/67huiePb
Осторожно, C++/CLI, но видно что то теряю
удвою
Вы видите копию треда, сохраненную 27 марта 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.