Это копия, сохраненная 14 марта 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
И прочитал все доки к boost,
Стандарт запомнил наизусть
И в метамагию проник, -
Глупец! Я знать не знал о том,
Что крестоблядка ждет потом.
Три дня на лаврах почивал,
Но не успел войти во вкус,
Как комитет по C++
Очередной стандарт принял,
И новых правил в нем до ста!
Я Бьерна новый том достал...
Зубрю, дрочу кресты - и вот
Тому пошел десятый год.
Считаю байты я всегда,
Гоняю их туда-сюда,
Лбом облысел, лицом зарос,
Два года мучает понос,
Хлебаю борщ и обнищал,
Но так всех тайн и не познал.
Входи, ньюфаг! Быть может, ты
Сумеешь обуздать кресты?
Здесь рады тем, в ком страха нет,
Кто не съебет в питонотред,
Почуяв местный мрачный дух.
Ты с нами, или ты петух.
TL;DR Читаешь https://goo.gl/kVaela , делаешь примеры и суешь в http://ideone.com , ошибки копипастишь в гугл, непонятное ищешь в предыдущих тредах, спрашиваешь в этом треде, если не нашел. Если тебя послали на хуй или не ответили, то ты спросил платину, читай предыдущие треды внимательнее. И прочитай FAQ, расположенный ниже, в нем много полезного.
Унаследованная памятка:
Вопросу по синтаксису идут на хуй.
Лабы идут на хуй.
"Как мне сделать Х на чистых крестах без библиотек" идут на хуй.
Все идут на хуй.
Хейтер сосет члены на пару со своей мамашей.
Тег [code] работает через жабаскрипт-костыль: https://github.com/ololoepepe/MakabaCode
Старший брат: >>629715 (OP)
Предыдущий: >>644656 (OP)
FAQ:
Q: Почему стоит использовать именно C++?
A: Ни один язык не идеален, но по совокупности киллер-фич C++ оставляет все остальные языки позади. Вот основные три:
+ C++ действительно быстрый - по скорости они вместе с C с большим отрывом уделывают любой другой язык. Замедление относительно C находится в районе 0-20% а в ряде случаев C++ оказывается даже быстрее, причем проявляется только при использовании высокоуровневых конструкций (в крестах ты никогда не платишь за то, чего не используешь).
+ C++ один из наиболее выразительных и мощных языков, позволяющий использовать большинство существующих парадигм. Его философия построена на минимальном ограничении программиста в выборе методов и инструментов простреливания ноги решения задачи.
+ C++ по-настоящему популярен. На нем написаны десятки тысяч приложений и миллиарды строк кода, о нем написаны сотни книг, он до мельчайших подробностей документирован и стандартизован. Используя C++, ты никогда не останешься без работы или поддержки комьюнити.
Q: Но он же давно устарел!
A: Современный C++ весьма далек от языка, которым он был в 1998 году. В настоящее время кресты живее всех живых, их развитие движется семимильными шагами, а новые стандарты принимаются каждые три года, сохраняя при этом полную обратную совместимость с предыдущими. К сожалению, из-за обилия некачественной литературы по крестам, в которой игнорируются новые средства языка, бытует мнение о его "несовременности".
Q: Сейчас все пишут на %languagename, а кресты сосут у него!
A: Нужно понимать, что используемый язык должен соответствовать поставленной задаче. Никому не придет в голову писать на C++ скрипты или веб-фронтенд, но лишь немногие языки могут соперничать с ним по разнообразию решаемых задач.
Q: Окей, я решил вкатиться. Какие же книги мне читать?
A: Специально для тебя аноны /pr собрали уникальную коллекцию отборной литературы по крестам. Только лучшие книги, последние издания, без хуев! Выбирай категорию и обмазывайся:
Для нюфань:
Учебники для начинающих. Все примерно одинаковой годноты, читать имеет смысл только какой-нибудь один, который больше приглянется.
Стэнли Липпман, Жози Лажойе и Барбара Му - Язык программирования C++ (2014) - https://goo.gl/kVaela
Стивен Прата - Язык программирования C++ (2012) - https://goo.gl/z7kA8u
Бьерн Страуструп - Программирование. Принципы и практика использования C++ (2011) - https://goo.gl/nAFUXa
<устарело> Герберт Шилдт - C++. Базовый курс (2010) - https://goo.gl/qMLAFl
<устарело> Роберт Лафоре - Объектно-ориентированное программирование в C++ (2004) - https://goo.gl/QvjR6x
Учимся не писать говнокод:
Книги про основные подводные камни для тех, кто осилил предыдущий пункт. Следует пролистать все.
Скотт Мейерс - Эффективное использование C++ (2005) - https://goo.gl/wsDXGz
Скотт Мейерс - Наиболее эффективное использование C++ (1996) - https://goo.gl/tHa0tO
Скотт Мейерс - Эффективный и современный C++ (2015) - https://goo.gl/Im8VYQ
Скотт Мейерс - Эффективное использование STL (2002) - https://goo.gl/QtS8Dc
Герб Саттер и Андрей Александреску - Стандарты программирования на языке C++ (2005) - https://goo.gl/Cpk4YR
Проектирование:
Следует пролистать все перед переходом от лаб к написанию настоящего софта.
Последний пункт есть квинтэссенция ГИБКОСТИ, поэтому стоит прочитать его в любом случае, чтобы охуеть от того, как можно делать.
Ален Голуб - Веревка достаточной длины, чтобы выстрелить себе в ногу (2001) - https://goo.gl/fBmuxp
Джеймс Коплиен - Программирование на C++ (2005) - https://goo.gl/Y1WGdU
Андрей Александреску - Современное проектирование на C++ (2002) - https://goo.gl/e1V5BC
Ахтунг! Предыдущие два раздела дополняют, а не заменяют классические книги о лучших практиках разработки без привязки к конкретному языку (Макконнелл, Uncle Bob, GoF).
Наиболее детальные описания языка:
Бьерн Страуструп - Язык программирования 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/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
Куча других блогов (на ангельском) - https://www.quora.com/What-are-the-best-blogs-on-C++
Большой FAQ по C++ (на ангельском) - https://isocpp.org/wiki/faq
Q: Я не умею читать.
A: Можешь посмотреть какой-нибудь онлайн-курс:
Видеокурс на тытрубе - https://www.youtube.com/watch?v=atVgLRzl3rI
Еще один - https://youtube.com/watch?v=MOpF5lk3cLY
Среди прочих есть несколько курсов по C++ - https://stepic.org
И еще есть вот такое, если проникся:
Видео с CppCon (на ангельском) - https://youtube.com/user/CppCon/videos
Q: Я готов начать погроммировать! Куда мне писать код?
A: Под шиндошс удобно использовать IDE Microsoft™ Visual Studio®. Базовую версию (2015 Community) можно бесплатно скачать отсюда: https://goo.gl/qgAAc6 (русская версия) или https://goo.gl/WIPW9L (ангельская версия). Чтобы начать писать код, нужно запустить Visual Studio, кликнуть "Файл - Создать - Проект - Пустой проект", после создания кликнуть слева правой кнопкой мыши по пункту "Файлы исходного кода", выбрать "Добавить - Создать элемент - Файл C++". Свои хэллоуворлды писать в этот файл, в дальнейшем можно добавить другие файлы и хедеры. Чтобы скомпилировать и запустить проект, нужно нажать "Сборка - Собрать решение", а затем "Отладка - Запуск без отладки".
Под *nix, как правило, уже предустановлен компилятор gcc (если нет, используй sudo aptitude install gcc), так что достаточно сохранить хэллоуворлд, набранный в текстовом редакторе, и выполнить g++ helloworld.cpp и ./a.out. Но удобнее установить какую-нибудь IDE, например, весьма удобную CodeLite (sudo aptitude install codelite codelite-plugins), и работать в ней. Ее также можно использовать и в шиндошс, но тогда сперва придется установить MinGW (http://mingw.org).
Еще у нас есть IDE, призванная похоронить Visual Studio пока не особо получается. Она стоит денег, но можно украсть почти не протухшую версию на торрентах или получить бесплатную лицензию по скану студбилета, если ты студент. Удобные свистелки и перделки присутствуют. Тормоза и баги присутствуют. Кросплатформенность присутствует - https://www.jetbrains.com/clion
Можно также не устанавливать ничего, а запускать свои хэллоуворлды на http://ideone.com, выбрав в левом нижнем углу язык C++14.
Q: Не буду я все делать сам! Подавайте сюда софт, который все сделает за меня и подотрет мне жопу!
A: Без проблем:
Статический анализатор, который умеет находить в коде ошибки и неоптимальные места. Швабодный. Есть плагин для Visual Studio - http://cppcheck.sourceforge.net
Детектор утечек для Visual Studio. Предельно прост в прикручивании - https://vld.codeplex.com
Гугловские утилиты для контроля корректности кода - https://github.com/google/sanitizers
Гугловский фреймворк для автоматизации тестирования - https://code.google.com/p/googlemock
Q: Мне надоело писать велосипеды, какие у вас тут популярные либы?
Q: Нужно зделать %монструозная_хуйня_нейм, но я обосрался от одной мысли о написании ее с нуля, что же делать?
A: Гляди сюда:
boost
Бесспорно, это самый популярный набор C++-библиотек. Не будет лукавством сказать, что C++ во многом обязан популярностью именно ему. Воистину всеобъемлющий, boost способен удовлетворить твои самые скотские фантазии. В нем есть практически все - от математических функций до сетевых компонент, от инструментов тестирования до динамических типов. Функции для работы с твоей мамашей там тоже есть. Разумеется, все это швабодное и работает на любых платформах. И да, boost является своеобразным инкубатором хороших библиотек, поэтому наиболее удачные из них с большой вероятностью можно будет увидеть после принятия очередного стандарта уже как часть стандартной библиотеки.
Недостатком boost можно считать его размер - более 300 мегабайт. Большинство компонент boost не являются независимыми, и попытка использовать один единственный контейнер обернется фактическим подключением 2/3 всего присутствующего в комплекте. Таким образом, если boost не будет использоваться на полную, лучше юзать другие, более специализированные библиотеки.
http://www.boost.org - скачать бесплатно без смс.
http://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
Q: Я прочитал все вышеперечисленное, теперь я гуру! Что дальше?
A: Дальше переходишь по ссылке http://cppquiz.org/ , пробуешь отвечать на вопросы и понимаешь, что ты пока в самом начале пути. Кроличья нора крестов практически бездонна, поэтому продолжать постигать тонкости и детали можно очень и очень долго. В то же время, на этом этапе у тебя должно быть достаточно знаний, чтобы уверенно писать неплохой код. Поэтому читай исходники открытого софта и библиотек, отправляй пулл-реквесты в них, читай книжки по предметным областям и общим методикам разработки, а дальше уже сможешь запилить свой проект или вкатиться в существующий.
#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/
Старые ненумерованные треды:
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/
Старые ненумерованные треды:
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/
Почему шапку не поправил? Столько времени было.
Потому что там исходники буквально все в одну строчку, и не получится по-быстрому изменить форматирование если ты об этом. А еще я хотел сделать все вместе как масштабный перепил шапки, чтобы и книжки новые были, и всякое разное. Поэтому пока ищу и структурирую материалы для впиливания, ну и смотрю реквесты в треде, так что пилите предложения сейчас, господа инб4 дейтелы/выкинуть половину шапки, лол.
>реквесты
Просто напоминаю.
https://arhivach.org/thread/135285/#618225
https://arhivach.org/thread/135285/#618252
Так там фактически то же самое, но другими словами. Я не очень понимаю, зачем делать ссылку на вики, тем более, что там хуй тебе объяснят в деталях. Вроде в одном из тредов вбрасывали, как хейтеры периодически набигают на статьи и меняют формулировки на хейтерские. Там у них даже была здоровая паста типа методички ольгинцев.
>хейтеры периодически набигают на статьи и меняют формулировки на хейтерские. Там у них даже была здоровая паста типа методички ольгинцев.
хотеть видеть!
Стих - объебосный высер
Шапка - нечитаемое говно
Оп - хуй и еблан, почему предыдущую шапку не оставил?
>Нужно зделать %монструозная
Бля да ты гонишь.
Тащемта да, боль. Я хоть и не фанат этих ебанутых стихов, но похуй. Но шапка - это тот еще пиздец. И ладно бы если взял все хорошее от старой шапки и от новой, но нет, хуй! Как последний вахтер выкатил свое поделие с говноразметкой и орфографическими ошибками, которые не фиксит уже 4 тред(!!!).
Может завайпаем?
Где-то в районе десятого треда оно было, сделай на архиваче поиск по "ru.wikipedia" в треде.
>>653144
Это временно же, я просто не успел перепилить разметку. Я во многом не согласен с твоей позицией по поводу шапки а от твоей пунктуации меня вообще трисет, но полностью разделяю мнение, что нужно брать все доступные хорошие идеи и пихать туда. Сожалею, если кому-то мои действия кажутся вахтерскими, я действительно здесь хочу исключительно процветания треда и комфорта для анона. Разметка будет перепилена уже скоро.
>>653147
Мне показалось, что ты троллируешь так. Если ты заглянешь спойлер, твоя жизнь никогда не станет прежней: на самом деле "зделать", "джва" etc - это устойчивые на двачах обороты, пришедшие из известной пасты про корованы. Если ты видишь их, то ты с вероятностью ~1 видишь отсылки, а не проявления безграмотности. Такие дела.
Луркоёб блять. Ещё с специальной олимпиадой ты скорее всего приставал про деления числа на 5 бинарными операциями.
Хуя как ньюфагов порвало. Стих хороший, а ты - баттхёрт
У класса Dungeon есть перегруженный оператор[]
Как к нему обратиться? dungeon[x][y] выдает ошибку: 'std::unique_ptr<Dungeon>' does not provide a subscript operator
Оператора [][] не существует. Я сделал так:
char(ЗВЕЗДОЧКА) Dungeon::operator[](int y)
{
return dungeon_[y];
}
Бля. А если я считаю какие нибудь матрицы 100x100, мне что, в скалу идти?
На шаблонах можно ченить навелосипедить
Делать массив массивов, если тебе не жаль памяти на лишние указатели.
В чем проблема?
const T &operator()(index_t column, index_t row) const;
T &operator()(index_t column, index_t row);
def apply(column: Int, row: Int): T;
def update(column: Int, row: Int, value: T): Unit
>Хотеть такую переменую которая будет вычисляться при обращении к ней.
Придумано 20 лет назад, называется lazy initialization.
>Думаю завести класс с оператор копирования в инт, но как выть со скоростью и получить доступ к элементам другого класса?
А теперь сформируй по-человечески. Или хотябы набрасай код, что ты там имел ввиду.
>lazy evaluation
>>653691
>lazy initialization.
Я не понял. Это сложно. Покажите где просто всё поясняют.
соси хуй, просто ему надо
Самый простой и короткий метод -
int lazy_init(){
static int huec;
return huec;
}
Пример из 2-й ссылки в гугле, если хош поархитектурить, почувствовать себя батей - https://en.wikipedia.org/wiki/Lazy_initialization#C.2B.2B
блядь, помогает, а не подходит
Выбирал что учить: Java или C++. Стал учить C++.
Покурил по STL. Пиздатые контейнеры, итераторы, регэкспики и прочая тележка ништяков, которой я остался доволен, но не тут то было!
Разбился я об задачу сделать GET запрос, хоть куда-нибудь!
Охуеть! даже на ссаной джаве в стандартных библиотеках нарыть можно network!
sys/socket.h
Это для бородатого прпродителя всех современных языков. Хочется обмазываться ООП!
Короче охуев от происходящего и вмазавшись стопарём для верности я пошёл курить boost/asio.hpp
И да, анон, я сделал это!
Но это не паста об успехе. Это паста о БОЛИ!
Неужели нет никакого адекватного способа сделать элементарный http запрос, как в JS? пирикотываюсь с WEB кодинга и интересует синтаксис подобный AJAX
Нет, надо открывать сокет, согздавать tcp соединение, писать туда
>>GET / HTTP/1.0,
заголовки и прочую http-магию!
Потом буфером читать всё приходящее!
Чому бы не сделать что-нибудь типа
string data = http.get("http://2ch.hk"); синхронно, но похуй
?
Я подвыпивший, анон. И учить на нетрезвую голову буст... ОТЛИЧНАЯ ИДЕЯ!
На первом пике тот самый ГОВНОКОД. До сих пор не разобрался с namespace, но всё впереди.
Второй и третий пик -- два стула.
Выбирал что учить: Java или C++. Стал учить C++.
Покурил по STL. Пиздатые контейнеры, итераторы, регэкспики и прочая тележка ништяков, которой я остался доволен, но не тут то было!
Разбился я об задачу сделать GET запрос, хоть куда-нибудь!
Охуеть! даже на ссаной джаве в стандартных библиотеках нарыть можно network!
sys/socket.h
Это для бородатого прпродителя всех современных языков. Хочется обмазываться ООП!
Короче охуев от происходящего и вмазавшись стопарём для верности я пошёл курить boost/asio.hpp
И да, анон, я сделал это!
Но это не паста об успехе. Это паста о БОЛИ!
Неужели нет никакого адекватного способа сделать элементарный http запрос, как в JS? пирикотываюсь с WEB кодинга и интересует синтаксис подобный AJAX
Нет, надо открывать сокет, согздавать tcp соединение, писать туда
>>GET / HTTP/1.0,
заголовки и прочую http-магию!
Потом буфером читать всё приходящее!
Чому бы не сделать что-нибудь типа
string data = http.get("http://2ch.hk"); синхронно, но похуй
?
Я подвыпивший, анон. И учить на нетрезвую голову буст... ОТЛИЧНАЯ ИДЕЯ!
На первом пике тот самый ГОВНОКОД. До сих пор не разобрался с namespace, но всё впереди.
Второй и третий пик -- два стула.
На эмбеддед, ну встраиваемые системы сгодится C++
Или придётся заниматься анусной еблей с его старшим братом Сиииииии?
Охуенно было бы, если бы присутствовал Boost/Qt. Я регулярно отсылаю патчи в два проекта, которыми пользуюсь сам, но я более не нашел ничего нового. На том же гитхабе куча непонятно для чего хуйни вот именно непонятно для чего, а велосипеды писать уже наосточертело.
Работы у меня нет, а руки как-то набивать надо.
Я знаю, что сейчас обосрете, но войдите в ситуацию - я хочу и буду развиваться, но я сбился с пути и не знаю, как мне развиваться дальше.
https://ideone.com/uvYbZS
Да хотя бы перестань жаться на пробелы между операторами. пиздец портянка же.
Но так же компакте. А в иде обычно есть подсветка парных скобок и это не сильно мешает. Никогда не понимал пихать пробелы везде.
Мда.
>Неужели нет никакого адекватного способа сделать элементарный http запрос, как в JS?
>Нет, надо открывать сокет, согздавать tcp соединение, писать туда
Напиши библиотеку. Имплементацией будет вот эта вся ебала с сокетами, а интерфейсом твой метод:
>http.get
Так-то везде сокеты используются, просто в некоторых яп есть библиотеки, которые представляют нормальный интерфейс.
Не поверишь, один коммит я туда впихнул полгода назад.
Но вроде как довольно огромная кодобаза, не считаешь?
Нет, ну понятно, что за красивым http.get(); скрываются сокеты и прочая чёрная магия. Я к тому, что лепить велосипеды есть не самая привлекательная практика.
С другой стороны, чому бы и нет
Ну так возьми библиотеку для этого, ёбана. Я б посоветовал casablanca - оч красыво, асинхронно и с C++11.
ну, можно и эту использовать, наверное.
И ещё вопрос назрел!
А не буду ли я жрать тюрю с крестами?
Джуном на C++ реально ли устроиться где-нибудь за пределами ДС?
>Помогите найти репозиторий на плюсах, со средней по объемам кодобазой, который можно было бы раскурить за неделю, почерпнуть что-нибудь новое для себя, возможно даже отправить пару патчей.
Зачем? Тебе делать нехуй, специально курить левый код? Хочешь найти йоба-архитектурные решения - читай книжки, пиши код в интересных тебе проектах.
Да
>#define ip boost::asio::ip
Не делай так больше.
http://en.cppreference.com/w/cpp/language/namespace_alias
формошлепить - вряд ли. c#, java - это да, а вот qt не очень распространен.
computer vision - возьмут, если найдешь. другие языки редко используются.
геймдев - возьмут, если найдешь. другие языки почти не используются.
научные вычисления - возьмут, если найдешь. тут, чаще всего, похуй, какой язык используется. разве если нужна скорость, тогда точно с++ .
Камчатка.
Какие такие книжки по йоба-архитектурным решениям? В книжках все охуительно просто, да, и примеры такие понятные, потому что оторвано от реальности, там не покажут, где можно использовать хуевый антипаттерн, а где можно сделать вот так уот. Нахуй эти ваши книжки, сколько можно уже их читать?
И кажется я снова обосрался
Нужна IDE, а не компилятор, лол. Точнее, IDE с компилятором и минимумом мозгоебли.
Тогда гугли интерпретатор для c++
DevC++ мало весит, можно писать всякую хуйню сразу как установил.
>Почему именно студия?
Много умных дяденек из умной компании делают IDE вместе с компилятором. Простой и специально для винды. А ещё работает хорошо. Но я пользуюсь кодблоксом.
Думаешь за пару дней не скачается?
Писать код, не имея понятия какие библиотеки ты подключил эээээто блядь вообще как ._.
даже в рашке относительно нормальный интернет есть, если у тебя конечно не беспроводной YOBA-модем
>>653860
>>653871
А там есть автозаполнение и справка? Автозаполнение на уровне того же Codeblocks или PascalABC - чтобы могла предложить разные варианты на введённую часть слова и указать параметры для функции/процедуры.
Есть. На данный момент MVS это как boost - есть всё, но весит много и надо слегка поебаться.
Ну ты не ебанутый ли? Конечно нет, где студия, а где кодблокс!
Это уникальная и запатентованная фича PascalABC. Кодблокс отвалили миллионы чтобы получить разрешение на это.
>Получается, что подключенная библиотека банально позволяет экономить время и место, чтобы не приходилось самому писать все функции и процедуры?
Ага. А ещё если ты не будешь подключать лишнее, то у тебя имена не будут заняты и сможешь например свой класс set написать.
Подозреваю что с этим.
>A: Под шиндошс удобно использовать IDE Microsoft™ Visual Studio®. Базовую версию (2015 Community) можно бесплатно скачать отсюда: https://goo.gl/qgAAc6 (русская версия) или https://goo.gl/WIPW9L (ангельская версия). Чтобы начать писать код, нужно запустить Visual Studio, кликнуть "Файл - Создать - Проект - Пустой проект", после создания кликнуть слева правой кнопкой мыши по пункту "Файлы исходного кода", выбрать "Добавить - Создать элемент - Файл C++". Свои хэллоуворлды писать в этот файл, в дальнейшем можно добавить другие файлы и хедеры. Чтобы скомпилировать и запустить проект, нужно нажать "Сборка - Собрать решение", а затем "Отладка - Запуск без отладки".
Хорошо, попробую, спасибо.
Ну вот и подробный гайд по созданию проекта в студии пригодился. Передайте нелегитимному что он был не прав когда его из шапки выпилил. Представляете как долго пришлось бы ему всё объяснять без этого абзаца в шапке?
Она тяжелая, зараза. Если подключить и один раз поебаться, то удобно, да, подсядешь почище, чем на хмурый, но весь вопрос в том, стоит ли начинать. Если проект мелкий, то она на порядок тяжелее всего твоего кода будет, по весу сравнима с бустом жи.
Дебил ебучий, нету такого оператора как [][] у unique_ptr, написано же черным по белому.
Эээ, ну как (*dungeon)[42], например. Это справедливо для любых методов-операторов не с нормальным именем, а с operator[] или типа того - чтобы использовать, нужно разыменовать указатель. Еще можно написать dungeon->operator [] (42), будет то же самое, но не так красиво.
Короче говоря, работай с unique_ptr как с обычным указателем, в плане доступа они идентичны.
Вгугле охуенное решение.
Заебали бля, идите учить синтаксис - нет оператора [][] в C++. [][] - это два вызова метода "operator []" или (obj[])[] в случае встроенного выражения над указателями.
Чтобы имитировать семантику без использования вложенных объектов хуярьте метод "get(row, col)"
>>653957
пидарас пошел нахуй сука
>>653959
я вот этот >>653416 пост увидел и не стал пробовать.
работает, спасибо всем.
>Представляете как долго пришлось бы ему всё объяснять без этого абзаца в шапке?
https://msdn.microsoft.com/ru-ru/library/4457htyc.aspx?f=255&MSPPError=-2147217396
Соглашусь, что мотивация выпилить этот гайд была неправильной, но я по-прежнему считаю, что этот гайд тут лишний. Этот тред - отправная точка для новичков и место перетереть для опытных господ. Не нужно делать из шапки книгу, в которой все написано. Так ты будешь повторять уже существующие 1001 статьи в интернете, в особенности если это офф. справка из IDE. Достаточно либо дать ссылку возле упоминания IDE в шапке, либо напомнить, что документацию не просто так пишут. Об этом многие почему-то забывают.
лучше больше информации, чем меньше, имхо. можно в гитхаб все закинуть, если слишком мешает.
мимо неоп
Т.е. ты не смог разыменовать смартпойнтер? Так пидарас это ты, избавь мир от себя
Ну ок, пусть будет ссылка на msdn, зойчем копипастить?
что?
В виде гомика
Кстати да, я эту страницу не видел раньше, можно и заменить. Главное, чтобы была какая-нибудь инфа вообще, а то уже раза три вкатывались ньюфаги, у которых то студия не ставится, то проект не создается.
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
Это дурной тон же. Получается не прокси, а такой недоадаптер. Прокси должен полностью имитировать интерфейс, е добавляя ничего лишнего. А адаптер ради переименования одного метода это признак плохой архитектуры.
>Linux: Code::Blocks
АААААААААААААААА БЛЯЯЯТЬ ГАЧАЛЬНИК ЭТОТ ПИДОР ОБОСРАЛСЯ ИДИ МОЦ ЕГО БЛЯДЬ!
Замени хотя бы на QtCreator. Ещё dev-c++ замени.
он у меня завис до того как я успел хэлоуворд скомпилировать и вообще не удобный интерфейс кнопочки нужные не могу найти. у других нуфагов будет также
>>654128
>vim
им ещё пользоваться надо научиться.
Ага.
>>654123
>>654125
>>654126
Я думаю, оптимальным будет CodeLite. Он легкий, с дружелюбным для ньюфага интерфейсом, и автодополнение там самое лучшее среди швабодных IDE.
Ну потому что у тебя ручечки из срачки, не проецируй на всех.
А то
Как-то уже советовал анону. Поставь линукс и поищи там пакеты, которые зависят от qt или boost
У меня и так арчик же.
> long long у на 64 битное
Он может быть равен одному байту и это будет полностью соответствовать стандарту, если все остальные типы тоже по одному байту.
ну я про минимальный размер
я честно пытался вкурить твой листинг, но твой код-стайл... во мне что-то сломалось где-то на тернарном операторе
пссс я тебе пальну оче хитрую технику по оптимизации компелирования...
тебе не нужны инклуды, просто смотришь на объявление нужной тебе функции в заголовочники и копируешь его к себе в самое начало кода.
и да, в зависимости тяни сразу все бинарники, что есть на системе. тогда компилятор сможет съоптимизировать всё это под капотом. и твой конечный бинарник буде тонинькем
> 2017
> если я подключу эту библиотеку, то мой код станет весить больше на 100kb ОБОЖЕ-ИМПЕРАТОР
> оптимизацию конечного бинарника линковщиком до сих пор все игнорили
Что с ним? add поднимает элемент по куче, а del заменяет корень на 0 и топит его ну и возвращает его. sort пока есть элементы выводит корень и просеивает 0 который на его место ложит.
s kakogo ty reshil, 4to long long == 64bit?
eto garantirovano tolko dlya sootv tipov: http://en.cppreference.com/w/cpp/types/integer
mudila
просто расставляй блядские пробелы.
в стране кризис, да. места на жёстких дисках не хватает, надо экономить.
но всё же: пробелов расставляй.
Я ему это еще 200 постов назад сказал. Но он же ебливая пидораха жадная, наверное пакеты моет.
>int next(int n){return (v[n2+1]>v[n2+2])?n2+1:n2+2;};
Как ты это представляешь в одну строчку с пробелами?
Это простая функция которая просто возвращает адрес потомка. Понятно работает и по несколько раз её пересматривать не надо. Вот и сократил. Не мешает когда в одну. А функцию с одним ретурном на 6 строк это не компактно. Я же заблужусь в этом классе потом.
Нахуя мне читать высеры неквалифицированных долбоебов, что я там не видел? Пиздуй лабы делать.
Лол, ну я ведь тоже человек. Бывает, что времени нет читать весь тред, особенно с учетом активности анона. Похоже, бамплимит будет задолго до конца этой недели.
Я все никак не соберусь попробовать его всерьез. Да и вангую, что студия все равно останется у меня в приоритете, в лучших традициях утят.
Вспомнил статью, которую недавно читал. Там хаскеллист добивался, чтобы его формочка на wxHaskell компилировалась меньше, чем в 20 мегабайт. Это, конечно, не так критично в 2016 году, да, но все равно возможность фонового необременяющего байтоебства это одна из привлекательных фич крестов.
> окажется что в long long 32 бита
В несоответсвующем стандарту компиляторе, разве что.
>В какой строчке стандарт противоречит тому что я написал?
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf#35
— minimum value for an object of type `long long int'
LLONG_MIN -9223372036854775807 // −(2^63 − 1)
— maximum value for an object of type `long long int'
LLONG_MAX +9223372036854775807 // 2^63 − 1
— maximum value for an object of type `unsigned long long int'
ULLONG_MAX 18446744073709551615 // 2^64 − 1
inb4 "эта стандарт си, а я пра сиплюсплюс гаварю, ты саснул!!!":
std::numeric_limits<long long>::lowest() = LLONG_MIN
std::numeric_limits<long long>::max() = LLONG_MAX
>В какой строчке стандарт противоречит тому что я написал?
http://en.cppreference.com/w/cpp/language/types
(un)signed long long: Width in bits by data model: C++ standard: at least 64
Kdevelop
$100
Слишком мало, чтобы за это кто-то взялся. Готовься или переплачивать, или искать доброанона забесплатно.
0.01 BTC
Перечитал, нет не наёбывают.
http://people.cedarville.edu/Employee/kshomper/cs1220_web/examples/complexNumber.h
http://people.cedarville.edu/Employee/kshomper/cs1220_web/examples/complexNumber.cpp
Операторы сравнения сам запили по аналогии:
friend bool operator< (const ComplexNumber &a, const ComplexNumber &b);
bool operator< (const ComplexNumber &a, const ComplexNumber &b) {
return a.r < b.r || a.r = b.r && a.i < b.i;
}
Отдельный конструктор только для float не нужен, у тебя в обычном уже зеданы значения по-умолчанию.
mysql_real_query(conn,"SELECT * FROM clients.client",200000);
res = mysql_store_result(&conn);
while((row = mysql_fetch_row(res))) {
for (int i=0 ; i < mysql_num_fields(res); i++)
dataGridView1->Rows->Add();
как теперь в Rows положить строку из вывода запроса?
Делаешь пандорический захват, лифтишь запрос в монаду, потом строишь рекурсивную схему (здесь подойдёт зигохистоморфный препроморфизм) как монадический трансформер из категории эндофункторов, и метациклически записываешь строку. Любой второкурсник справится. А если делать на анафорических лямбдах — так задачка вообще на пять минут.
Универсальное решения для любой задачи.
Например в телеграме или скайпе?
Есть нелегитимная конфа 2chpr.slack.com в которой в cpp канале 3.5 человека, включая меня, сидим вечерами.
Последнее время один чел вбрасывает тезисы из Дизайна и эволюции, а мы их обсуждаем. Новичков не помню даже. Заходи и задавай вопросы, если тебе формат этого треда не устраивает.
Какой-то подозрительный сайт.
Подскажи, почему я не могу зарегистрироваться? Вводу любой юзернейм, но кнопка регистрации не горит.
> 14:05:58
>Есть нелегитимная конфа
>>655987
>15:11:59
>Меня оттуда прогнали.
Лол. Что ты сделал?
Пробовал обмазаться valgrind, но он выдаёт какую-то нечитаему хуиту по возможным протечкам.
Ну и я не нашёл там никаких аналогов breakpoint дебаггера, которые можно было бы расставить в определённых местах и наблюдать именно там.
Потому что не каждого инта корень целый
А я вод хочу борду онли для кодеров. Но пилить не буду т.к. лень. У кого ещё какие идеи на миллион?
А вообще, змейку или калькулятор на С++ легко написать?
Детектор чини, маня.
Их и на брейнфаке не трудно написать.
В stl и консоли нет. Есть только потоки, которые не ебут, куда данные выводятся.
Я, просто, недавно изучаю язык, может что не понимаю.
На нём тяжело написать все эти кнопки, что ли?
Кактак? А как тогда их выводить? сть такой способ читать/писать потоки в файл, но так чтобы в консоли не работало?
Нет, тебе мозги ебут просто.
С выбором языка начального уровня. В шапке прикрепленного треда написано: python.
Типичный школьник с рашкоборд. Человек к тебе пришел с вопросом, а ты самоутверждаешься.
Ты переоцениваешь свои силы. Начни с основ, читни книгу, потом уже выберешь средство для рисования графики
А С++ компилируют в ассемблер.
Инди разработчикам стоит брать Java (Minecraft) или C# (Unity, XNA и т. п.). C++ для движкописателей игр ЫЫЫ класса, с таких вещей не начинают мамкины гейдевелоперы (а если начинают, то заканчивается это быстро с потерей интереса).
Я, как раз, читаю книгу.
Кстати, я уже 3 книги скачал - страуструп, с++ с шапки для продвинутых, и с++ для программирования игр.
>>656129
Я, как-то, запустил юнити и мало что там понял. Там надо эту программу изучать, а не язык.
>>656135
Ну, я хотел для начала создать простенькую змейку. Как на мобильниках, не думаю что это сложно, так?
А потом усовершенствовать, написать физику етц.
>Я, как-то, запустил юнити и мало что там понял. Там надо эту программу изучать, а не язык.
То что реализовано в юнити, самостоятельно ты не напишешь за всю свою жизнь. Ты даже примитивное подобие 3д рендера не запилишь раньше чем через полгода на плюсах
Съеби в /b/ уже, говноед.
>я уже 3 книги скачал
Я знаю каратэ, джиу-джитсу, самбо, дзюдо и... много других страшных слов!
А как инди разрабы делают игры с 0?
Я вижу некоторые вообще делают с 0 такое, что волосы дыбом встают - overgrowth вообще 1 человек с 0 написал.
Ну, например до этого они ебошили лет 5-10 в хайлоад-энтерпрайзах?
Ну вот бери python и делай свою змейку. Для начала тебе нужно научиться программировать, похуй на чем, а потом взять наиболее удобный язык для своих задач. И это не С++, который дяди используют для бескомпромиссной производительности и для изучения которого нужно одних книг прочитать штук 10.
> overgrowth
https://en.wikipedia.org/wiki/Wolfire_Games
Вот столько говна им пришлось написать перед тем как выдать overgrowth
Даже на денди игры командами писали, в одно ебало любую игру сложнее змейки тяжело писать
Смотря что ты понимаешь под "типа". Софтверный рендеринг? Написать можно. Линейную алгебру немного знать надо.
Любой 3д-движок очень тяжело написать и большинство предпочитает их лицензировать. Дум, квейк, unity или unreal engine - это уже частности.
Ну, можешь взять юнити и потягать ползунки, но вряд ли ты сможешь таким образом сделать что-то сложнее змейки.
Во всех оканчивающихся на .c .h .asm
Графика написана во всех файлах начинающихся с r_ вот тут https://github.com/id-Software/DOOM/tree/master/linuxdoom-1.10 . Другие префиксы тоже что-то значат.
Выглядит дико, альсо, там во многих файлах нет и тысячи строк кода т.е. всё довольно простенько описывается.
Затроллил ты меня анон. Я решил всё делать через стандартные пакеты VS.
https://msdn.microsoft.com/library/fbk67b6z(v=vs.100).aspx
Вот по этому ману.
Qt кроссплатформенно.
Тем что WinForms - .net хуитка, на которой можно писать с забытым майкрософтом костылём в виде C++CLI (который нихуя не C++).
Это код аски.
В таблицу символов посмотри. У этих номеров нет своих значков. 32 к выводу прибавь
С кем не бывает, ну и не в этом суть проблемы. Извини, если задел твои чувства.
Я думал что через альт + число = вывод аски значка.
Тем более что если ввести альт + 97, то выведет а, как и все другие значения. Почему так?
>Почему так?
Загугли какую кодировку альт выводит. Возможно первые символы с ascii совпадают. и в ascii всего 255 символов, а в альте больше
Хром не шлет тело
Нет. Но там должны пояснить.
------WebKitFormBoundaryfAjvaUXbrUBQlmR0
Content-Disposition: form-data; name="photo"; filename="Снимок экрана от 2015-06-26 15:24:11.png"
Content-Type: image/png
------WebKitFormBoundaryfAjvaUXbrUBQlmR0--
Хоть одно его достоинство назови, кроме конченной оверархитектурности (которую самые отбитки из илитки считают чем-то хорошим).
На нём даже блять нет ни 1 нормального http сервера (кроме pion который по первормансу на уровне нодыжс), который либо быстро работал бы, либо не падал где-то в недрах буста и не обсирался с чем нибудь вроде алгоритма Нейгла и кучи аналогичной хуйни имеющейся по дефолту.
Есть куча реально актуальной для текущих тенденций хуйни вроде акторов, корутин, транзакционной памяти и кучи прочего - в стандарт пропихивают ёбаный буст, код на котором в 5 раз больше кода на обычных сокетах (и причём имеет свою изголённую экосистему понятий и паттернов - нормальный код с сокетами куда легче читать).
>буст
Имею ввиду именно асио, но всякие фениксы из его комплекта не меньшей помойности библиотеки.
> Хоть одно его достоинство назови
Кросплатформенные, headers-only, без дополнительных внешних зависимостей (кроме STL), асинхронные сокеты.
Если ты знаешь что-то такое, но лучше - с удовольсвием буду использовать.
Что с ним делатть, мне нужно из бровзера послать картинку
>Кросплатформенные
Все современные сокетные библиотеки.
>headers-only,
В чём плюс-то? В том что хэловорд 10 минут компилируется? Разве что под спермой без репозиториев и нормальной структуры фс проблемно это говно руками тащить.
>асинхронные сокеты.
См пункт 1.
>Если ты знаешь что-то такое, но лучше - с удовольсвием буду использовать
Да даже сгнивший libevent был лучше, лол. Сейчас самая адекватная - libuv.
> Все современные сокетные библиотеки.
Из более-менее живых я и выбрал асио лол, их там всего штук 5 будет, а живо-то хорошо если 3.
> В чём плюс-то? В том что хэловорд 10 минут компилируется? Разве что под спермой без репозиториев и нормальной структуры фс проблемно это говно руками тащить.
Ну, собственно мне как раз и нужна возможность ёбнуть либу сразу в build tree и получить в итоге бинарь с минимум внешних линков.
> Сейчас самая адекватная - libuv.
Спасибо, посмотрю.
Boost
Я думал что он более базовый и сложный.
Больше хуиты надо учить типа классов и шаблонов.
C++ куда более обширен, и включает в себя сам С.
Чтобы у тебя пригорело))0
Вот думаю, накидать с нуля, или взять рабочий вроде evince/Okular и мутить с ними дальше? Хотя там зависимостей - я ебал.
>Хотет pdf-ридер со встроенным переводчиком на лету.
Вроде есть софт, переводящий при наведении на/выделении слова.
И от ридера не зависит.
А ещё есть специальные книги в которых уже вставлен перевод слов, устойчивых выражений или даже целых предложений.
У меня какая-то шляпа заносится в него
хз, пробелы я так понял считает + проблемы с чтением мейби
#include <iostream>
#include <fstream>
using namespace std;
int main() {
const int n = 5;
int a[n][n];
ifstream fin("text.txt"); // открыли файл для чтения
for (int i =0; i < n; i++){
for (int j =0; j<n; j++){
{
fin >> a[j];
cout << a[j];
}
}
}
cin.get();
}
у тебя файл не в той папке. Если студия, то кинь файл с исходниками.
>>657334
Это двач спиздил . Сам сначала об этом подумал.
http://ideone.com/jbDMWK
кстати, с одной строкой таки работает ( в студии)
Вот слегка переправил, в студии заработало, ето не то, что мне нужно было 12 часов назад, но уже прогресс.
да в файле цифры от балды написал как в в матрице 5х5
Короче возьми книжку из шапки и делай по ней примеры. Или видосы там есть. А то твой код на говно похож.
сча еще попытаюсь в динамический массив запихать чтоль
#include <QtSql/qsql.h>
#include <QtSql/QSqlDatabase>
#include <QMessageBox>
#include <QCoreApplication>
#include <QApplication>
#include <QtSql/QSql>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlDriver>
#include <QtSql/QSqlQuery>
вот инклюды, на клик я делаю : QSqlDatabase db = QsqlDatabase::addDatabase("QMYSQL");
и потом работа с переменной дб, а после bool ok = db.open
что я делаю не так?
А вы ещё мой хипсорт ругали за отсутствие пробелов.
тебе скорее в /sci/ к математикам.
а блин, не получилось.
void Main::on_connect_clicked()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "mydb");
db.setHostName("localhost");
db.setDatabaseName("clients");
db.setUserName("manager");
db.setPassword("I_think_y0u_lie");
bool ok = db.open();
if (ok) QMessageBox::information(NULL,QObject::tr("Информация"),tr("Не все так плохо..."));
}
сама функция, и ошибка main.obj:-1: ошибка: LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QSqlDatabase::~QSqlDatabase(void)" (__imp_??1QSqlDatabase@@QAE@XZ) referenced in function "private: void __thiscall Main::on_connect_clicked(void)" (?on_connect_clicked@Main@@AAEXXZ)
в pro файле прописано QT += core gui sql
Вручную подключил Qt5Sql
и ничего не вышло, помогите с ошибкой, в гугле ничего внятного нет.
ох лол, я одну букву неправильно написал.
Теперь осталась одна ошибка:
qtmain.lib(qtmain_win.obj):-1: ошибка: LNK2019: unresolved external symbol _main referenced in function _WinMain@16
вот её я хуй знает как решать.
Ты, судя по ошибке, и без того компилируешь мсовским компилятором, смена IDE не поможет. Я бы посоветовал слезть с шиндовса, но хули толку.
Попробуй очистить и полностью пересобрать проект, либо скомпилировать mingw. Ещё как вариант добавь в .pro файле libs += <путь до QSqlDriver.lib/dll>
это я уже решил. У меня осталась проблема с qtmain.lib
и ругается на мейн.
Меня в VS не устраивают нерабочие таблицы для того, чтобы впихивать в них инфу из селектов.
Я хотел сделать через mysql.h в VS, но потом погуглил и увидел, что такие решения только на шарпе есть.
Тут 2 варианта: ты либо запоганил объявление main(), либо куда более вероятно - пытакшься компилировать гуй приложение с настройками линкера для консольного (или наоборот).
Зашёл - посмотрел что какой-то питушок написал хорошо про билдер - вышел.
Аргументы я писал здеся 2-3 треда назад, повторять лень. Лучше достоинства напишите кто нибудь.
Main::Main(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Main)
{
ui->setupUi(this);
}
вот main, он создался автоматически.
А где глянуть то, что линкер может быть выбран для консоли?
Эээ, вась, это не он. Это конструктор говна которое овнится в мэйне. Открой main.cpp
Погугли как устанавливать флаги линкера в qmake. Для вс компилера это /SYBSYSTEM: если я правильно помню.
>>657480
>гнумобилдер
гумнобилдер
Нет, этот-то хороший текстовый редактор, я про цэпэпэбилдер.
А если оставить только qsqldatabase и qsqlquery? У меня в 4.8 все работает, правда с qodbc.
#include "main.h"
#include "ui_main.h"
Main::WinMain(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Main)
{
ui->setupUi(this);
}
Main::~Main()
{
delete ui;
}
void Main::on_connect_clicked()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "mydb");
db.setHostName("localhost");
db.setDatabaseName("clients");
db.setUserName("manager");
db.setPassword("I_think_y0u_lie");
bool ok = db.open();
if (ok) QMessageBox::information(NULL,QObject::tr("Информация"),tr("Не все так плохо..."));
}
вот что в main.cpp
Я что-то после эмбаркадеро что-то не догоняю.
#include "main.h"
#include "ui_main.h"
Main::WinMain(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Main)
{
ui->setupUi(this);
}
Main::~Main()
{
delete ui;
}
void Main::on_connect_clicked()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "mydb");
db.setHostName("localhost");
db.setDatabaseName("clients");
db.setUserName("manager");
db.setPassword("I_think_y0u_lie");
bool ok = db.open();
if (ok) QMessageBox::information(NULL,QObject::tr("Информация"),tr("Не все так плохо..."));
}
вот что в main.cpp
Я что-то после эмбаркадеро что-то не догоняю.
Вааась, у тебя нету точки входа. Н-е-т-у.
Выучи язык для начала, хотя бы основы.
>Я что-то после эмбаркадеро что-то не догоняю.
(:
бляя, что ж я такой пиздоглазый.
я в нём и сижу.
>Мультиплатформа
Относительно Qt - хуйня. Если смотреть простую переносимость - любой открытый компилятор обоссыт ебало (у них какое-то говно на основе шланга).
>кастомный гуй на изичах
Он, блять, даже в ёбаном gtk уже на изичах делается.
>работа с бд.
ну это вообще кек.
Собственно, вот на этот вопрос обсыкивали на билдер: >>634056
Ну мааам!
Пишу свободную функцию которая принимает концепт SinglePassRange, разумеется по значению. Но всякие пидоры, которые будут звать, могут засунуть туда не iterator_range, а например boost::small_vector. Хочу внутри поставить static_assert в духе has_advance_begin<SinglePassRange>::value. Как быть?
Может это макрос какой нибудь, ёбана, для кококросплаформенастя.
Вот как здесь: https://github.com/altera2015/ttwatcher/blob/master/qhttpserver/src/qhttpserverapi.h
Хуй знает вроде пустой дефайн. Дефайн без значения заменяется на пустую строку.
А вообще есть примеры по конструкции вида:
class [some] %className%
{}
Что может стоять на месте some например
У меня есть массив и мне нужно в зависимости от первого значения строки сложить ети строки с друг другом.
Т.е. например, первое число в первой и в третьей строке 1, мне нужно получить сумму этих строк ( без значения этой единицы) .
Пытался сдtлеть c помощью неск. циклов for и switch - выходит непонятно что.
>Спермокостыли
__attribute__((visibility("hidden")))
__attribute__((visibility("default")))
для ляликса
1 2 3 4 5
1 4 1 2 7
2 6 8 9 0
2 3 1 2 2
3 3 3 3 3
для этих цифр выдает
summ1 = 8
summ2 = 24
Хотел чтобы программа в зависимости от первого значения выдала суммму строк со значениями 1 и 2, так что откуда взлись 8 и 24 не вкурю.
сначала вас, пидоров, надо бить ногами, пока код форматировать не научитесь, а уже потом за логику и задачу толковать.
проиграл чет
иди наверни пробелов. до сих пор рябит в глазах от твоего месива
>метод, принимающий в качестве аргумента тип данных без указания имени
Аноны, поясните, что это такое? Как это возможно? Зачем это нужно?
[ i ] макаба съедает т.к. есть ббкод [ i ] [ / i ]
Если в cpp, то глобальной для модуля. Если в хедере, то глобальной везде где есть этот хедер (привет конфликтам линкера)
https://github.com/altera2015/ttwatcher/blob/master/qhttpserver/src/qhttpserver.cpp
в 32 строке определяется qhash
а в конструкторе начиная с 38 строки добавляются значения. Причем при каждом создании объекта, присваивание будет повторяться? Наколько это разумно?
Гугли аналоги анонимного static-блока из джавы.
Значением функции.
thrust, ты?
И как синглтон противоречит инкапсуляции?
void Main::on_pushButton_clicked() есть действие, но через QObject::connect оно не подключается.
Плохо подключаешь.
Код покеж.
Зависит от принятой идеологии разработки. Некоторые используют, некоторые нет. Использование исключений в языках без GC может привести к проблемам и требует увереного понимания что механизма их работы. Но в свою очередь они могут упростить код.
Могу ли я использовать VS для удаленной разработки на linux машине?
Если у тебя на твоей рабочей машине сперма – конечно, но немного нужно поебулится.
>>658004
какое-то говноедство
>А именно имена заголовков http сообщения(accept, date и прочие).
зачем?
>Так как мне предстоит вычленять из запроса имена заголовков, мне придется воспользоваться поиском подстроки.
ЩИТО? парсь все, складывай в QMap
>Искать я буду с помощью тех значений которые храняться в классе изначально
QLatin1String
>Хранить придется в QHash<int, QString>. Чтобы потом получить число соответствующее найденному заголовку
почитай матчасть по протоколу, тебе это не нужно
>Так вот, QHash придется сделать статическим, дабы он не создавался в каждом объекте класса. Но мне же надо запретить его изменять, то есть сделать константным. Но при этом потребуется инициализация. Как ее выполнить?
// функция которая набивает значения
QHash makeData() { ... }
// переменная которая будет хранить данные
static const QHash myHash;
// инициализация статического члена
QHash QHttpServer::myHash(makeData());
void Widget::on_pushButton_clicked()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "my_sql_db");
db.setHostName("localhost");
db.setDatabaseName("clients");
db.setUserName("manager");
db.setPassword("I_think_y0u_lie");
bool ok = db.open();
if (ok) QMessageBox::information(NULL,QObject::tr("Test"),tr("Tesr"));
}
вот код, а сообщение при нажатии на кнопку таково:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
Я даже в .pro файле написал QTPLUGIN += sqldrivers
но что-то ошибка не исчезает
Ну у меня на ноуте сперма, но сечас я работаю на виртуалке c xubuntu, я хочу нативную иде + терминал до виртуалки без гуев с минимальным centos'oм.
QSqlQueryModel model = new QSqlQueryModel;
QSqlQuery query(db);
query.exec("SELECT FROM clients");
model->setQuery(query);
ui->tableView->setModel(model);
сделал вот так, но tableView пустой, что я делаю не так?
Есть два... стула
Нет, есть метод/функция/конструктор/етц, вызов работу которого ты хочешь каким-то образом модифицировать/параметризовать/повлиять на работу снаружи. Тогда делаешь перегрузку этой функции. Так как параметр чисто формальный и внутри не нужен, то его можно опустить, чтобы компилятор не ругался на unreferenced/unused argument.
https://ideone.com/FgZ4fX пример с логгингом немного надуманный, обычно условное логгированние закатывают под ifdef'ы. Но общую идею должно дать.
Таким, как ты, -- нет.
Сравни http://pastebin.com/RsFewWKx и http://pastebin.com/Hd30KXmL
В первом случае ошибки обрабатываются так, как это делали деды через коды ошибок, во втором -- исключениями. В каком случае легче понять где идёт логика, а где обработка ошибок?
>>упростить код
>Как?
Не нужно в каждой функции делать проверки возвращаемого значения вызываемых функций. Если в какой-то из них возникнет исключение, оно уйдёт вверх по иерархии вызывающих функций и его поймают те, кому надо.
> Использование исключений в языках без GC может привести к проблемам
Для этого вот всякие raii придумали.
Сам понял чё пизданул? Речь об исключениях: в неумелых руках всё твоё raii пойдёт по пизде, если исключение обработать не так.
Resource Acquisition Is Initialization (RAII) is a programming idiom used in several object-oriented languages, most prominently C++, where it originated, but also D, Ada, Vala, and Rust. The technique was developed for exception-safe resource management in C++
Он упрощается дажу у долбоёбов, хуярящих весь код только в main в файле laba1.cpp
Ничто не мешает дебилу с raii кинуть исключение в деструкторе а потом удивляться хули всё сломалось
>Сам понял чё пизданул? Речь об исключениях: в неумелых руках всё твоё raii пойдёт по пизде, если исключение обработать не так.
Бля, ну не кидай в деструкторах исключение, хуле как дебил, а?
> Для этого вот всякие
Ну так имелось ввиду не то что исключения (в языках без GC) это ГРОБ ГРОБ КЛАДБИЩЕ ПИДОР а что для безопасного их использования нужен определенный багаж знаний. Поэтому некоторые предпочитают вообще не ебаться с ними.
я бэ запихал все ссылки на элементы n-го уровня в вектор. номер в векторе - нужный тебе элемент. но я тупенький, мож кто что лучше предложит
Да. Нужно лучше. И за константу.
Чумазый пиздёныш с громкой отрыжкой и отчаянным воплём ввалился в комнату, где крестогоспода обсуждали преимущества деструкторов. Джаваблядок ошарашенно вылупился на удивлённых сэров, за пазухой у него явно было что-то запрятано. Ну, что у тебя там, зассыха? - снисходительно промолвил самый молодой из господ. А-а-фоть - заикаясь промямлила замарашка и трясущейся рукой вывалила на дорогой персидский ковёр кучу так и не выполнившихся финализаторов. Лица элитариев побагровели от такого неслыханного безобразия. Камёрдинера сюда, живо! - воскликнул опять же самый молодой и самый вспыльчивый из них. Оказия сия окончилась, как можно безошибочно предугадать который раз не в пользу плебса, оно и к лучшему, не место черни среди высшего общества.
Ну, во-первых, неясно, по какому правилу нумеруется дерево.
истиный посмеялся в голосину
void Regim()
{
if(reg==6){Set_B_D();return;}
if(i%2){e=time[reg][i/2]/10;
if (ogr[reg][i/2]<=10){e=20;}}
else {e=time[reg][i/2]%10;}
if(set&&(set_n!=4)){
if (set_n%2){time[reg][set_n/2]=buf10+time[reg][set_n/2]%10;}
else {time[reg][set_n/2]=time[reg][set_n/2]/1010+buf;}
if (time[reg][set_n/2]>=ogr[reg][set_n/2]){time[reg][set_n/2]=0;buf=0;}}
}
От твоей нумерации можно легко перейти к нумерации от корня вниз, где корень имеет номер 1: n_new = root_old - n_old + 1
Эта операция обратима: n_old = root_old - n_new + 1 и делается за константу
В обычной нумерации потомки узла n есть узлы n•2k..n•2k+1-1
где k - разница между уровнями ноды и её потомков.
Т.е. если узел имеет номер 0b00101, то её потомки двумя уровнями ниже имеют номера 0b10100..0b10111
Самое сложное - узнать на каком уровне находится твой узел. Это можно подсчитать также кол-вом бинарных сдвигов(делений на два), чтобы номер узла стал равным единице или другим, более хитрым подсчётом двоичного логарифма, к которому надо прибавить 1.
Если твой root_old достаточно мал, то можно наоборот - сдвигать влево пока полученный номер меньше либо равен root_old + 1. Причём сдвигать два числа - оба в начале равны n_new, но один сдвигается с добавлением нуля в конец, а другой с добавлением единицы:
low_bound•=2
high_bound=(high_bound•2)+1
Тогда в конце у тебя будут сразу концы отрезков или overflow и бесконечный цикл
> сдвигать
Но тогда же сложность будет линия или логарифм (смотря как двигать) а не константа.
Логарифм. Быстрее сделать не выйдет, так как подсчитать логарифм за константу затруднительно, а кэшировать номера уровней бессмысленно
Задачу поконкретнее опиши, может и вспомню что-нибудь.
Помню с этой ошибкой ебался дня полтора. Фишка в том, скорее всего, что мускл у тебя с 64битными либами стоит он же у тебя в PATH прописан, так?, а Qt распространяется 32битный, вот и не линкуется. В общем надо 32битный MySQL поставить
хайлоад сервак для стриминга видео/аудио
Как вообще устроено создание значений, задаваемых вручную? Я так понимаю, значение "stroka" - это константа и хранится в статической памяти?
> Можешь описать как это работает?
Идея как у анона >>659129 только немного другой подход. Длина отрезка (segment_size) обратно пропорциональна уровню на котором находится узел - корню соотвествует полный отрезок, следующему уровню половина, следующему четверть и т.д. Положение отрезка зависит от положения узла на своем уровне (position) - если узел на своем уровне крайний слева то ему соотвествует крайний левый отрезок, крайний справа - ему соотвествует крайний справа и т.д. Через положение узла на своем уровне высчитывается начало отрезка, оттуда из длины отрезка высчитывается конец.
Ссыкотно, там же серьезные дядьки будут тусоваться, а не молодежь.
V_CopyRect
( int srcx,
int srcy,
int srcscrn,
int width,
int height,
int destx,
int desty,
int destscrn )
{
тяжко же было писать без ООП
В частности меня интересует пример PreviewHandler'a от MS
При инициализации через стрим
[code]IFACEMETHODIMP RecipePreviewHandler::Initialize(IStream *pStream, DWORD grfMode)[/code]
мы получаем указатель на IStream.
Затем происходит загрузка XML как на пике. Каким образом прочитать просто текст?
Код пятилетней давности.
Есть какие то современные библиотеки, чтобы сделать расширение для Shell легко и просто?
В чём прикол оппика?
Профессиональный юмор.
Я ньюфаг но предположу.
По идее можно создать класс B, похожий на A, только с открытыми полями и при помощи приведения типов преобразовать A в B и инкапсуляции уже не будет.
Если не прав, то поправьте.
Лал? Как этот факт выделяет C++? В других языках можно либо сделать то же самое, либо там есть рефлексия и можно сделать вообще что угодно. У питона, например, мало того, что есть способы работать с методами и полями объекта, так там просто нет private полей
Уметь использовать все средства языка + знать часть stdlib: STL и input/output.
Если все это знаешь, возьмут за 300$
>Аноны, какой минимум нужно знать по плюсам, чтобы взяли стажером за еду?
конструкторы, деструкторы, операторы, raii, shared_ptr, qt, boost::asio
думаю, этого на джуна хватит
>qt
Ты че ебанутый? Пиши конкретней, там 1001 модуль. Ты джуна нанимаешь или справочник, знающий qt, но не умеющий программировать?
http://hh.ru/search/vacancy?text=c++&clusters=true&experience=noExperience&enable_snippets=true
В моем мухосранске полторы вакансии, найс
qt base, qt widgets, qml, qt network, qt sql, qt xml и, разумеется, qt webkit, без него рекламу не вставишь
Я бы маерса посоветовал еще
>Пару готовых проектов на гитхабе еще добавь ко всему.
Да-да, и пару лет опыта. Тогда смело сможешь идти на зарплату 15т.р.
Проекты любого (студенческого) уровня.
1. Показать твой кодстайл
2. Показать, что ты что-то "сделал", а не только "делал"
>IDE Microsoft™ Visual Studio®. Чтобы начать писать код, нужно запустить Visual Studio, кликнуть "Файл - Создать - Проект - Пустой проект", после создания кликнуть слева правой кнопкой мыши по пункту "Файлы исходного кода", выбрать "Добавить - Создать элемент - Файл C++". Чтобы скомпилировать и запустить проект, нужно нажать "Сборка - Собрать решение", а затем "Отладка - Запуск без отладки".
>clang++ helloworld.cpp
>g++ helloworld.cpp
Я просто не верю, что есть в мире долбоебы, рекомендующие новичку IDE (тем более VS) вместо любой наипростейшей консольной команды.
В "Стэнли Липпман, Жози Лажойе и Барбара Му - Язык программирования C++ (2014)" прямо об этом и говорится.
Пиздец просто.
Для нюфагов, как показывает практика, нажать на несколько кнопочек легче написания полутора слов.
Алсо, с мсовским компилером делается так:
>cl kek.cpp
Другое дело, что там поддержку исключений и всё остальное дописывать руками надо.
И потом он до конца жизни будет в одном файле всё писать
GW-BASIC был моим первым язык, моей первой любовью, именно с ним я лишился аппаратной девственности
Холиварящие дебилы
К нам пожаловали хачкелисты?
Kekus maximus.
Сложна
cl.exe helloworld.cpp
Ну выполнит ньюфаг команду, а она ему по его ньюфажности выплюнет километр ошибок, большая часть которых на самом деле следствие одной ошибки в самом верху списка. Он посмотрит на эту хуйню и плюнет на всё. А в ide существенные ошибки распарсятся и подсветятся в самом редакторе – исправляй не хочу.
Мне нужно сделать говно-курсач, хотелось бы под Linux его запилить а не Builder 6, все что смущает это выбор графической билиотеки. Из возможных: SFML, FLTK, GTK+.
Нужно всего навсего создать окно с кнопками и по нажатию одной из них открыть еще одно либо перерисовать текущее, а там простой ввод-вывод. Вообще я нюфаг в графических интерфейсах, на плюсах только пару лаб делал на говнобилдере 6. Мою задумку можно будет осуществить, или лучше не выебыватся и быстро наделать все на билдере и продолжить учить свой JS?
А по теме? В FLTK сложно все эти кнопочки будет организовать? и вывод картинок надо. Или все-таки своровать последнюю версию билдера?
>Dmitriy
>Dmitriy
>Dmitriy
Ну ты и мразь, отвратительно.
С каких пор /pr стал филиалом /b?
P.S. И только не надо втирать дичь, объясняя move семантику через ссаные rvalue(которые сами определяются через move семантику), я вас умоляю.
С каких пор /pr стал филиалом /b?
Минусы GTK+:
- Плохая технологическая инфраструктура
- GUI(а значит и ООП) на ебаном C это тот еще пиздец.
- Плохая поддержка не linux платформ.
Ах да, забыл:
- Ебучая GNU LGPL
- Вырвиглазное оформление из коробки
- Намного меньшая распространенность, по сравнению с Qt
Да, интересное решение ООП на сишечке. Почему считается что GUI = ООП? Страуструп писал что ооп лучше избегать там где это возможно.
> Почему считается что GUI = ООП?
Ну представь работу браузера в процедурном стиле.
> Страуструп писал что ооп лучше избегать там где это возможно.
А что писал Страуструп по поводу ГУИ?
Потому что нормальную инфраструктуру без него построить довольно сложно, и это будет так себе пахнуть.
>>662836
>Что нет?
>В FLTK сложно все эти кнопочки будет организовать?
>Почему считается что GUI = ООП?
Кто-то не понимает сути ООП, а пытается кукарекать. GUI - это самое что ни на есть чистое ООП, которое вообще можно себе представить. А все потому, что создано по подобию оперирования объектами в реальной жизни по средствам манипуляторов.
>А что писал Страуструп по поводу ГУИ?
До туда Я не дочитал.
>>662857
Спасибо.
>>662856
Вроде нормальная библиотека, ровно то что нужно, надеюсь документация удобная.
Спасибо.
> Я не дочитал.
Спойлер он ничего про него не писал, может как-то вскользь упоминал, но ничего конкретного
Пошел нахуй, Димочка, здесь господа обсуждают фундаментальные вопросы проектирования языка, а тебе еще курсач писать надо.
А теперь обоснуй все это или я тебя обоссу.
> RVO
Уже по названию же ясно. RVO ограничено как по области (ситуациях в которых оно применимо), так и функционалу - RVO только переиспользует объект, тогда как в случаях покрывемых move-семантикой вызывается специальный кастомный конструктор. Алсо я них там даже функционал разный, насколько я понимаю, временный объект создаваемый и возвращаемый из функции благодаря RVO может сразу создаваться так образом чтобы не удаляться при сдвигании стека (при выходе из функции), тоесть никакого копирования (даже неглубокого) и вообще никаких действий в принципе не происходит. Следовательно это вообще разные концепции, move-семантика не покрывает полностью функционал RVO.
Реквестирую примеры кода такого использования move семантики.
Первый результат гугла чем не устраивает?
http://stackoverflow.com/questions/5031778/what-optimization-does-move-semantics-provide-if-we-already-have-rvo
Если не собираешся потом плюсами заниматься то делай на билдере (если приймут). Если дальше в плюсы хочешь пойти то конечно билдер нахуй. Бери Qt (в общем лучше, но возможно дольше разбираться и сложнее будет со сборкой на институтских компах, так как там сложнее тулчейн) или FLTK. SFML это графическая библиотека. GTK+ это для каких-то специфических случаев когда все остальное уже не вставляет подходит, если у тебя свободный выбор то нахуй.
>>663299
А перекат был, ребятки. Но моча обезумела или что-то вроде того. Я не знаю, зачем было удалять его.
http://m2-ch.ru/pr/res/662940.html
Щито?
Всё работает, только, поясни вот что:
while (friend_sex != 'f' && friend_sex != 'm')
Почему если поставить или || - программа не работает, а если И && - то работает?
Ведь по сути должно быть наоборот.
Т.е. до тех пор пока френд_секс != ф ИЛИ френд_секс != м, то...
А тут как-то странно. Я не понял.
Цикла выполняется пока (friend_sex != 'f' && friend_sex != 'm')
Если friend_sex становится равным m или f цикл прерывается
Ой, невнимательно посмотрел, спасибо.
Есть по нему пара вопросов.
Я как-то пытался поднять, но эти петушки слишком ленивые.
однако, в слаке есть канал программача, и там раздел с++, тусуются три с половиной анона
Попрошу, хаскель охуенен. Не такой охуенный, как сидвакрест, но достоин называться ОЗУИТЕЛЬНЫМ язычком
Воистину. Жалко, что у них тред мертвый.
>>663464
Нет, я имел ввиду что ты имел ввиду под ленивыми петушками - обучающихся С++ с нуля?
Просто, я сейчас изучаю С++ и прогресс идёт очень медленно и я бы себя ленивым петушком со стороны назвал бы. Что очень печально.
Могу тебя мотивировать.
ПОЖАЛУЙСТА ОТВЕТЬТЕ!!! Откуда взяты эти прекрасные стихи?
Хейтер сосет хуи.
Это копия, сохраненная 14 марта 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.