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

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

 Аноним 21/06/16 Втр 20:37:23 #1 №776344 
14665306439010.jpg
Как то ОП пошел на свалку
И нашел крутую палку
Палку вымазал говном
Получился агроном

Агроном взял в руку хуй
И ударил по компу
Напиисал он компилятор
Скажем им спасибо - ой!


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

TL;DR

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

Памятка ньюфагу

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

Небольшие фрагменты кода размещай в треде при помощи тега [code] и жабаскрипт-костыля. Для больших фрагментов используй внешние сервисы.


FAQ

Мотивация

Q: Почему стоит использовать именно C++?
A: Ни один язык не идеален, но по совокупности киллер-фич C++ оставляет все остальные языки позади. Вот основные три:

  • Скорость
    C++ действительно быстрый язык — вместе с C, его прародителем, они с большим отрывом уделывают по скорости все остальные языки высокого уровня. Код на C++, как правило, медленнее аналогичного кода на C приблизительно на 0-20% а в ряде случаев C++ оказывается даже быстрее, причем замедление появляется только при использовании высокоуровневых конструкций (в C++ ты никогда не платишь за то, чего не используешь). Таким образом, если тебе требуется высокопроизводительный код, C++ станет отличным выбором.
  • Мощь
    C++, являясь одним из наиболее выразительных и мощных языков, позволяет использовать большинство существующих парадигм. Его философия построена на минимальном ограничении программиста в выборе методов и инструментов простреливания ноги решения задачи. Как следствие, используя C++, ты можешь не думать о том, как обойти искусственные ограничения языка, а беспрепятственно выбрать наиболее подходящие к ситуации средства.
  • Популярность
    C++ по-настоящему популярен. На нем написаны десятки тысяч приложений и миллиарды строк кода, о нем написаны сотни книг, он до мельчайших подробностей документирован и стандартизован. Используя C++, ты никогда не останешься без работы или поддержки комьюнити.

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

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

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


Литература

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

  • Для нюфань

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


    Автор(ы) Название Год Ссылка
    Бьерн Страуструп Программирование. Принципы и практика использования C++ 2016 https://yadi.sk/i/Yd6KKpLBqJSUr
    Стэнли Липпман, Жози Лажойе и Барбара Му Язык программирования C++ 2014 https://goo.gl/kVaela
    Стивен Прата Язык программирования C++ 2012 https://goo.gl/z7kA8u

  • Кроме того, есть еще пара старых добрых учебников для ньюфагов. Часть информации в них устарела, но многие считают, что это компенсируется их большей, по сравнению с современными учебниками, понятностью:


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

    Книги про основные подводные камни для тех, кто осилил предыдущий пункт. Следует пролистать все:


    Автор(ы) Название Год Ссылка
    Скотт Мейерс Эффективное использование 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++11, C++14, а также последняя версия черновика стандарта C++17.

  • Тонкости языка

    Книги для тех, кто возлюбил кресты всей душой и желает углубиться в детали:


    Автор(ы) Название Год Ссылка
    Герб Саттер Решение сложных задач на C++ 2002 https://goo.gl/iWaa6S
    Герб Саттер Новые сложные задачи на C++ 2004 https://goo.gl/4nn512
    Бьерн Страуструп Дизайн и эволюция C++ 1994 https://goo.gl/FqbPwo (для легкого чтения)
  • Отдельные аспекты

    Читать по необходимости:


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

Другие обучающие материалы

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

Q: Не люблю, когда льют воду. Хочу коротких материалов по существу.
A: Вот тебе блоги, факи, референсы и всякое такое:

  • Годный блог, в котором все просто и понятно тян не нужны кококок борщ
  • Блог с хорошо расписанными фичами новых стандартов
  • Краткие описания библиотечных функций и контейнеров - на русском или более подробно на ангельском
  • Блог Герба Саттера (на ангельском)
  • Блог Скотта Мейерса (на ангельском)
  • Блог еще одной тянки, много о Qt и оптимизации (на ангельском)
  • Куча других блогов (на ангельском)
  • Большой FAQ по C++ (на ангельском)
  • Видео с CppCon (на ангельском)

Софт и библиотеки

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


Платформа Название Описание Ссылка
Windows Microsoft™ Visual Studio® Общепризнанно самая продвинутая и удобная IDE, не имеющая равных по части автодополнения и возможностей отладчика. По ссылкам справа можно скачать бесплатную редакцию последнего выпуска (2015 Community Edition). Кроме того, существуют редакции с расширенными возможностями (Professional и Enterprise). Они стоят сотни денег, но если ты студент вуза, подписанного на Dreamspark Premium, то ты можешь получить их безвоздмездно (то есть даром). Многим новичкам интерфейс студии кажется чересчур сложным, так что обязательно прочти этот гайд, если у тебя возникают проблемы с компиляцией хэллоуворда https://goo.gl/qgAAc6 (русская версия) или
https://goo.gl/WIPW9L (ангельская версия)
Все CodeLite Простая, легковесная, кроссплатформенная, швабодная IDE. Менее навороченная, чем студия, но среди бесплатных вне конкуренции. Вероятно, это наилучший вариант для новичка с *nix. Под Windows же требует чуть больше ебли с установкой компилятора MinGW/LLVM http://codelite.org/,
"sudo aptitude install codelite codelite-plugins"
для установки под *nix
Все CLion IDE, призванная похоронить Visual Studio пока не особо получается. Она стоит денег, но можно украсть почти не протухшую версию на торрентах или получить бесплатную лицензию на год по скану студбилета, если ты студент. Удобные свистелки и перделки присутствуют. Тормоза и баги присутствуют. Кросплатформенность присутствует https://www.jetbrains.com/clion

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

Разумеется, установка IDE вовсе не обязательна. Ты можешь использовать текстовый редактор в связке с каким-нибудь компилятором, выбросить мышку, отрастить бороду и примкнуть к Церкви Святого Столлмана. Но лучше тогда сразу отправляйся в тред сишников, если не хочешь быть обоссанным другими сектантами за использование б-гомерзкого C++.

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

  • Статический анализатор, который умеет находить в коде ошибки и неоптимальные места. Швабодный. Есть плагин для Visual Studio
  • Более навороченный, но коммерческий аналог
  • Встроенный в clang статический анализатор
  • Детектор утечек для Visual Studio. Предельно прост в прикручивании
  • На порядок более мощная и сложная утилита для *nix, служащая тем же целям
  • Гугловские утилиты для контроля корректности кода
  • Гугловский фреймворк для автоматизации тестирования

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

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

  • boost

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

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

    Литература:


    Автор(ы) Название Год Ссылка
    Ариндам Мукерджи 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.х, полной обратной совместимости между ними нет как в пистоне, ага.

    Литература:


    Автор(ы) Название Год Ссылка
    Макс Шлее Qt 5.3. Профессиональное программирование на C++ 2015 https://goo.gl/aZ66gK
    Макс Шлее Qt 4.8. Профессиональное программирование на C++ 2012 https://goo.gl/Slb1In (книга) +
    https://goo.gl/toUDWc (исходники примеров)
    Марк Саммерфилд Qt. Профессиональное программирование 2011 Только Qt 4.х:
    https://goo.gl/qpkZFm (книга) +
    https://goo.gl/LIIECh (исходники примеров)
  • Другие хорошие библиотеки

    Несколько специализированных библиотек для часто встречающихся задач. Все — маленькие, быстрые и простые в освоении:

    • libcurl - сишная библиотека для работы с сетью (существует также curlpp - крестовая обертка для нее, но использовать ее не стоит, ибо разработка заброшена еще в 2009 году)
    • SFML - работа с графикой и аудио
    • FLTK - графические интерфейсы

    И еще куча библиотек на любой вкус.


Q: Я прочитал все вышеперечисленное, теперь я гуру! Что дальше?
A: Дальше переходишь по ссылке, пробуешь отвечать на вопросы и понимаешь, что ты пока в самом начале пути. Кроличья нора крестов практически бездонна, поэтому продолжать постигать тонкости и детали можно очень и очень долго. В то же время, на этом этапе у тебя должно быть достаточно знаний, чтобы уверенно писать неплохой код. Поэтому читай исходники открытого софта и библиотек, отправляй пулл-реквесты в них, читай книжки по предметным областям и общим методикам разработки, а дальше уже сможешь запилить свой проект или вкатиться в существующий.


Аноним 21/06/16 Втр 20:39:26 #2 №776347 
А вообще, я за то, чтобы кидать ссылку на шапку, а не вставлять ее сюда. Слишком уж большая.
Аноним 21/06/16 Втр 20:41:25 #3 №776349 
Как то ОП пошел на свалку
И нашел крутую палку
Палку вымазал говном
Получился агроном

Агроном взял в руку хуй
И ударил по компу
Напиисал он компилятор
Скажем им спасибо - ой!
Аноним 21/06/16 Втр 20:41:37 #4 №776350 
>>776347
ну или вкидывать укороченную версию и ссылку на полную.
Аноним 21/06/16 Втр 20:56:45 #5 №776365 
>>776347
Поздно уже голосовать. Давно всё решили
Аноним 21/06/16 Втр 21:36:10 #6 №776390 
>>776265
Попытался вот так подобрать, но он в конце на двух значениях зацикливается и не может точнее подобрать строку. Какие ещё варианты есть?
http://ideone.com/zyapfV
Аноним 21/06/16 Втр 21:39:33 #7 №776391 
>>776390
ты ведь сказал, что не можешь менять а, а теперь он у тебя char[] вместо charЗВЕЗДА.
Аноним 21/06/16 Втр 21:40:15 #8 №776392 
>>776391
Нет. Я не могу менять код. Могу только а менять
Аноним 21/06/16 Втр 22:15:04 #9 №776431 
>>776392
Всё отбой. Не так понял условие. Не равно надо было, а не больше и не меньше. То есть просто вписать nan.
Аноним 21/06/16 Втр 22:47:14 #10 №776462 
А как можно узнать переопределена ли у объекта определенный метод? Допустим у меня есть объект ball и я хочу вызвать у него update.
Аноним 21/06/16 Втр 23:12:39 #11 №776489 
>>776462
Чую, можно как-то через шаблоны сделать, но что мешает использовать статик каст?
http://ideone.com/7ZiMVY
Аноним 22/06/16 Срд 00:21:11 #12 №776542 
Для C++ есть нормальные фреймворки уровня Symphony, Django, Rails для веба, чтобы их еще кто-то использовал, ну и вообще экосистема для веб-разработки? Можно ли найти работу в таком направлении?
Можно ли найти работу фрилансером или на удаленке? Или весь с++ - это обязательно пот, прыщи и поедание мозолей?
Можно ли разрабатывать со скоростью, сравнимой с с#, java, python?
Аноним 22/06/16 Срд 00:41:05 #13 №776555 
>>776542
Нет Нет Нет Да Нет.
Аноним 22/06/16 Срд 01:00:28 #14 №776566 
>>776462
SFINAE же.
Аноним 22/06/16 Срд 01:01:15 #15 №776567 
14665464753210.png
Посаны, от чего говно на пиерелейтед может происходить? Я просто в ахуе. maxabs это double если че. Пытаюсь написать LU-разложение, вот полный код
http://pastebin.com/rMdPtG4j
Аноним 22/06/16 Срд 01:06:55 #16 №776569 
>>776567
Блять, заменил abs на std::abs и заработало. Это вообще как?
Аноним 22/06/16 Срд 01:51:51 #17 №776577 
>>776569
Тому что ты дубина стоеросовая. abs - это C-шный abs из <cstdlib>, который работает только с интами. Тебе нужно было fabs тогда использовать. А std::abs - это перегруженная функция из стандартной библиотеки C++.
Аноним 22/06/16 Срд 03:42:35 #18 №776611 
>>776555
Я тебе ниверю
>>776542
Бамп
Аноним 22/06/16 Срд 09:06:50 #19 №776667 
Не тонем
Аноним 22/06/16 Срд 09:11:32 #20 №776674 
>>776577
А почему конпелятор ничего не говорит, когда я абсу дабл передаю?
Аноним 22/06/16 Срд 14:14:32 #21 №776956 
14665940724490.webm
Парни, меня охуевшие хохлы выгнали к вам. Какие вопросы обычно задают на c++ собеседованиях? На стажера. Помогите спасите.
Аноним 22/06/16 Срд 14:19:29 #22 №776966 
Есть функции f(int&& n) и f(int n). Чем будет отличаться процесс "становления" n переданным числом при вызове f(4), например?
Мне интересно, что просходит с четверкой в памяти. Она сначала где-то создается и потом копируется или же адрес переменной становится адресом этой созданной четверки?
Аноним 22/06/16 Срд 14:22:24 #23 №776970 
>>776966
Ну если этот инт создан на куче, то передается адрес наверное.
Если на стеке, то хз, мб тоже адрес.
Аноним 22/06/16 Срд 14:23:13 #24 №776972 
>>776577
int abs(int x) {return x & 0x8fffffff;}
int abs(int x) {return x < 0 ? -x : x;}

Насколько первая реализация быстрее? Насколько вторая надёжней?
Аноним 22/06/16 Срд 14:24:14 #25 №776974 
>>776972
Поправка - 0x7fffffff вместо 0x8fffffff.
Аноним 22/06/16 Срд 14:39:16 #26 №776995 
>>776970
инт - rvalue, какая тут куча
Аноним 22/06/16 Срд 14:43:51 #27 №777005 
>>776972
первая не очень-то и быстрая. да еще и платформо-зависимая.
компилятор может очень хорошо оптимизировать ветвление, но с битовой операцией ничего не сделает.
Аноним 22/06/16 Срд 14:48:20 #28 №777013 
>>776995
Точно не путаешь ниче?
Аноним 22/06/16 Срд 14:52:27 #29 №777022 
>>777013
Всмысле?
f(4), 4 - rvalue
Аноним 22/06/16 Срд 15:06:08 #30 №777042 
>>777022
Да да, я просто только первое предложение прочитал
Аноним 22/06/16 Срд 15:14:59 #31 №777058 
Крестаны, а вы (ну или знакомые ваши какие по плюсам) участвуете в хакатонах? Вопрос не в вашей любви к хакатонам, а есть ли вообще хакатоны по плюсам или используются плюсы на общих каких-нибудь?
не геймсджэмы
Аноним 22/06/16 Срд 15:18:06 #32 №777062 
>>777058
а разве есть хакатоны по плюсам?
Аноним 22/06/16 Срд 15:34:01 #33 №777078 
>>776542
нет
нет
да, но не в вебе
нет
смотря что но вообще нет, наверное
Аноним 22/06/16 Срд 15:36:14 #34 №777084 
>>777062
В этом и вопрос
Аноним 22/06/16 Срд 16:17:23 #35 №777113 
>>776956
в очко дашь или синглтон напишешь?
есть два каста...
Аноним 22/06/16 Срд 16:19:49 #36 №777117 
>>777113
один static, другой dynamic
Аноним 22/06/16 Срд 16:23:33 #37 №777122 
>>777058
>хакатон
нужно что-то на чем можно быстро сделать прототип, кресты плохо подходят
Аноним 22/06/16 Срд 16:24:45 #38 №777125 
>>776542
В таких фреймворках для С++ нет большого смысла. Главная причина - как в забивании гвоздей микроскопом. Микроскоп (С++ разработчик) дорог, обращаться с ним надо аккуратно, дешевле нанять ораву джава-макак.

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

Таких разнообразных специальных штук в индустрии достаточно много при этом. Но обычно их на гитхабы не выкладывают, и мало кому о них наружу рассказывают. nginx - одно из приятных исключений, хотя начинался именно таким образом.
Аноним 22/06/16 Срд 16:26:47 #39 №777126 
14666020072220.png
>>777005
> с битовой операцией ничего не сделает
Аноним 22/06/16 Срд 17:38:02 #40 №777226 
>>776956
Каков размер указателя?
Аноним 22/06/16 Срд 17:38:53 #41 №777228 
>>777126
откуда пикча?
Аноним 22/06/16 Срд 17:51:21 #42 №777233 
>>777228
От Агнера.
Аноним 22/06/16 Срд 18:01:35 #43 №777242 
>>777233
Дашь линк?
Аноним 22/06/16 Срд 18:04:49 #44 №777244 
>>777242
"agner, C++" - первый результатт в любом поисковике.
Совсем охуели уже.
Аноним 22/06/16 Срд 20:45:09 #45 №777396 
>>777126
что можно сделать с a&b?
а картинка - классические законы де Моргана
Аноним 22/06/16 Срд 21:12:03 #46 №777421 
14666191239870.png
>>776185
Какая именно математика? То что нужно будет ебаться с гуем я догадывался.
Аноним 22/06/16 Срд 22:03:45 #47 №777473 
>>777421
Тервер, статистика, функциональный анализ и чуть-чуть кибернетики. С гуем ебутся другие, не я.
Аноним 22/06/16 Срд 22:03:54 #48 №777474 
>>777396
>де Моргана
Откуда эта повадка называть все тавтологии высказываний законами де Моргана? Охуеть просто.
Аноним 22/06/16 Срд 22:19:08 #49 №777494 
>>777474
я школьник, мне можно
Аноним 22/06/16 Срд 23:13:10 #50 №777556 
Вечер добрый.
Можно ли сие упростить?
http://ideone.com/7k8efB
Аноним 22/06/16 Срд 23:40:49 #51 №777580 
>>777556
http://ideone.com/9HF3pW
Аноним 23/06/16 Чтв 11:33:17 #52 №777862 
14666707977970.jpg
Программач! Такой вопрос. Я изучаю с++, на руказ книга ООП-С++ Р. Лафоре. Вроде бы всё годно, поясняется и разбираются примеры, но я чувствую себя в подвешенном состоянии, потом что тулком не разобрался с массивами и классами, и с прочей мелочью что является так сказать "костяком". Шапку треда пролистал, схоронил что-то и на меднях почитаю, но всё же, если не обращаться к книге, какие основные вещи я должен знать чтобы понимать базу в целом? Просто собираюсь менять работу и ловлю себя на мыслях что если мне зададаут какой-то вопрос, я обосрусь. Какие часто задаваемые вопросы, на собеседовании, мне стоит разобрать? И какие вопросы задавали вам, допустим, уровень "джуниор"?

пикрандом
Аноним 23/06/16 Чтв 12:03:00 #53 №777912 
>>777862
> И какие вопросы задавали вам, допустим, уровень "джуниор"?
Зачем нужен виртуальный деструктор?
Аноним 23/06/16 Чтв 12:17:59 #54 №777941 
>>776674
а с хуя ли он за тебя должен решать, что делать?
Аноним 23/06/16 Чтв 12:18:26 #55 №777942 
>>777862
По собственному опыту, в большинстве контор на собеседованиях дают примеры кода на листке А4 распечатанные и просят рассказать, что будет в результате их выполнения. Блять эти примеры настолько мутные, что если встретится в обычной разработке - автор данного говна подлежит мучительной смерти Как правило на наследование и тд. В одной конторе даже была классика i++ + ++i
Аноним 23/06/16 Чтв 12:27:07 #56 №777961 
>>777942
> i++ + ++i
На современном процессоре a[i++] будет быстрее чем a[++i]
Аноним 23/06/16 Чтв 12:30:53 #57 №777968 
>>777961
На современном процессоре a[i++] и a[++i] будут выдавать разные результаты.
Аноним 23/06/16 Чтв 12:41:12 #58 №777978 
>>777968
Это любому понятно.
Но один и тот же цикл можно построить и с a[i++] и с a[++i].
И скорость будет разная из-за inter-dependency - процессор во втором случае не сможет так же эффективно распараллелить инкремент и доступ к памяти по указателю.
Аноним 23/06/16 Чтв 12:42:26 #59 №777981 
>>777968
А на старом — одинаковые, что ли?
Аноним 23/06/16 Чтв 12:50:31 #60 №777992 
>>777978
Ну-ка, дай статистику, что-то не особо верится.

>>777981
Ты не умеешь в иронию.
Аноним 23/06/16 Чтв 12:56:46 #61 №777994 
>>777981
На старом - одинаковые, потому что ни микроинструкций еще не было, ни микро-execution юнитов, ни умности процессора, который сам сейчас распараллеливает все что можно.

>>777992
Возьми померяй.
Аноним 23/06/16 Чтв 12:58:18 #62 №777995 
>>777994
>На старом - одинаковые
ШОК!!! семантика C++ зависит от процессора, в который компилируют код!
Аноним 23/06/16 Чтв 13:05:45 #63 №778003 
Нубовопрос: блок кода в лупе, она при каждой итерации "новый" или один и тот же?
for (int i=0;;i++){
    int z = 5;
}
В момент, когда i станет равно единице и начнётся новый проход, будет ли существовать z?
Практически это ни на что не влияет, вроде бы, но интересно. (Ведь всё равно компилятор не даст использовать z до объявления, или именно потому и не даёт, что блок "новый"?)
Аноним 23/06/16 Чтв 13:09:04 #64 №778005 
>>778003
z будет создаваться и уничтожаться каждую итерацию. В случае с интом это не страшно, но с объектами так можно делать, только если на то есть причины.
Аноним 23/06/16 Чтв 13:09:43 #65 №778006 
>>778003
новый
чтоб был старый используй static или в новых версиях state
Аноним 23/06/16 Чтв 13:10:42 #66 №778009 
>>778005
Оптимизатор их будет создавать и уничтожать на стеке, поэтому пофиг
Аноним 23/06/16 Чтв 13:12:11 #67 №778010 
>>778005
>>778006
Спасибо.
Аноним 23/06/16 Чтв 13:12:35 #68 №778011 
>>777995
Опечатка. Имелось в виду что разницы по скорости на старых CPU не будет.
Аноним 23/06/16 Чтв 13:53:11 #69 №778035 
чем отличается i++ от ++i? в циклах и в арифметических выражениях.
sageАноним 23/06/16 Чтв 13:54:15 #70 №778036 
>>778035
Это не ньюфаг-тред.
Аноним 23/06/16 Чтв 13:54:46 #71 №778039 
>>778035
i++ делает инкремент и возвращает предыдущее значение.
++i делает инкремент и возвращает новое значение.
Аноним 23/06/16 Чтв 13:56:58 #72 №778041 
>>778039
> i++ делает инкремент и возвращает предыдущее значение.
В связи с этим название языка C++ весьма доставляет.
Аноним 23/06/16 Чтв 16:14:51 #73 №778122 
Посоны, говно плюсо заебало сил нет. Ну какого хуя в 2016 я должен следить за тем чтобы каждая переменная была проинициализирована? В той же джаве при попытке использования неинициализированной переменной компилятор сразу посылает нахуй, а в классах по дефолту все инициализированно.
Аноним 23/06/16 Чтв 16:30:23 #74 №778141 
>>778122
Во всех компиляторах стопицот ворнингов на эту тему.
Аноним 23/06/16 Чтв 16:38:48 #75 №778148 
14666891283930.png
Подскажите пожалуйста нубу, можно ли как-то символ преобразовать в оператор?
Или каждый случай из 4 через кейс делать?
Аноним 23/06/16 Чтв 16:45:42 #76 №778153 
>>778141

хуй там. если переменная в классе.
Аноним 23/06/16 Чтв 16:46:35 #77 №778154 
СМЕРТЬ С++ - ЛОЗУНГ КАЖДОГО УВАЖАЮЩЕГО СЕБЯ С++ ПРОГРАММИСТА
Аноним 23/06/16 Чтв 16:46:53 #78 №778155 
>>778148
нет
Аноним 23/06/16 Чтв 16:47:08 #79 №778156 
>>778148
У тебя несколько вариантов - использовать свитч или создать словарь "символ" - "операция". Операцию можешь сделать сам через классы или лямбды, либо использовать <functional>.
Аноним 23/06/16 Чтв 16:53:52 #80 №778162 
>>778154
мёртвое не может умереть
Аноним 23/06/16 Чтв 16:55:28 #81 №778163 
>>778156
Нельзя. Это не скриптовый язык. Не путай его.
Аноним 23/06/16 Чтв 17:07:34 #82 №778166 
>>778148
>>778163
http://ideone.com/UA68qh
Аноним 23/06/16 Чтв 17:10:55 #83 №778168 
>>778166
Ты его не в оператор преобразовал, а по другому иф записал. Это не считается.
Аноним 23/06/16 Чтв 17:20:50 #84 №778175 
>>778166
Ну или так:
http://ideone.com/5MJVkM
Но с лябдами, конечно, красивше.

>>778168
А как ты собрался в скриптовых языках по-другому делать? Через exec что ли?
Аноним 23/06/16 Чтв 17:23:35 #85 №778176 
>>778175
> Через exec что ли?
Да
Аноним 23/06/16 Чтв 18:01:56 #86 №778203 
У крестоблядей есть рекурсивные лямдбы?
Аноним 23/06/16 Чтв 18:37:16 #87 №778219 
Крестобляди, почему у вас функция, реализующая итеративный процесс, на самом деле реализует рекурсивный процесс?
Аноним 23/06/16 Чтв 19:18:05 #88 №778256 
>>778203
Ты об этом?
http://ideone.com/bK2sZW

>>778219
Пример в студию.
Аноним 23/06/16 Чтв 19:23:42 #89 №778263 
>>778256
>Ты об этом?
>http://ideone.com/bK2sZW
>std::function<long(int)> lambda = [&](int x) -> long
>;a;navbkag'na'bn;sajb ; lambda ->
А нормальный синтаксис не завезли?
Аноним 23/06/16 Чтв 19:24:11 #90 №778264 
Хочется повелосипедить что нибудь клиент-серверное прям на POSIX сокетах.
Подкиньте идей крестаны.
Аноним 23/06/16 Чтв 19:25:24 #91 №778268 
>>778264
чат
Аноним 23/06/16 Чтв 20:05:13 #92 №778305 
>>778264
>на POSIX сокетах
Бросай их, у них нет перспектив.
Бери STREAMS.
Аноним 23/06/16 Чтв 20:54:56 #93 №778338 
>>778305
Я хотел подрочить нижний уровень чтобы как глубже ПОНИМАТЬ многопоточность и работу с сетью как таковую.
Аноним 23/06/16 Чтв 20:54:58 #94 №778339 
>>778264
boost::asio
настольный теннис по udp, ftp сервак/клиент
Аноним 23/06/16 Чтв 22:41:55 #95 №778432 
>>778338
Чтобы понимать работу с сетью читай канонического Стивенса.
Чтобы понимать многопоточность - исходники скедулеров 1:N, N:N и на закуску M:N, но это тебе рано. Почитай dz - https://habrahabr.ru/post/282037/, он конечно ебнулся со своей фантомасией, но исходники классических юникосов читал еще когда тебя не зачали и в базовых вещах разбирается хорошо, и объясняет их понятно.
Аноним 23/06/16 Чтв 22:42:23 #96 №778433 
Напомните, почему я должен дрочить c++ года 2 для более-менее нормального ориентирования, если я могу за 2 месяца потеребить java и в итоге получать столько же? При этом без байтоебства/кучи правил и исключений из правил/когда не знаешь, сколько будет размер инта.
Аноним 23/06/16 Чтв 22:42:45 #97 №778434 
>>778432
>Стивенса
Какого?
Аноним 23/06/16 Чтв 22:43:51 #98 №778435 
>>778434
Он один, Ричард W

>>778433
Если на твоем окрестном рынке труда так обстоит дело, то и выбирай джаву. На других рынках дело бывает что обстоит иначе.
Аноним 23/06/16 Чтв 22:45:58 #99 №778438 
>>778435
А книгу какую? У него 2 про сети
Аноним 23/06/16 Чтв 22:50:18 #100 №778443 
>>778438
Гораздо больше.
Но нельзя же так лениться.
Ты ведь сейчас попросишь ISBN, номера конкретных страниц, где скачать, и спросишь нет ли видео, а то читать скучно.
Аноним 23/06/16 Чтв 22:57:14 #101 №778448 
14667118349030.jpg
Java-плебей зашёл к вам в тред.

Очень хочется иногда побыть ближе к "железу" ПК, и максимально близко к работе с сетью. Взялся ещё за дискретную математику/алгоритмы/Куранта и Роббинса. В общем, хочу из обезьяны стать человеком.

Тут советовали выше Стивенса по сетям. Что скажете про Олифера - "Сети"?

Хочу что-то по архитектуре ПК, но не Таненбаума. Можно на английском. Желательно, чтобы книга дала базу, благодаря которой я смогу понимать ПРИНЦИП работы и смог самостоятельно читать и понимать, что такого в новеньком процессоре/видеокарте.

И по операционным системам реквестирую чего-нибудь.
Аноним 23/06/16 Чтв 22:57:33 #102 №778449 
>>778443
>Гораздо больше.
Нет. Только TCP/IP Illustrated и UNIX Network Programming
Аноним 23/06/16 Чтв 22:58:21 #103 №778450 
>>778448
Таненбаума
Аноним 23/06/16 Чтв 23:17:20 #104 №778461 
>>778449
Считаешь все тома Illustrated и UNP за одну книжку?
У них даже авторы не совпадают.

>>778450
Этого читать вообще не надо, ни о чем.
Аноним 23/06/16 Чтв 23:21:48 #105 №778464 
>>778461
>Считаешь все тома Illustrated и UNP за одну книжку?
Да. Т.к. читать по отдельности наверно нет смысла
Аноним 23/06/16 Чтв 23:26:47 #106 №778468 
>>778464
Многим ли оно надо, читать второй том иллюстраций, например?
Аноним 23/06/16 Чтв 23:35:07 #107 №778475 
>>778468
А я ебу? Я не читал. Поэтом у тебя и спросил какую книгу читать
Аноним 24/06/16 Птн 00:18:49 #108 №778494 
>>776956
Первый уровень:
Размер указателя.
Пример наследования. Мол что и в какой последовательности сработает.
Примеры кода. Нужно дать ответ что произойдёт.
Обычно все вопросы очень простые.

Второй уровень:
Включает в себя первый.
Скорость поиска в листе, в векторе, в отсортированных. И прочее развлекалово базовыми вещами связанными с алгоритмами и структурами.
Размер структуры. Тут соль в выравнивании.
Ещё больше говнокода.

Третий уровень:
Обычно всем похуй на первые два этапа.
Может выборочно что-то спросят. Больше всего любят выравнивание.
Нечто забавное, типа алгоритма одновременного лока двух мьютексов.
Всё опирается на проекты, где участвовал и что мутил.
Какие архитектурные решения выбирал и почему.


Тебе нужен самый первый уровень.
Да и в большинстве случаев всем похуй на результаты. Если ты джун, то твоя САМАЯ сильная сторона - умение решать проблемы самому.
Аноним 24/06/16 Птн 00:48:37 #109 №778505 
>>778432
Аноны, что тебе отвечали, это ния.
Спасибо, правда выглядит жестковато.
Аноним 24/06/16 Птн 01:26:21 #110 №778509 
14667207816550.png
>>778505
Жестковато - это если бы тебя послали учиться не на книжках для старшеклассников средней умности, где грубые и упрощенные модели разжеваны до максимума на понятных примерах их реализации в простых как валенок системах уровня BSD 4.3, а послали бы изучать что-нибудь стоящее и работающее в реальной жизни - например, о многозадачности посоветовали бы понять как это работает в современенном оракле - и исследовать стетоскопом потому больше туда ничем не влезешь.
Аноним 24/06/16 Птн 01:57:10 #111 №778515 
14667226307090.jpg
>>778509
Но ведь POSIX... Сокеты...
Аноним 24/06/16 Птн 02:00:06 #112 №778516 
14667228061520.png
>>778515
>Я хотел подрочить нижний уровень чтобы как глубже ПОНИМАТЬ многопоточность и работу с сетью как таковую.
>нижний уровень
>глубже ПОНИМАТЬ
>многопоточность
sageАноним 24/06/16 Птн 02:41:08 #113 №778540 
>>778122
А какого хуя мои программы должны делать лишнюю работу, зануляя память, только ради тебя — дауна?
Аноним 24/06/16 Птн 02:59:33 #114 №778542 
>>778540
Охуенная оптимизация
2016 год напоминаю
sageАноним 24/06/16 Птн 03:01:02 #115 №778543 
>>778542
Это ответ, даун?
Аноним 24/06/16 Птн 03:37:07 #116 №778552 
Бинарное дерево и запись его в файл.
Написал метод для реализации этой нехитрой задачи, но по итогам в файле остается только самый последний элемент.
В упор не вижу решения проблемы, помогите. Вот, собственно, сам метод, без дерева (там всё довольно стандартно).

https://ideone.com/FVFynY

sageАноним 24/06/16 Птн 03:53:32 #117 №778553 
>>778552
ofstream fout(fileName, ios::app);
sageАноним 24/06/16 Птн 03:54:37 #118 №778554 
>>778552
Да и вообще, нафига при записи каждой ноды переоткрывать файл, лол.
sageАноним 24/06/16 Птн 06:38:35 #119 №778564 
>>778122
Я тебе открою секрет: в плюсах всё всегда инициализируется.
Аноним 24/06/16 Птн 11:13:40 #120 №778633 
>>778448
"Архитектура компьютера и проектирование компьютерных систем" Дэвид А. Паттерсон, Джон Л. Хеннесси
Аноним 24/06/16 Птн 13:41:09 #121 №778706 
Тупой вопрос. Решил перекатиться на Qt, однако есть пиздецкое опасение, что программы, сделанные на нём, будут требовать каких-нибудь экзотических библиотек для своей работы, которых у обычного пользователя может и не быть, и потому не хотелось бы обосраться при демонстрации новой вундервафли научнику/НАЧАЛЬНИКУ. Нужны ли для работы этого говна конечному пользователю всякие хитровыебанные библиотеки?
Аноним 24/06/16 Птн 13:45:31 #122 №778707 
>>778706
Линкуй кутэ статически.
Аноним 24/06/16 Птн 13:49:58 #123 №778709 
>>778707
Спасибо, ознакомлюсь.
Аноним 24/06/16 Птн 14:04:24 #124 №778718 
>>778706
у них сейчас есть утилиты windeploy
androuddeploy
которые кладут все нужные либы рядом с твоим exe.
Так что твои опасения напрасны
Аноним 24/06/16 Птн 14:05:27 #125 №778719 
>>778707
статическая линковка сейчас официальна разрешена только при купленой за деньги лицензией на Qt
Аноним 24/06/16 Птн 15:21:52 #126 №778787 
>>778633
Окей, беру его на английском и эту(https://habrahabr.ru/post/259505/) книгу.
Аноним 24/06/16 Птн 16:38:36 #127 №778827 
>>778787
Не читал книжку с хабры, но если она, как написано, дополняет Паттерсона и Хеннесси то лучше ее и читай сразу. Два раза читать одно и тоже бестолку, там довольно много схемотехники.
Аноним 24/06/16 Птн 16:43:54 #128 №778830 
>>778827
Окей, тогда выберу что-то одно.
Ещё советуют понять:
Теорию автоматов
Электротехнику

Или это для вечных студентов-у-мамы-на-шее-сидящих?
Аноним 24/06/16 Птн 18:42:58 #129 №778906 
>>778830
Теорию автоматов не надо, она сцуко сложная, хотя сам конечный автомат штука простая. Теория тебе может потребоваться только для таких нишевых занятий как разработка (а не использование) тулз для верификации программ и последующего сброса фрустраций путем травли хаскелистов и иже с ними, считающих что типы на что-то годны.
Конечные автоматы надо понимать и уметь строить (когда надо) и использовать (когда надо). В TCP Illustrated с автоматом состояний TCP разберись, с использованием epoll или IOCP программок понапиши.

Электротехника нужна если что-то паять собрался - но это проще аутсорснуть. Вот иметь некоторое представление о программировании FPGA, например - это полезно.
Аноним 24/06/16 Птн 20:41:05 #130 №778989 
>>778122
проиницилизировал тебе за щёку, проверяй
Аноним 24/06/16 Птн 21:13:01 #131 №779018 
>>778516
>>778509
Чет мне кажется ты выебщик простой.
Ты бы еще посоветовал тому анону почитать как ток в оптоволокне течет.
Аноним 24/06/16 Птн 21:16:55 #132 №779022 
>>778543
Твоя мамка даун
Аноним 24/06/16 Птн 21:24:39 #133 №779028 
14667926799460.png
Я вчерашний ньюфаг, подскажите что не так?
Вроде, должно работать...
Аноним 24/06/16 Птн 21:29:12 #134 №779034 
>>779028
Сообщения компилятора читаем?
Еще небось и поддержка c++11 не включена.
Аноним 24/06/16 Птн 21:30:39 #135 №779035 
14667930393110.png
>>779034
Читаю, но не пойму. Пробовал так, не работает тоже.
Аноним 24/06/16 Птн 21:33:10 #136 №779039 
>>779035
Ну написано же синим по белому - включи поддержку c++11.
Аноним 24/06/16 Птн 21:34:08 #137 №779040 
>>779039
А какая версия С++ лучшая?
Спасибо.
Аноним 24/06/16 Птн 21:37:50 #138 №779045 
>>779040
В с++11 больше фич, чем в обычном с++ (он же с++98 или с++03). В с++14 еще больше фич, чем в с++11, разница между с++11 и с++98 намного больше, чем между с++11 и с++14. Поэтому на твой выбор.
Аноним 24/06/16 Птн 21:40:27 #139 №779051 
>>778461
>Таненбаума
>Этого читать вообще не надо, ни о чем.
Поехавший? Это вообще лучшее, что есть по операционным системам.
Аноним 24/06/16 Птн 21:40:30 #140 №779052 
>>779045
Включил С++11, это работает: >>779035
А это нет: >>779028
Хотя пишу как по учебнику...
Аноним 24/06/16 Птн 21:41:16 #141 №779056 
>>779040
Которая Java
Аноним 24/06/16 Птн 21:41:49 #142 №779058 
14667937094860.png
И еще вопрос, в gcc нет компилятора с++14?
Аноним 24/06/16 Птн 21:43:03 #143 №779062 
>>779058
http://stackoverflow.com/questions/31965413/compile-c14-code-with-g
Аноним 24/06/16 Птн 21:47:46 #144 №779069 
>>779052
Потому что читай блядь сообщения компилятора. Если не понимаешь - заноси в гуглтранслейт и читай.
Аноним 24/06/16 Птн 21:51:55 #145 №779079 
>>779069
Всё понял, просто, я недавно начал изучать С++, спасибо.
Аноним 24/06/16 Птн 21:54:22 #146 №779085 
>>779051
Субъективно - нет, не лучшее. Это можно назвать словом "классика".
Аноним 24/06/16 Птн 22:24:03 #147 №779110 
>>779051
Лучшее что есть по операционнам системам - купить одноплатный арм, и попробовать написать ОС самому.
Аноним 24/06/16 Птн 22:28:29 #148 №779113 
Юзает кто кодблокс? Никак не могу нагуглить как включить С++14. >>779062
Аноним 24/06/16 Птн 22:30:05 #149 №779114 
>>779110
>купить одноплатный арм, и попробовать написать ОС самому.
Пффф, это для слабаков. Я ядро для x86_64 писал
Аноним 24/06/16 Птн 22:30:37 #150 №779115 
>>779113
Там есть вкладка для ввода произвольных параметров компилятора
Аноним 24/06/16 Птн 22:35:56 #151 №779116 
Дайте ссылку на шапку. Хочу посмотреть, как такая разметка делается.
Аноним 24/06/16 Птн 22:38:23 #152 №779117 
>>779115
Не могу понять всё равно, как я понял, это тут >>779058
?
Я гуглил, но не нашёл, помогите?
Аноним 24/06/16 Птн 22:44:42 #153 №779120 
>>779117
Ты слепой бля? Ты хоть что-то пробуешь сам сделать? Или зовёшь Сычева-компьютерщика, когда у тебя иконка скайпа с рабочего стола пропадает? Ты как работать собрался?
OTHER COMPILER OPTIONS
Аноним 24/06/16 Птн 22:47:22 #154 №779121 
>>779120
Хм... Написал туда -std=c++14 и заработало, я молодец. И тебе спасибо за помощь.
Аноним 25/06/16 Суб 02:10:11 #155 №779221 
14668098114960.jpg
>>777862
>на меднях
>на меднях
Аноним 25/06/16 Суб 02:14:24 #156 №779222 
>>778263
auto lambda = ... допустимо, если тебе не принципиально, чтобы было std::function, а подойдет любой Callable.
Аноним 25/06/16 Суб 02:18:51 #157 №779225 
>>779116
https://github.com/pr-hats/2ch.hk-pr-Hats/blob/master/CppThread.html
Аноним 25/06/16 Суб 02:19:11 #158 №779226 
>>778219
Потому что лямбды - сахар над классами, которые сахар над структурами, которые ... Борщ утри, короче.
Аноним 25/06/16 Суб 02:23:02 #159 №779230 
>>779222
С auto ты рекурсию не построишь.
Аноним 25/06/16 Суб 03:08:03 #160 №779243 
Поясните за вот это:

auto foo() -> foo_type {..}

Зачем так выебываться, если можно foo_type foo(){...}?
Аноним 25/06/16 Суб 03:59:41 #161 №779248 
>>779230
Без особого труда можно на constexpr-машине сделать, чтобы внутри лямбды был известен тип, которому она присваивается. Если интересно, в понедельник могу показать в общих чертах.
Аноним 25/06/16 Суб 04:33:14 #162 №779257 
>>779248
Пили
Аноним 25/06/16 Суб 04:45:22 #163 №779259 
>>779243
Где проще найти имя функции и/или тип возвращаемого значения?

auto foo(wadjalw, dawjawd, gjgjdfklgldf) -> dawjhdahwduahwiduahwdiuawd;
auto bar(dawdgg, dfgdfgdfgdf) -> awdjdlwkaawd;
auto baz(ehuirygdfgd, sdfokspdfosf); -> wadjawdjawdawdiawddawuihdaiwdhaiuwdh;

dawjhdahwduahwiduahwdiuawd foo(wadjalw, dawjawd, gjgjdfklgldf);
awdjdlwkaawd bar(dawdgg, dfgdfgdfgdf);
wadjawdjawdawdiawddawuihdaiwdhaiuwdh baz(ehuirygdfgd, sdfokspdfosf);
Аноним 25/06/16 Суб 07:14:55 #164 №779274 
>>779243
В первую очередь для лямбд.
Аноним 25/06/16 Суб 11:05:15 #165 №779336 
Почему в С++ не советуют делать абстрактные классы, содержащие собственные члены?
Аргументация строится на том, что, мол, придется вызывать конструктор родителя. И в чем проблема? Что на джаве, что на пхп это нормальная практика.

Например, что плохого в:

class A
{
    int a, b;

public:
    A(int a, int b) : a(a), b(b) {}
    virtual void f() = 0;
};

class B : public A
{
    int c, d;

public:
    B(int a, int b, int c, int d) : A(a, b), c(c), d(d) {}
};

class C : public B
{
public:
    C(int a, int b, int c, int d) : B(a, b, c, d) {}
    void f() {}
};
Аноним 25/06/16 Суб 11:18:39 #166 №779340 
>>779336
1) В том, что тебе придётся вызывать всю эту иерархию. В жавах/пхп тормозов и без того хватает.
2) Как думаешь, почему абстрактные классы так же называют интерфейсами? Потому что это затычка с методами, не больше.

Если тебе похуй на это и вопрос о перформансе до миллисекунд не стоит – пиши так, чо.
Аноним 25/06/16 Суб 13:39:36 #167 №779391 
Объясните плокс:

class Class{
friend foo(){}
}

friend foo();

1) Зачем вообще есть возможность определять функцию не член в пределах определения класса?
2) Почему это я должен еще и объявлять её в outer scope?
3) Почему в этом языке повсюду вот такой пиздец?
Аноним 25/06/16 Суб 13:48:04 #168 №779399 
>>779391
Дружественной может быть не только функция но и класс/структура.
Аноним 25/06/16 Суб 16:09:28 #169 №779520 
14668601689000.png
Объясните, почему сохраненное значение станет неверным? Итераторы - это же просто указатели. End сохранен и не меняется, если вектор увеличивается, то первые элементы до end() остаются на своих местах, у них те же самые адреса, поэтому условие begin() == end() станет ложным.
Аноним 25/06/16 Суб 16:34:43 #170 №779559 
>>779520
>условие begin() == end() станет ложным.
там beg и end сравниваются
Аноним 25/06/16 Суб 18:03:09 #171 №779645 
>>779520
Что за шрифт?
Аноним 25/06/16 Суб 19:32:38 #172 №779697 
>>779110
И велосипедить давно известные алгоритмы.
Аноним 25/06/16 Суб 20:32:43 #173 №779750 
>>779559
И что? Все равно будет так, как я сказал.
Аноним 25/06/16 Суб 20:41:05 #174 №779754 
>>779520
>>779750
http://en.cppreference.com/w/cpp/container/vector/push_back

If the new size() is greater than capacity() then all iterators and references (including the past-the-end iterator) are invalidated. Otherwise only the past-the-end iterator is invalidated.
Аноним 25/06/16 Суб 21:06:56 #175 №779782 
>>779336
Кто не советует? Что за дичь. Стандартная практика при наследовании реализации.
Аноним 25/06/16 Суб 21:18:12 #176 №779793 
>>779782
C++ Core Guidlines открой хотя бы прежде чем писать, дурашка.
Аноним 26/06/16 Вск 01:13:31 #177 №779936 
>>779399
И что? Ни на один вопрос этот ответ не отвечает
Аноним 26/06/16 Вск 07:23:29 #178 №780037 
>>779520
Некоторые контейнеры под свои элементы выделяют память. Если такому не хватает чтоб запихнуть значение, то он старую удаляет, и выделяет новый участок, побольше раза в два. Новый участок может располагаться совсем в другом месте.
Аноним 26/06/16 Вск 13:54:48 #179 №780237 
>>776344 (OP)
Пытаюсь рисовать кое-что на Qt, наследуюсь от QGraphicsView, делаю override paintEvent, вызываю в нем paintEvent базового класса и кое-что свое.
Проблема в том, что paintEvent вызывется, но то, что в нем написано не рисуется. Точнее рисуется, но при каких-то очень конкретных случаях.
Аноним 26/06/16 Вск 16:15:19 #180 №780453 
Привет сиплюсплюсцы.

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

Вроде норм ИДЕ, но автокомплит из коробки там пиздец.
Аноним 26/06/16 Вск 16:26:18 #181 №780462 
>>780453
>И как сделать так, чтобы обычный автокомплит работал не через раз?
Взять нормальную IDE/прописать пути хидеров руками если есть такая возможность.
Аноним 26/06/16 Вск 17:16:44 #182 №780494 
>>779793
В факе isocpp прямо в самом начале поясняется, что они имеют в виду под "something is evil".
Аноним 26/06/16 Вск 17:26:22 #183 №780499 
>>780494
Не знаю где ты тут
http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rh-abstract
увидел "что-то злое". Просто есть рекомендация не стрелять себе по ногам от создателей языка – не стоит просто так класть на это хуй.
Аноним 26/06/16 Вск 17:31:37 #184 №780504 
>>779391
1. Самое очевидное применение - когда тебе нужно, скажем, реализовать +, чтобы было можно писать и mamka+1, и 1+mamka. Ты не можешь сделать operator+ встроенным, потому что тогда левым операндом будет допустима только мамка. Если определишь снаружи, то увеличится связанность - хуй пойми кто, не имеющий отношения к мамке, сможет вызвать твой оператор, а когда ты поменяешь что-нибудь в мамке, то ты можешь забыть изменить и этот оператор, ибо его текст где-то в другом месте и без ссылок на мамок в общем случае. Делая friend-определение, ты убиваешь сразу двух зайцев: текст твоего стороннего оператора фактически все равно внутри класса, а вызвать его можно только через поиск Кенига, когда один из аргументов будет мамкой, поэтому он не сможет вступить в конфликт с какими-то другими операторами (особенно актуально для шаблонов). Есть и другие сценарии, например, гугли "неконстантные константные выражения".
2. Ты не должен объявлять, она сама неявно объявится, но найдется только через поиск Кенига. Если тебе понадобилось ее объявить, то тебе и не нужно friend-определение тогда, ибо ты все профиты потеряешь.
3. Потому что тебе дали вместо молотка ящик с инструментами, и ты платишь необходимостью изучать сценарии их использования за гибкость.
Аноним 26/06/16 Вск 17:33:10 #185 №780507 
>>780499
Не в том, а в более старом. https://isocpp.org/wiki/faq/big-picture#defn-evil
Аноним 26/06/16 Вск 18:44:22 #186 №780561 
>>777226
Зависит от платформы, в большинстве случаев это 4 байта. Я не обосрался?
Аноним 26/06/16 Вск 18:44:35 #187 №780562 
Ананасы, пытаюсь запустить кое-какой проект в Qt, но вылезает рантайм ошибка. Дебагер дошел до хэдера "stl_vector.h", operator[]. Не могу понять, что не так?

http://pastebin.com/c2L6bnit
Аноним 26/06/16 Вск 18:55:11 #188 №780571 
>>780561
Почти. Зависит от платформы, да. На x86 - 32 бита, на x86-64 - 64 бита.
Аноним 26/06/16 Вск 18:56:59 #189 №780573 
Аноны, вот создаю я чистый проект в visual studio. Создаю там main.cpp, определяю void main() {}. Делаю include <iostream> - и у меня 500 ошибок при компиляции.
Правильно ли я понимаю, что <iostream> - это фактически хедер к библиотеке? И нужно еще как-то подключить уже скомпилированную библиотеку?
Аноним 26/06/16 Вск 19:08:47 #190 №780575 
14669573273050.png
Ебаный в рот, как пользоваться отладчиком в QT Creator? Когда ставлю точку останова и запускаю отладку, почему-то программа вместо пошагового выполнения приходит сразу к концу и печатает ответ. А ебаная студия вообще перестала отображать значения переменных и их изменение и к тому же отображает не все переменные. Посоветуйте отладчик, а то все какое-то ебаное говно кроме олли дебагера. Но мне сейчас нужен не такой низкий уровень.
Аноним 26/06/16 Вск 19:10:38 #191 №780577 
>>780575
Алсо, хочу отладчик высокого уровня с возможностью смотреть в ассемблер. Есть такое под винду?
Аноним 26/06/16 Вск 19:11:31 #192 №780578 
>>780573
Давай свой код, посмотрим.
Аноним 26/06/16 Вск 19:18:19 #193 №780582 
14669578993910.png
>>780578
Аноним 26/06/16 Вск 19:32:53 #194 №780586 
>>780577
с сорцами прога? тогда и vs сойдет, и windbg
Аноним 26/06/16 Вск 19:34:41 #195 №780587 
>>780586
С сорцами, но vs глючит так, как я описал. Некорректно отображает значения переменных, показывает не все локальные переменные.
Аноним 26/06/16 Вск 19:36:54 #196 №780590 
14669590146110.png
Как определить, сколько слов занимает функция? Только при помощи дизассемблеров?
Аноним 26/06/16 Вск 19:37:09 #197 №780591 
>>780582
У тебя походу либы где-то проебались проверь есть ли они.
Аноним 26/06/16 Вск 19:56:00 #198 №780609 
>>780591
Пишет fatal error C1083: Cannot open include file: 'corecrt.h': No such file or directory
Погуглил - говорят баг студии, неправильные пути.
За что этим уебкам только платят по 150к$.
Аноним 26/06/16 Вск 19:57:29 #199 №780612 
>>780609
Ліл! Посмотри нет ли у тебя в пути до твоей студии не латинских символов.
Аноним 26/06/16 Вск 20:19:12 #200 №780632 
>>780612
Нет, конечно.
Проблема не только у меня. В студийном батнике определены неправильные пути к ucrt (C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt\).
Сейчас буду думать как менее костыльно пофиксить.
Еще ставил ее 8 часов с тремя ребутами. 2 раза делал repair, сукпздц.
Аноним 26/06/16 Вск 20:24:59 #201 №780643 
>>780632
Качал с офф сайта?
Аноним 26/06/16 Вск 20:54:55 #202 №780672 
>>780643
С рутрекера оригинальный msdn-образ прошки с зашитым ключом.
После установки вылезла ошибка, что не получилось накатить Update 2. Полез на оф. сайт, попробовал iso- и web-версии, делал repair. Кое-как до рабочего состояния довел. В общем, наебался знатно.
Когда гуглил ошибки, ебанаты с саппорта советовали "ставить на чистую систему", лел. То есть я должен переустановить винду, чтобы поставить ide?
По сравнению с JetBrains IDEA, которая ставится за 3 минуты и работает идеально, это просто ад. Пожелал рака жопы детям разработчиков.
Аноним 26/06/16 Вск 21:05:27 #203 №780682 
>>780672
Попробуй снести текущую среду и дотнет, а потом установить официальную комюнити 2015, все должно работать если ты совсем не ушатал все. На крайний случай можешь обмазатся Embarcadero Rad хуемое
Аноним 26/06/16 Вск 21:05:59 #204 №780684 
>>780682
Или тому подобным говном
Аноним 26/06/16 Вск 21:08:58 #205 №780686 
>>780672
Ты какое-то тупое уёбище, качаешь IDE, ставшую бесплатной (платная только для крупных ынтерпрайзов и отличается интеграцией с йоба-сервисами мса) и ещё жалуешься на хуёвую работу. Почему я использую её начиная с 2008-й версии и не разу не ебался с установкой?

Криворукий наверн.
Аноним 26/06/16 Вск 21:09:28 #206 №780687 
>>780682
Еще часов 5 тратить просто нереально.
Плюс я уже нашел решение. В макросах прописана версия ucrt 10240, а у меня стоит 10150. Попробую обновиться.
Аноним 26/06/16 Вск 21:10:54 #207 №780689 
>>780686
В чем твоя охуительность? Что прожал несколько кнопок? Я тоже их прожал и получил пердольку. Тут чисто везение.
Аноним 26/06/16 Вск 21:20:34 #208 №780696 
>>780672
>То есть я должен переустановить винду, чтобы поставить ide?
Да. Это спермоособенности разработки. Советую удалить все компоненты .net из систему, все c++ redistributable и попробовать снова. Все кто хвалят установщик студии итт спермохлебы.
Аноним 26/06/16 Вск 21:35:34 #209 №780709 
>>780689
В том что я не жалуюсь на пердолинг, который сделал себе сам скачав хуиту с рутрекера.
>>780696
Так там никаких аналогов нормальной фс и менеджера пакетов нету, щито поделать.
Аноним 26/06/16 Вск 21:43:54 #210 №780721 
Сижу себе, пишу прогу на Qt. Добавил новый код, работает. Добавил еще - рантайм ошибка. Включаю дебаггер, а он мне указывает на код, который до этого работал. Никаким образом новый код не мог повлиять на него. Ну че за хуйня, а?
Аноним 26/06/16 Вск 21:48:42 #211 №780724 
14669669226830.jpg
>>780721
enjoy your c++
Аноним 26/06/16 Вск 21:50:01 #212 №780727 
>>780721
Пытаюсь найти баг, кстати, уже третий день. Самое худшее то, что спросить некого - никакой психически здоровый человек не будет дебажить мой проект за просто так.
Аноним 26/06/16 Вск 21:53:37 #213 №780729 
>>780727
git bisect по идее пойдет.
То есть берешь половину нового кода, смотришь, есть ли баг. И так далее.
Аноним 26/06/16 Вск 22:36:15 #214 №780759 
>>780727
Скопировал весь код в новый проект. Заработало. Ахуенно, да?
Аноним 26/06/16 Вск 23:56:36 #215 №780831 
>>780759
>Скопировал весь код в новый проект. Заработало. Ахуенно, да?
Это называется "криво собранно". Чаще делай clean.
Аноним 27/06/16 Пнд 00:01:12 #216 №780836 
>>780831
10 раз clean делал и пересобирал.
Аноним 27/06/16 Пнд 08:33:40 #217 №780972 
супец братья.
хочу подписать/портировать на цпп под андройд свои ништяки.
слышал о ндк. и это все что я о ней слышал дайт гайд по еклипсу как отстроить его в андроидцпп или основы работы с ндк за 15 минут.
Аноним 27/06/16 Пнд 09:41:38 #218 №781005 
14670096981260.png
Поясните, как сделать проверку какой тип переменной введён?
Я нуб, но в задаче это требуется.
Аноним 27/06/16 Пнд 09:50:41 #219 №781010 
>>781005
в строковом - это "сто пятьдесят семь"? тогда парсер пиши
Аноним 27/06/16 Пнд 12:23:38 #220 №781111 
>>781005
Перегрузка методов
Шаблоны
Аноним 27/06/16 Пнд 12:24:50 #221 №781114 
>>781111
>>781010
Ну, с таким я еще не сталкивался. Потом тогда сделаю.
У меня была только 1 мысль - в стринги писать числа, а потом сравнивать их. Но тут двузначные числа уже не подойдут, поэтому пока отброшу эту задачку.
Аноним 27/06/16 Пнд 14:16:51 #222 №781179 
>>778719
Я разрешаю, линкуй. Ток мамке не говори.
Аноним 27/06/16 Пнд 14:18:04 #223 №781180 
>>780587
Собери дебаг версию даун
Аноним 27/06/16 Пнд 16:35:19 #224 №781281 
>>780590
clan/g++++++ -S -c your_shit.cpp ?
Аноним 27/06/16 Пнд 16:36:11 #225 №781283 
>>780575
а ты оптимизации вырубал? если нет, то катись-вырубай
Аноним 27/06/16 Пнд 17:26:41 #226 №781303 
>>779257
Прикрутить библиотеку с b.atch.se и дальше примерно вот так:
http://pastebin.com/6zBNDKrV
Аноним 27/06/16 Пнд 17:58:28 #227 №781323 
>>781114
Перегрузка на самом деле очень легкая концепция. Попробуй посмотреть пример, сразу все поймешь.
Аноним 27/06/16 Пнд 18:43:43 #228 №781337 
>>781323
>очень легкая концепция
template <typename T> void f (T);
template <> void f <int> (int);
void f (int);
void f (signed);
void f (const int);
void f (int) noexcept;
[[deprecated]] void f (int);
Одно только разъяснение нубу, как и почему будет разрешаться для этих объявлений перегрузка f (1), займет несколько дней. И это только самое очевидное.
Аноним 27/06/16 Пнд 19:39:33 #229 №781366 
Поясните за HyperThreading. Правильно ли я понимаю, что мы не можем просто нагрузить виртуальные потоки? Как правильно их нагружать?
Аноним 27/06/16 Пнд 20:23:35 #230 №781402 
>>781337
У Страуструпа описано
Аноним 27/06/16 Пнд 21:24:16 #231 №781506 
while(cin>>a){...}

>> возвращает ссылку на cin, а ссылочный тип не может быть использован в condition, так как не существует нулевой ссылки.

Но код почему-то работает. Где здесь подвох?
Аноним 27/06/16 Пнд 21:31:03 #232 №781513 
>>781506
Потому, что ты не туда смотришь.
Смотри оператор >>
Он возвращает bool
Аноним 27/06/16 Пнд 21:35:32 #233 №781522 
>>781513
Точнее нихуя не так.
Аноним 27/06/16 Пнд 21:36:47 #234 №781523 
>>781506
Возвращается istream, который потом конвертится в bool. Как он это делает, написано, например, тут:
http://www.cplusplus.com/reference/ios/ios/operator_bool/
Аноним 27/06/16 Пнд 21:40:12 #235 №781532 
>>781523
Функция bool вызывается ватоматически в bool контекстах?
Аноним 27/06/16 Пнд 21:43:08 #236 №781536 
>>781532
Ну while понимает только булевы, поэтому и приводит выражение в скобках к bool автоматически, да.
Аноним 27/06/16 Пнд 21:44:15 #237 №781539 
>>781532
Да, точно.

Блять, как мне это надоело. Пишешь такой код, а тут тебе при компилции деляют вызов на функцию, о которой ты ничего не знаешь.

Это просто пиздец, где эта ваша программист сам всем управляет, вот тебе ящик вместо инструментов, а, пидоры?
Блять как же у меня жопу рвет от этого
Аноним 27/06/16 Пнд 21:44:41 #238 №781542 
>>781532
http://melpon.org/wandbox/permlink/rD3I6PRnmpibQrFi
Аноним 27/06/16 Пнд 21:49:24 #239 №781549 
>>781539
В смысле? А как ты собираешься привести объект к bool без помощи явно указанного оператора? По-моему, все очевидно. Если ты не знаешь фишки языка, то это уже твои проблемы. Иди пиши на брейнфаке, там все предельно ясно.
Аноним 27/06/16 Пнд 21:57:08 #240 №781560 
>>781549
Нет, не очевидно. Надо убрать в принципе все случаи неявной хуйни, пусть java этим занимается. Если не знать о таких случаях, то как дебажить вот это?
Аноним 27/06/16 Пнд 22:01:55 #241 №781566 
>>781560
Это не неявная хуйня, а как раз-таки наоборот. Если у тебя не определен оператор перевода в bool, то компилятор выдаст ошибку.
Аноним 27/06/16 Пнд 23:23:17 #242 №781680 
>>781402
Я прочитал Страуструпа в свое время на каникулах примерно за две недели. Но тогда я был не совсем нуб уже, так что, вероятно, нужно исходить примерно из месяца. А без нормального знания ангельского и того больше, ибо русское издание есть дрисня, которую невозможно читать.
Аноним 27/06/16 Пнд 23:27:46 #243 №781685 
>>781513
Да ты охуел, что ты несешь вообще?
>>781532
Не во всех. Есть несколько явно описанных контекстов (условия циклов и if, static_assert и еще что-то), в которых происходит т.н. контекстуальное преобразование в bool. Оно легально даже если ты сделаешь explicit оператор преобразования, ибо формализуется так: если корректно написать bool foo (выражение), то конверсия из выражения нормально пройдет, с соответствующим результатом. Сделано такое для удобства - когда ты пишешь выражение в условии, то никакой арифметики рядом нет, поэтому запутаться трудно и неявность только помогает.
Аноним 27/06/16 Пнд 23:29:56 #244 №781687 
>>781560
Ну тогда первым делом иди менять a+b на ::operator+ (::a,::b); а то вдруг компилятор не угадает, лол.
Аноним 27/06/16 Пнд 23:33:25 #245 №781698 
14670596051920.jpg
Сап, аноны, посоветуйте хороший сборник библиотек по математике на завтра. Нужен МАКСИМАЛЬНО полный до завтра, а то меня в гугле забанили. Ну и заранее спасибо.
Аноним 27/06/16 Пнд 23:34:06 #246 №781701 
>>781698
Блжад, так жмет срок, что >завтра встречается чаще чем стоило бы.
Аноним 27/06/16 Пнд 23:35:56 #247 №781704 
>>781698
http://en.cppreference.com/w/cpp/links/libs#Math
Аноним 27/06/16 Пнд 23:39:07 #248 №781708 
>>781704
Спасибо, сойдет.
Аноним 28/06/16 Втр 00:53:40 #249 №781762 
Cап, посоны. Недавно начал учить Кьют, решил сделать видеоплеер. Вопрос не по нему, а по самой структуре проги: как считаете, юзать Qt Designer и переносить слоты для созданных там кнопок в MainWindow - зашквар? Если нет, то можно ли все кнопки кидать в MainWindow или разумнее сделать разделение по классам?
Аноним 28/06/16 Втр 01:03:15 #250 №781774 
>>781687
зачем у параметров ::?
Аноним 28/06/16 Втр 01:05:42 #251 №781775 
>>781704
>Половина Boost, причем не только в math

Как предсказуемо
Аноним 28/06/16 Втр 01:07:24 #252 №781777 
>>781687
Во, идеально
Аноним 28/06/16 Втр 01:42:43 #253 №781795 
>>781337
Добавь сюда type promotion и narrowing и настанет "enjoy your cpp". Вообще, это дрисня на мой взгляд. Надо добавить ключ компилятора, который нахуй отключает всю эту overloading resolution поеботу, оставляя только exact match rule. Все равно в реальном коде этой "удобной" сранью никто не пользуется. По-хорошему еще и implicit type convertion нужно выпилить целиком нахуй, оставив только bool contexted
Аноним 28/06/16 Втр 06:54:52 #254 №781850 
Господа, два вопросика:
Qt без его покупки позволяет собрать в динамические библиотеки не весь код, а только используемые классы и их зависимости? Если да, то как? Ну, чтобы helloworld не весил мегабайты.
И другой вопрос: с C++ вообще реально устроиться на удаленку/во фриланс, пойти там в какую-нибудь компанию писать энтерпрайзный код, бэкенд к каким-нибудь современным веб-приложениям, еще чему-то такому? Или какие перспективы вообще?
Аноним 28/06/16 Втр 07:09:20 #255 №781856 
>>781850
http://doc.qt.io/qt-5/build-sources.html - вся информация что и как собирать, однако насколько я помню ещё в 4-й куте меньше 4 мб даже вырезав всё получить было нельзя.
Алсо, есть различные компрессоры/пакеры.

Можно, но только если у тебя есть хороший опыт – это обязательно в любой удалёнке, тем более в плюсах.
Фриланс – нет. Хотя изредка на апворке бывают заказы на гуйню, но едва ли так можно более менее зарабатывать.

Перспективы – хайлоад, различный риалтайм (вроде игрушек и компуктерного зрения), низкоуровенные библиотеки, иногда десктоп и, конечно же, поддержка легаси вот уж где работа никогда не закончится.
Аноним 28/06/16 Втр 07:11:57 #256 №781857 
>>781775
У плюсов есть две главные библиотеки – буст с костылями языка и кучей неведомой хуйни и Qt на все случаи жизни.
Аноним 28/06/16 Втр 09:22:36 #257 №781890 
>>776344 (OP)
Такое дело, я студент-инженер, специальность: "электроника и автоматика физических установок".
У нас на первом курсе был С и С++, с достаточно слабыми лекциями и зачеты просто так проставили. Вот сейчас я понял, что если что и знал по С++, то забыл.
Но зато впереди есть 2 летних месяца и у меня возникла идея подучить кресты, точнее я выбираю как бы продуктивнее провести время. По специальности, как я понял, я буду сталкиваться с микроконтроллерами, электронными схемами, если честно не особо представляю суть работы.
Собственно вопрос, насколько инженеру-электронщику актуален С++, на каком уровне желательно его знать, на что стоит обратить внимание? Понимаю, что речь не идет о том, чтобы стать нормальным программистом за 2 месяца, только выучить основы для дальнейшего развития. Может имеет смысл ограничиться языком С или посмотреть в сторону питона, скажем?
Аноним 28/06/16 Втр 10:04:10 #258 №781913 
>>781850
в HFT активно берут на удаленку. и даже парт тайм. так что можно в несколько контор устроиться. но там требуют очень хороший уровень + знания трейдинга
Аноним 28/06/16 Втр 10:06:15 #259 №781916 
>>781890
в электротехе с++ ограничено применим. лучше уж си. питон вообще для пердоликов с адруиной
Аноним 28/06/16 Втр 12:57:34 #260 №782047 
>>781795
Тащемта, это легко сделать. Пишешь шаблонную обертку, перегружаешь все операторы строго для однотипных операндов, преобразования не реализуешь. И заменяешь везде int на Wrapper <int> etc. Из-за инлайновости никакой деградации не будет, текста прибавится ровно на джва символа для каждого литерала, если использовать auto и пользовательские литералы, которые по 1_w будут генерировать такие обертки.
Аноним 28/06/16 Втр 13:57:11 #261 №782106 
>>782047
Мне кажется, что clang форкнуть будет не намного сложнее.
Аноним 28/06/16 Втр 14:04:09 #262 №782119 
http://pastebin.com/79hB14E1

Допустим, есть поток CheckDataFromServer, который регулярно обновляет веб-страницу, пока она не даст мне нужную информацию.

Если 30 секунд никакой информации не выдаётся, прекратить работу потока. При этом основной поток останавливать нельзя.

Насколько нормально создавать отдельный поток-супервизор, который будет ждать эти 30 секунд? Есть ли тактика получше?

std::thread не предлагать, ибо Visual Studio 2010 и C++11 тут поддерживается лишь частично.
Аноним 28/06/16 Втр 14:08:45 #263 №782127 
>>782119
Нормально, если ожидание сделано нормальным, неактивным, а не через while (!readData()).
Аноним 28/06/16 Втр 14:12:32 #264 №782137 
>>782127
Я же скинул пасту. Через WaitForSingleObject, вызванного из потока-супервизора.
Аноним 28/06/16 Втр 14:36:06 #265 №782198 
>>782119
boost::thread
Аноним 28/06/16 Втр 14:42:52 #266 №782228 
>>782137
Я не силен в WinApi, но рискну предположить, что специально заточенный под ожидание вызов оптимизирован до минимизации фоновой нагрузки на этот поток. Так что норм, по идее.
Аноним 28/06/16 Втр 14:43:08 #267 №782229 
>>782198
boost::boost
Аноним 28/06/16 Втр 15:36:46 #268 №782302 
14671174070990.jpg
Помогите умственно отсталому.
Не могу считать символ с клавиатуры. Необходимо считать нажатие управляющих клавиш, а именно стрелочек.

int a = 0;
a = getch();
cout << a;

Раньше давно, я так и делал и получал 72, 75, 77 и 80. Сейчас же мне MSVS 2010 выводит 244 для всех четырех стрелочек?
ЧЯДНТ?
Аноним 28/06/16 Втр 15:41:20 #269 №782308 
>>782302
Стандарт не гарантирует, что стрелочки и прочая хуйня влезут в char, они не из базового набора. Поэтому ты получаешь implementation defined работу с консолью, и студия не обязана, вообще говоря, даже сохранять поведение в разных версиях, не говоря уже о совместимости с *nix.
Аноним 28/06/16 Втр 15:42:32 #270 №782312 
>>782308
Прочел что
"При чтении функциональной клавиши или клавиши со стрелкой каждая функция должна вызываться дважды"
Видимо в этом и загвоздка. Вопрос, как мне быть в данном случае?
Аноним 28/06/16 Втр 15:49:01 #271 №782321 
>>782302
#define IsKeyPressed(KeyCode) (GetAsyncKeyState(KeyCode) & 0x8000)

bool IsLeftPressed()
{
    return IsKeyPressed(VK_LEFT);
}

bool IsRightPressed()
{
    return IsKeyPressed(VK_RIGHT);
}

Ну ты понял.
Аноним 28/06/16 Втр 15:54:23 #272 №782328 
>>782321
Я так понимаю это win API? Я его еще не пробовал.
Приложение консольное.
Аноним 28/06/16 Втр 16:10:48 #273 №782356 
>>782328
Это лишь функции для опроса клавиатуры, в консольком тоже будут работать.

Всё, что тебе нужно знать - это коды клавиш https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx и функцию GetAsyncKeyState() https://msdn.microsoft.com/en-us/library/windows/desktop/ms646293(v=vs.85).aspx .
Аноним 28/06/16 Втр 16:14:40 #274 №782358 
>>782302
Костыли и быдлокод
char a;
while(a = getch())
{
cout << (int)a << endl;
}
Но работает.
Аноним 28/06/16 Втр 16:15:35 #275 №782362 
>>782356
Спасибо, прочту. А то мой вариант >>782358 ужасен.
Аноним 28/06/16 Втр 17:51:03 #276 №782486 
Делаю что-то вроде ежедневника в Qt. Нужно сохранять и считывать текстовые данные из файла. fstream ведь не подойдет, да? Нужно будет считывать и записывать данные в определенном заголовке (позиции), и этот самый поиск нужного заголовка, как я понимаю, будет занимать достаточное кол-во времени. Есть какие-нибудь либы?
Аноним 28/06/16 Втр 17:54:21 #277 №782487 
>>782486
Пример, чтоб у вас появилось представление о чем я говорю:

example.dat

2016 : 6 : 28
-тут
-много
-текста


2016 : 6 : 28
-тут
-тоже
Аноним 28/06/16 Втр 17:54:49 #278 №782489 
>>782486
Что мешает хранить в том же или соседнем файле инфу о записях?
Аноним 28/06/16 Втр 17:58:40 #279 №782494 
14671259206410.png
>>782486
> считывать текстовые данные из файла. fstream ведь не подойдет, да?

Братишка, нахуй тебе этот пердолинг, если в Qt есть sqlite?
Аноним 28/06/16 Втр 18:04:10 #280 №782502 
>>782494
что-то я не подумал про базы данных
Аноним 28/06/16 Втр 18:26:27 #281 №782528 
Аноны, хочу поставить VS 2015, но установщик выдаёт сообщение "Для указанной программы требуется более поздняя версия windows". Неужели на семёрку не ставится?
Аноним 28/06/16 Втр 18:27:00 #282 №782529 
>>782528
SP1 надо.
Аноним 28/06/16 Втр 18:29:30 #283 №782533 
14671277700070.jpg
>>782529
Ну как бы он и стоит. Что не так?
Аноним 28/06/16 Втр 18:40:31 #284 №782547 
>>782533
бамп, аноны, как поставить? удалил 2013ю, хочу 2015ю, но тут такая ерунда, в гугле ничего подобного не заметил
Аноним 28/06/16 Втр 18:46:05 #285 №782551 
>>782533
Значит моар обнов надо. Я ставил на обновленную до упора, все было норм.
Аноним 28/06/16 Втр 19:57:59 #286 №782600 
>>782547
Обновления качай, тебе же сказали.
Аноним 28/06/16 Втр 20:07:38 #287 №782609 
Какую книгу почитать, чтобы начать понимать и оперировать шаблонами с большей уверенностью чем с базовыми знаниями после прочтения страуструпа/липпмана/статей на cppreference? Таки А.Александреску?
Аноним 28/06/16 Втр 20:14:06 #288 №782612 
>>782609
Разве что если хочешь бесцельно вымазываться шаблонами ради шаблонов. В остальных ситуациях любая из перечисленных тобой книжек даёт знния для 99% жизненных случаев.
Аноним 28/06/16 Втр 20:21:14 #289 №782617 
>>782612
Александреска в том числе?
Хочу блять наконец-то не только понимать как работают enable_if и прочая муть, а и понимать, когда это полезно использовать. Чтобы метапрограммирование и SFINAE не были для меня умными словами из википедии.
Аноним 28/06/16 Втр 20:26:50 #290 №782623 
>>782609
Бля, ну в шапке же все написано. Вандевурд-Джоссатис - для понимания механизма и обхода подводных камней. Александреску - для применения в проектировании. Абрахамс-Гуртовой - для метапрограммирования.
Аноним 28/06/16 Втр 20:28:53 #291 №782625 
>>781366
Хули вы отвечаете дебилам, которые не могут установить студию. Лучше помогите мне.
Аноним 28/06/16 Втр 20:34:24 #292 №782629 
>>782119
> Visual Studio 2010
allo, yoba, privet
https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx
Аноним 28/06/16 Втр 20:35:35 #293 №782631 
>>781890
4to tebe meshaet vyuchit' vse tri yazyka? ili ty otstaly?
Аноним 28/06/16 Втр 20:36:23 #294 №782633 
>>782551
>>782600
Только что накатил обновления - такая ж фигня
Аноним 28/06/16 Втр 20:37:59 #295 №782635 
>>782633
поставь уже десятку и съеби
Аноним 28/06/16 Втр 20:40:56 #296 №782640 
>>782635
Любишь бэкдоры?
>>782633
Хм. Заскринь, что конкретно пишет и на каком этапе установки.
Аноним 28/06/16 Втр 20:43:02 #297 №782643 
>>782640
> Любишь бэкдоры?
а как будто семёрка не дырявая? и как будто вместе с обновлениями для неё нельзя притащить всё тоже самое говно, что есть на десятке? лоллирую просто с тебя
Аноним 28/06/16 Втр 21:03:35 #298 №782662 
>>782643
> и как будто вместе с обновлениями для неё нельзя притащить всё тоже самое говно, что есть на десятке?
У даунов с автоматической установкой обновлений - можно. Остальные смотрят описание обновлений в MSDN и выбирают, что ставить.
Аноним 28/06/16 Втр 21:04:25 #299 №782665 
>>782643
А кого ебут потенциальные возможности? Факт, что десятка была уличена в посылании телеметрии, а с семеркой прецедентов не было. Если будут - придется валить и с нее, а пока выбор для меня очевиден. Алсо, телеметрия это еще хуйня, а вот та же пиратская студия на десятке может внезапно выпилиться вместе с игорами, в рамках борьбы с пиратством.
Аноним 28/06/16 Втр 21:12:21 #300 №782679 
>>782665
Телеметрия в семерке есть, но легко отключается, достаточно удалить/не останавливать лишь несколько обновлений:
https://blog.kplus.pro/adm/windows-7-8-disable-telemetry.html
Аноним 28/06/16 Втр 21:23:29 #301 №782698 
Спешите видеть, спермобляди спорят, какой сорт спермы вкуснее.
Посоны, оффтоп же. Тем более, с точки зрения c++ *nix куда как лучше.
Qt Аноним 28/06/16 Втр 21:24:51 #302 №782700 
Хелп, анон. Плюсы учу давно, вроде бы кое-что знаю уже. Решил посмотреть, что за такая популярная вещь Qt. Где можно почитать нормальные гайды по этой теме? Документацию открывал, но она такая обширная, что прочитать ее всю возможным не представляется.
Там есть визуальная среда разработки, как в Borland Builder(возможность размещать кнопочки, поля ввода, итд)?
И есть ли там возможность писать программы с эффектами(как например в ворде 13, там все плавно переходит)? А то в Builderе UI получается грубоватый и без всяких красивых эффектов, которые есть в современных программах.
Аноним 28/06/16 Втр 21:25:05 #303 №782701 
>>782665
Зачем тебе пиратская студия, если ее бесплатно дают?
Аноним 28/06/16 Втр 21:37:34 #304 №782713 
>>782701
Плагины только для полной версии, не? И еще что-то было, типа code coverage. Так-то я никогда бесплатной не пользовался, у меня честная Enterprise.
Аноним 28/06/16 Втр 21:39:45 #305 №782716 
>>782679
Какой пафосный и самолюбивый скриптеныш, лол.
Аноним 28/06/16 Втр 21:53:52 #306 №782737 
>>782713
На Community плагины ставятся.
Аноним 28/06/16 Втр 22:10:34 #307 №782751 
>>782737
Видимо, это переиграли в 2015, да.
Аноним 28/06/16 Втр 22:38:08 #308 №782783 
>>782700
гугли макса шлее
Аноним 29/06/16 Срд 01:10:12 #309 №782906 
>>781916
Ну а автоматика, там же по-любому программировать на чем то надо? Или расчет в matlab-е, а потом на типовых элементах собирать схему?
>>782631
Nemnozko
Аноним 29/06/16 Срд 01:26:08 #310 №782918 
Почему после удаления объекта я всё ещё могу получить доступ к его методам через указатель?
Аноним 29/06/16 Срд 01:30:25 #311 №782923 
>>782918
Потому что память не забивается тут же нулями, а просто помечается как свободная.
Аноним 29/06/16 Срд 01:34:57 #312 №782925 
>>782923
Ты не понял вопроса. Я спрашиваю не "почему я не могу", а "ЗА ЧТО, СУКА!"
Почему бы не запретить это компулятором? Просто это не безопасно, лезть в память, которая уже свободна.
Я себе пару раз стрельнул в ногу.
Аноним 29/06/16 Срд 01:45:35 #313 №782928 
Хай. В следующем семестре курсовая и тема - обработка звука. Нужно записывать, резать, сшивать звуковые дорожки и всячески их редактировать на свое усмотрение.
Сейчас хочу определиться с библиотекой(ми).
Думаю о DirectSound. Что можете о ней сказать?
В общем прошу советов и чтива на лето по этой теме.
Аноним 29/06/16 Срд 03:11:13 #314 №782945 
>>782928
Нифига ты ответственный. С лета готовиться к следующему семестру.
Аноним 29/06/16 Срд 03:19:46 #315 №782947 
>>782945
почему бы и нет, если я нарыл методы.
Аноним 29/06/16 Срд 05:52:41 #316 №782958 
>>782947
А как же распечатать шпоры в последнюю ночь перед экзаменом? В нас пропал дух авантюризма!
Аноним 29/06/16 Срд 05:56:08 #317 №782960 
>>782958
Печатать? да ну. ток вручную. хоть запоминаешь
Аноним 29/06/16 Срд 06:51:55 #318 №782962 
могу я на плюсах написать свой язык?
Аноним 29/06/16 Срд 07:29:21 #319 №782969 
>>782962
Разрешаю тебе пойти в десятый класс.
Аноним 29/06/16 Срд 09:08:20 #320 №782997 
>>782962
Конечно :)
Как там, "на pythone можно написать нейронную сеть, а на с++ можно написать python". Другой вопрос - зачем.
Аноним 29/06/16 Срд 09:33:33 #321 №782999 
>>782918
Методы не привязаны к объекту, ало.
Аноним 29/06/16 Срд 11:43:56 #322 №783052 
>>782962
сначала нужен парсер, который будет определять что вообще пользователь пишет. на этом моменте проектируешь синтаксис языка.
потом компилятор/интерпритатор, который пропарсенный код будет переводить в инструкции для процессора/промежуточный байт-код. тут вообще пиздец. простой компилятор ты может и напишешь, но на то, чтобы написать хороший компилятор, который по качеству сравниться с clang-ом, у тебя уйдет уйма времени.
Аноним 29/06/16 Срд 12:31:32 #323 №783072 
>>783052
>но на то, чтобы написать хороший компилятор, который по качеству сравниться с clang-ом, у тебя уйдет уйма времени
Если ты знаешь асм и есть опыт, то транслятор из ssa с оптимизациями вроде DCE, CSE можно написать за пару месяцев. Это уже будет около O1 по скорости.
Аноним 29/06/16 Срд 12:43:07 #324 №783078 
>>782962
Без проблем. Это очень просто, на самом деле. Бери forth - это очень минималистичный стековый язык. Простой интерпретатор напишешь за неделю, если вообще без опыта. Если хочешь писать компилятор - бери llvm. Там все несложно, при этом получишь быстрый нативный код со всеми оптимизациями и минимумом усилий.
Аноним 29/06/16 Срд 16:07:52 #325 №783180 
>>780571
Не понял, я не тот чувак, которому ты отвечал, объясни. Я думал системы есть х32 и х64? Соотв. указатели имеют по 32 и 64 бита размеры. Что за х86? Объясни дауну, пожалуйста.

А еще всегда можно узнать размер указателя вот так:
type *p;
int x = sizeof p;
Я прав?
Аноним 29/06/16 Срд 16:12:50 #326 №783188 
>>777942
Объясни порядок действий i++ + ++i, как это будет выполняться вообще, пожалуйста.
Аноним 29/06/16 Срд 16:16:08 #327 №783194 
>>783180
x86 это и есть то, что ты подразумеваешь под x32. Погугли, бывают еще 8-битные, 16-битные, 128-битные и вообще любые процессоры.
Можно и так, как ты написал, а можно вообще через sizeof(void*).

>>783188
i++ + ++i - это undefined behaviour, поэтому его лучше не использовать в коде.
Аноним 29/06/16 Срд 16:17:53 #328 №783200 
>>778009
а вопрос еще: какой области видимости будет принадлежать i, если я его запишу так:
{
/ внешний блок/
for (int i = 0; i<10;i++)
{
/внутренний блок/
}
}

Я вроде писал такой примерчик, скорее ответ будет такой: переменная i будет видна только во внутреннем блоке, однако, почему так происходит? В K&R говорится, что цикл for (int i = 0; i<10;i++) эквивалентен такому циклу
int i = 0;
while (i<10)
{
/инструкции/
i++
}
тогда получается, что переменная должна быть видна и во внешнем блоке. Пожалуйста, помогите разобраться
Аноним 29/06/16 Срд 16:18:29 #329 №783202 
>>783194
Спасибо

>>783188 ньюфаг
Аноним 29/06/16 Срд 16:19:07 #330 №783204 
>>783194
Спасибо х2, ответил на 2 моих вопроса.
Аноним 29/06/16 Срд 16:21:11 #331 №783207 
>>783194
Еще хотел спросить, как лучше прохавать си и си++, я читал книжки и т. д., но сам понимаешь, после них остается много пробелов. Читать стандарт? Есть ли он на русском? Если нет, где мне его взять хотя бы на иглише?
Аноним 29/06/16 Срд 16:24:47 #332 №783209 
>>782925
>запретить это компулятором
Как ты это себе представляешь?
Аноним 29/06/16 Срд 16:51:43 #333 №783247 
>>783200
В Си Кернигана и Ричи может и аналог. Но в плюсах в цикле for (int i = 0; i<10;i++) i будет видна только в самом теле цикла.
Аноним 29/06/16 Срд 16:52:38 #334 №783248 
>>783207
Писать быдлокод, причем желательно чтобы за него тебе били по рукам.
Аноним 29/06/16 Срд 17:08:20 #335 №783258 
>>783248
А так помимо кучи практики в шапке куча книг особенно Скотта Мейрса и Саттера - очень годно
Аноним 29/06/16 Срд 17:28:12 #336 №783280 
>>783200
В Си вообще нельзя объявлять переменную в инициализаторе цикла (по крайней мере, в C89). Т.о. ты там можешь писать только первый вариант. В крестах второй вариант эквивалентен первому с дополнительным наружным блоком (не считая мелких нюансов с break и continue) - {int x = 1; for (...) {...}}.
Аноним 29/06/16 Срд 17:32:11 #337 №783288 
>>782925
Вызывать статические методы безопасно, ибо им вообще не нужен объект. Вызывать нестатические методы небезопасно, но нет способа быстро проверить в рантайме, указывает ли ptr на валидный объект, когда ты пишешь ptr->tvoyaMamka (). Представь, сейчас у тебя нет оверхеда, хранится 4 байта с указателем, и от тебя требуется лишь немного внимательности (или использование unique_ptr, где такой проблемы вообще нет). Если пытаться контролировать корректность, на каждый указатель будет дохуя дополнительных данных, а на каждое разыменование - куча проверок, вместо одной инструкции станет, например, тысяча. В быстром языке это неприемлемо.
Аноним 29/06/16 Срд 17:34:15 #338 №783291 
>>783280
Второй вариант <-> первый вариант.
Аноним 29/06/16 Срд 18:55:57 #339 №783355 
>>783209
>Как ты это себе представляешь?
Очевидно, как в расте.

>>782925
Пиздуй в раст трет.
Аноним 29/06/16 Срд 18:59:51 #340 №783358 
>>783355
>Очевидно, как в расте.
В расте это тоже не возможно.
Аноним 29/06/16 Срд 19:30:55 #341 №783388 
>>783358
Лень ждать пока ты спросишь почему поэтому щас объясню. На этапе компиляции это сделать нельзя т.к. выделение и удаление памяти происходит во время работы программы. Значит это можно делать только с помощью сборщика мусора и компилятор не может этого запретить.
Аноним 29/06/16 Срд 19:32:09 #342 №783391 
>>783388
Ебать ты убогий, многое явно знаешь о компиляторостроении.
Аноним 29/06/16 Срд 19:32:38 #343 №783393 
>>783391
Теперь ты объясни
Аноним 29/06/16 Срд 19:39:30 #344 №783402 
>>783393
Что объяснять-то? Ты о вещах вроде ARC и концепции растовских лайфтаймов хоть слышал, дурашка? Нахуй ты пишешь что-то о расте, когда у тебя о нём представление уровня "ну эт такая хуитка хз чо ваще делает"?
Аноним 29/06/16 Срд 20:06:30 #345 №783419 
14672199903000.png
>>783402
>>783393
Долбоебы только картинки в тредах смотрят, хорош распинаться.
Аноним 29/06/16 Срд 20:09:10 #346 №783425 
>>783280
Спасибо, понял тебя
Аноним 29/06/16 Срд 20:12:46 #347 №783440 
>>783419
Шестерню "кол-во костылей" к плюсам добавь.
Аноним 29/06/16 Срд 20:19:08 #348 №783452 
>>783440
> гибкость инструмента
Аноним 29/06/16 Срд 20:19:27 #349 №783454 
14672207679920.gif
>>783419
МОДУЛИ
Аноним 29/06/16 Срд 20:26:34 #350 №783467 
>>783452
> настолько гибкий, что выскальзывает из рук
Аноним 29/06/16 Срд 21:29:58 #351 №783566 
>>783419
Ну-ка, в чем выражается гибкость C++, в отличие от других языков? Приведи пример
Аноним 29/06/16 Срд 21:33:54 #352 №783573 
Привет парни.
Поясните, что такое LLVM и зачем он нужен? Почему нельзя просто пользоваться обычным компилятором/линковщиком?
Аноним 29/06/16 Срд 21:37:27 #353 №783578 
14672254473600.png
Почему QTextStream не наследовали от ostream? Если я хочу чтобы мой класс можно было выводить и через cout, и в какой нибудь Qt-ишный файл, мне нужно два раза operator<< определять?
Аноним 29/06/16 Срд 21:42:08 #354 №783587 
>>783578
Патамушта не хотели зависимостей от STL – всё красиво, стандартизировано и отлажено только сейчас.

>>783573
Потому что гладиолус, осиль хотя бы вики на эту тему, на вась.
Аноним 29/06/16 Срд 22:16:57 #355 №783645 
>>783573
>Поясните, что такое LLVM и зачем он нужен? Почему нельзя просто пользоваться обычным компилятором/линковщиком?

Посоны, что такое внедорожник? Почему нельзя просто ездить на обычном фордфокусе/велосипеде?
Аноним 30/06/16 Чтв 01:24:00 #356 №783885 
При помощи malloc выделяю память размером A байт. Создаю три массива, которые занимают B, C, D байт. Можно ли в выделенную память последовательно добавить информацию массивов, чтобы в ней они располагалить: A = B C D. Массивы имеют один тип данных, сумма точно совпадает.
Аноним 30/06/16 Чтв 06:59:27 #357 №783930 
Не нашёл треда по культе, поэтому пишу сюда.
Стоит ли использовать qt quick в проекте? Если да, то какие от этого будут плюшки?
Аноним 30/06/16 Чтв 07:01:29 #358 №783931 
>>783885
Да.
Аноним 30/06/16 Чтв 09:43:13 #359 №783993 
14672689938920.jpg
Как добавить объект наследуемого класса в вектор объектов родительского класса?
Аноним 30/06/16 Чтв 09:48:06 #360 №783994 
>>783931

Как, джокер?
Аноним 30/06/16 Чтв 09:53:56 #361 №783998 
>>783994
b = a
c = b + length(b)
d = c + length(c)
https://ru.wikipedia.org/wiki/New_(C%2B%2B)#Placement_new
Аноним 30/06/16 Чтв 10:27:22 #362 №784018 
>>783993
Храни в векторе указатели на родителя.
Аноним 30/06/16 Чтв 10:28:18 #363 №784019 
>>783885
Маллок не настолько медленный, чтобы экономить на такой хуйне.
Аноним 30/06/16 Чтв 10:41:27 #364 №784032 
>>783402
А какое отношение ARC к компиляции-то имеет?
Аноним 30/06/16 Чтв 10:51:35 #365 №784038 
>>784032
>А какое отношение ARC к компиляции-то имеет?
ARC проставляет изменение счетчиков ссылок во время компиляции?
Аноним 30/06/16 Чтв 11:19:31 #366 №784064 
>>783355
>Очевидно, как в расте
Раст не запрещает тебе произвольно лазать по памяти внутри unsafe, так же как С++ не заставляет тебя использовать сырые указатели вместо автоматических. Не можешь организовать работу с памятью вручную - используй автоматические средства.
Аноним 30/06/16 Чтв 11:55:21 #367 №784093 
>>784032
Наверно то, что он считает ссылки во время компиляции?
>>784064
Зато он ткнёт тебя носом вне ансейфа в это место, что и хотел тот антоша, и его модель памяти не несёт оверхеда в отличие от смартпоинтеров.
Аноним 30/06/16 Чтв 13:18:46 #368 №784141 
>>784093
>и его модель памяти не несёт оверхеда
Она несет оверхед в виде затраченного времени программиста.
Аноним 30/06/16 Чтв 13:40:25 #369 №784156 
С++ куны, у меня есть три дня,чтобы максимально больше получить знаний по плюсам,на что лучше время потратить - какие-то курсы смотреть,курить книгу или курить сайтофорумы?
Аноним 30/06/16 Чтв 13:41:48 #370 №784157 
>>784156
база какая? что уже знаешь?
Аноним 30/06/16 Чтв 13:41:56 #371 №784158 
>>784156
Забухай
Аноним 30/06/16 Чтв 13:44:33 #372 №784160 
>>784157
лабы в универе(реализация всяких алгоритмов в основном,пара проектов - типо натягивания выпуклых оболочек),использовал лишь стандартные библиотеки.
Аноним 30/06/16 Чтв 13:48:12 #373 №784166 
>>784157
Короче - уровень бомжа со знанием каких-то основ.
Аноним 30/06/16 Чтв 13:51:38 #374 №784171 
>>781762
Не зашквар. Главное в обработчиках кнопок не пиши основной код и называй кнопки нормально.
>>783930
QML нужен, если хочешь быстро нарисовать сложный плоский интерфейс. Есть биндинги. Любой объект можно расширять дополнительными данными прямо в коде. А сложную логику можешь писать на с++, связав QML и C++.
Аноним 30/06/16 Чтв 13:55:20 #375 №784175 
14672841203610.png
>>784160
Имхо, тогда лучше поучиться на практике. Сделай либо как можно больше тривиальных задач, либо несколько средних/сложных с пика, например.
По книге тоже нормально. Есть "Tour of C++" Страуструпа. Там как раз беглый осмотр всего языка.
Тонкости языка - "The C++ Programming Language" того же Страуструпа. Только ищи 4th edition.
Аноним 30/06/16 Чтв 13:56:14 #376 №784176 
>>784175
ありがとう
Аноним 30/06/16 Чтв 13:57:10 #377 №784177 
>>784176
сука блядь я анимедибилу помог!!!!!!!!!!!! как мне жить то теперь с этим
Аноним 30/06/16 Чтв 13:58:26 #378 №784181 
>>784177
私わ日本語がすきですよ
Я не анимедебил,я японский уже как год учу.
Аноним 30/06/16 Чтв 14:01:04 #379 №784185 
>>784181
ухххх гора с плеч
сложно? строить предложения уже можешь? понимать японскую речь без переводчика?
Аноним 30/06/16 Чтв 14:06:03 #380 №784190 
>>784185
Японскую речь без переводчика не могу,есть узнавание некоторых фраз,простые предложения могу строить,в стиле- "я люблю бухать,как дойти до ближайшего ларька". около 130 иероглифов знаю, это где-то уровень 2го-3го класса ихней школы. Зимой поеду экзамены сдавать. Много лулзов в языке.
Аноним 30/06/16 Чтв 14:13:37 #381 №784195 
>>784190
Тоже учу иероглифы, только корейские. Хочу туда в универ, когда с колледжа корку заберу.
Эх, поехал бы в Японию, если бы деньги были. Удачи тебе, хули.
Аноним 30/06/16 Чтв 14:17:24 #382 №784200 
>>784195
Тоже удачи.
Аноним 30/06/16 Чтв 14:21:37 #383 №784205 
>>784195
Но там же нет интернетов.
Аноним 30/06/16 Чтв 15:12:56 #384 №784256 
>>784205
Ты наверное про Китай. В Корее все нормально вроде.
Аноним 30/06/16 Чтв 16:28:53 #385 №784333 
>>784141
Меньший, чем на обдумывании "как бы зачистить ресурсы" и последующую отладку.
Аноним 30/06/16 Чтв 16:59:41 #386 №784357 
>>783566
В данном контексте - в возможности вручную управлять памятью.
Аноним 30/06/16 Чтв 17:08:11 #387 №784363 
>>784333
При смартпоинтерах и RAII? Не тралль плиз
Аноним 30/06/16 Чтв 18:28:55 #388 №784421 
>>784363
>circular references
Аноним 30/06/16 Чтв 18:34:35 #389 №784431 
>>784421
Оче редки. Тут не жаба же. К тому же weak_ptr.
Аноним 30/06/16 Чтв 18:34:48 #390 №784432 
>>784421
При нормальной архитектуре не бывает. Достаточно соблюдать правило единственного владельца и следить, чтобы его время жизни было шире, чем у юзеров.
Аноним 30/06/16 Чтв 18:41:57 #391 №784437 
>>784363
RAII работает как анус твоей мамаши держит говно – при любом исключении и пр. говно течёт.
Смартпоинтеры тяжелее unique_ptr в области где применяются плюсы – смишно.

>>784432
>соблюдать
Этим всё сказано. Либо у тебя компилятор-фашыст, либо ты будешь батрачить как коммунист если какая-то мелочь вылетит из головы.
Аноним 30/06/16 Чтв 18:45:50 #392 №784440 
>>784437
>исключения
>2016
Аноним 30/06/16 Чтв 18:58:43 #393 №784462 
>>784437
Ну, все правильно. Элитариям, способным запомнить пару правил - кресты, необучаемым макакам - языки с анальными ограничениями.
>К чему стадам дары свободы?
>Их должно резать или стричь
Аноним 30/06/16 Чтв 19:00:56 #394 №784467 
>>784440
Ну мань, мы уже поняли что ты нихуя в жизни не написал, у тебя не бывает легаси/сторонних библиотек с исп. исключениями и самрое главное – код всегда идеален – ты же круче робота и никогда даже ни на что не отвлекаешься (не забываешь разыменовать указатель добавив звёздочку, отвечая комраду например).
Аноним 30/06/16 Чтв 19:05:33 #395 №784471 
>>784467
>забываешь разыменовать указатель
И компилятор такой вместо того, чтобы сообщить о несоответствии типов, злорадно отправляет отчет парням из WG21, те бросают обсуждение нового стандарта, летят через полмира, врываются в твою сычевальню и долго ебут тебя в сраку?
Аноним 30/06/16 Чтв 19:08:20 #396 №784474 
14673029007650.jpg
>>784437
>RAII работает как анус твоей мамаши держит говно – при любом исключении и пр. говно течёт.

Аноним 30/06/16 Чтв 19:09:38 #397 №784478 
>>784471
Щас подорву: в крестах не настолько фошистская система типов, и такая хуйня бывает (напр. xyu='a' прекрасно скомпилируется).

Мы плавно перешли от методов управления памятью и ЭЛИТАРИЕВ, которые никогда не ошибаются, к разговорам о хуйне вроде твоей мамки.
Аноним 30/06/16 Чтв 19:10:42 #398 №784480 
>>784478
>xyu='a'
Макаба как обычно всё сожрала, даже квадратные скобки, но похуй.
Аноним 30/06/16 Чтв 19:11:35 #399 №784482 
>>784480
Залей на пастебин, а я популярно объясню, почему такого не бывает в нормальном коде.
Аноним 30/06/16 Чтв 19:20:42 #400 №784487 
>>784482
Лучше объясни как же так вообще появляются ошибки вроде переполнения буфера или утечек – ведь кресты осиливают только высокородные иллитарии.
Аноним 30/06/16 Чтв 19:22:52 #401 №784490 
Или посмотри доклад Кольцова из яндекса – у него очень классный пример в начале.
Аноним 30/06/16 Чтв 20:11:35 #402 №784524 
>>784487
Но макакам никто не запрещает писать помимо скриптоговна на плюсах.
Аноним 30/06/16 Чтв 20:25:27 #403 №784533 
>>784524
Я так и делаю!
мимомакака
Аноним 30/06/16 Чтв 20:54:42 #404 №784577 
>>784524
Как хачкельдаун прям ответил.
Аноним 30/06/16 Чтв 20:55:54 #405 №784582 
>>784577
А хачкель разве не скриптовый? я его никогда не встречал, да и желания нет
Аноним 30/06/16 Чтв 21:02:53 #406 №784591 
>>784487
Потому что их специально и очень тщательно ищут. То, что раст дает тебе некоторую гарантию внутренней непротиворечивости программы, не означает, что она не развалится от специально подобранных невалидных данных.
Аноним 30/06/16 Чтв 21:14:06 #407 №784605 
>>784582
Нет.
>>784591
Он мне даёт даёт гарантии что я не получу развалившееся говно из-за прогнивших костылей в языке, не больше, не каникулируй.
Аноним 30/06/16 Чтв 21:18:13 #408 №784607 
>>784605
Сравнительные примеры в студию, а то ты уже заебал своим нытьем на тему того, какой rust охуенный, а c++ - нет
Аноним 30/06/16 Чтв 21:25:29 #409 №784618 
>>784607
Так я и не ною, а отвечаю на твою тупость.
Аноним 30/06/16 Чтв 21:43:54 #410 №784648 
>>784605
>Он мне даёт даёт гарантии
Ну круто. Ада тоже неплоха в этом плане. Но если ты браузер не пишешь, и твое хобби не медитация над выхлопом тайпчекера за тарелочкой борща, то тебе в общем похуй на 100% корректность, главное чтобы падало не чаще некоторого предела. Чего очень легко добиться имеющимися инструментами вроде валгринда и линтеров. В расте лично мне гораздо интереснее нормальные макросы, чем линейные типы.
Аноним 30/06/16 Чтв 22:21:56 #411 №784700 
>>784487
У меня за джва года с прикрученным vld не было ни одной утечки. А переполнения буфера не было вообще никогда, по той простой причине, что в крестах никто не велосипедит фиксированные буферы. Можешь включать врети-режим.
Аноним 30/06/16 Чтв 22:29:20 #412 №784712 
>>784490
Не увидел там ничего, кроме традиционной для мамкиных евангелистов борьбы с мельницами. Берется какая-то фича языка, показывается, как ее можно использовать неправильно, затем показывается, как можно сделать в рекламируемом языке то же самое лучше. А пацаны-то не знали! Самое вкусное начинается, когда встречаются джва евангелиста и начинают кормить говном друг друга при помощи этой тактики.
Аноним 30/06/16 Чтв 22:46:28 #413 №784733 
1. Поясните, зачем нужен std::deque, если есть другие контейнеры, например std::vector. Дело только в оптимизации (типо легко добавлять в начало)?
2. Где взять код, который за меня решит какой контейнер использовать в различных ситуациях?
3. Чем отличается value и default initialization?
4. Почему в STL нет контейнеров типа деревьев?
Аноним 30/06/16 Чтв 22:55:48 #414 №784743 
>>784733
>Поясните, зачем нужен std::deque, если есть другие контейнеры, например std::vector
Дек сохраняет указатели на элементы после ресайза, вектор - нет. Правда с учетом того, что размер бакета там неизменен с 80-х, порядка десятков байт, проще запилить свой дек, который будет забирать память страницами.
Аноним 30/06/16 Чтв 23:23:01 #415 №784763 
>>784743
А разве не предусмотрено изменения гранулярности (с помощью аллокатора или еще чего)?
Аноним 30/06/16 Чтв 23:23:51 #416 №784765 
>>784733
1) Там где нужен такой формат данных;
2) Нигде. Нахуй ты такому коду вообще нужен был бы? Где-то были пикчи с алгоритмом выбора контейнера, поищи;
3) Перевести попробуй;
4) Есть.

>>784712
Так ты, вась, нихуя похоже не понел. Суть даже не в том, что именно этот код падает, а в том, сколько нужно знать о костылях языка чтобы написать даже такую банальщину без сегфолта.
Аноним 30/06/16 Чтв 23:24:58 #417 №784767 
>>784743
>Правда с учетом того, что размер бакета там неизменен с 80-х, порядка десятков байт, проще запилить свой дек, который будет забирать память страницами
Мать, ты чего? Да одних реализаций stdlib существует под 5 штук и чо, везде так, ты думаешь? Нихуя.
Аноним 30/06/16 Чтв 23:25:28 #418 №784768 
>>784763
предусмотрено, просто он дичь гонит.
https://github.com/llvm-mirror/libcxx/blob/master/include/deque
Аноним 30/06/16 Чтв 23:27:25 #419 №784770 
>>784733
1. По факту есть три неуправляемых (т.е. не в виде сложных структур типа RB-trees) контейнера - vector (быстрый доступ, медленное добавление), list (медленный доступ, быстрое добавление) и deque (фактически list из нескольких vector, средний по обоим пунктам). Все остальные контейнеры - либо обертки над ними (queue, stack), либо небольшие модификации (forward_list). Добавление нужно в среднем реже, чем доступ, поэтому vector рекомендуется по дефолту, но есть места, где deque лучше (например, тот же queue, для которого vector вообще не годится из-за добавления в начало, а list плох, вероятно, из-за недружелюбности по кэшу, ибо часто в очередь добавляют и забирают элементы сразу пачками).
2. https://habrahabr.ru/company/infopulse/blog/194726/ . Код будет, когда к компилятору прикрутят полноценный AI, лол.
3. Основные отличия синтаксические, связанные с неоднозначностью парсинга объявлений функций и определений переменных с инициализаторами (про это в стандарте написано очень хорошо, в пунктах 8.2 и 6.8). С точки зрения использования - для пользовательских классов разницы нет, для встроенных типов default оставит переменную неинициализированной, но только если она имеет не static duration (включая thread_local). Неинициализированную нельзя читать до первой записи, если не хочешь получить UB.
4. Стандарт не регламентирует реализацию контейнеров, только интерфейс и алгоритмическую сложность методов. По факту деревьями реализуются все ..._set и ..._map. Прямой интерфейс дерева (x.left (), x.right ()...) слишком низкоуровневый для STL, обычно ты все равно пишешь обертку, чтобы оно балансировалось автоматически.
Аноним 30/06/16 Чтв 23:36:01 #420 №784777 
>>784765
Если не прочитать инструкцию по использованию бензопилы, можно взять ее неправильным хватом и отпилить себе голову. Поэтому мы будем валить лес затупленной ножовкой, это точно безопасно.
Аноним 30/06/16 Чтв 23:39:56 #421 №784784 
>>784777
В этом треде лес валят костылями, апгрейд до тупого топора не так уж и плох.
Аноним 30/06/16 Чтв 23:44:59 #422 №784789 
>>784733
в deque есть push_front.
vector ГАРАНТИРОВАННО распологает элементы последовательно в памяти. То есть он может использоваться массив.
deque НЕ ГАРАНТИРУЕТ последовательное расположение в памяти. Так же deque распологает элементы блоками.

Вот бенчмарк вектора, деки и листа:
http://baptiste-wicht.com/posts/2012/12/cpp-benchmark-vector-list-deque.html
Аноним 30/06/16 Чтв 23:49:04 #423 №784793 
>>784763
>А разве не предусмотрено изменения гранулярности
В стандартной либе - нет. Правда сделать нужную гранулярность аллокатором - не проблема.
>>784767
>везде так, ты думаешь
На основных еще 5 лет назад так было, у МС до сих пор 32 элемента на чанк.
Аноним 30/06/16 Чтв 23:51:56 #424 №784797 
>>782906
из матлаба конвертируешь в с/с++ код и радуешься. все так делают
Аноним 01/07/16 Птн 15:34:32 #425 №785220 
Классная серия видео с cppcon. Хотелось бы там вживую поприсутствовать.
Аноним 01/07/16 Птн 16:28:59 #426 №785261 
http://stackoverflow.com/a/38060437
Аноним 01/07/16 Птн 16:37:55 #427 №785268 
>>785261
Модули и концепты похоже в с++30 будут.
Аноним 01/07/16 Птн 17:14:23 #428 №785292 
>>785268
Как раз на Марсе опробуем.
Аноним 01/07/16 Птн 18:59:08 #429 №785356 
>>776344 (OP)
привет с++ господа,
к вам небольшой вопрос.
поделитесь каким нибудь мануалом, чтобы с опытом 2 года java вкатиться в плюсы.
Аноним 01/07/16 Птн 18:59:45 #430 №785358 
>>785356
2 года java это всмысле 2 года работы
Аноним 01/07/16 Птн 19:16:29 #431 №785378 
>>785356
Тот же что и без двух лет опыта джавы.
Аноним 01/07/16 Птн 19:23:09 #432 №785385 
>>785356
Шапка для кого сделана, пидор?
Аноним 01/07/16 Птн 19:55:17 #433 №785421 
>>785385
>>785378
хули вы как нелюди, уебки блядь. нахуй мне всю эту дичь читать, когда 90% я уже знаю и лишь посмотреть разницу между языками
правда же говорят, что плюсаны хуже червя пидора
Аноним 01/07/16 Птн 20:01:54 #434 №785424 
>>785421
>разницу между языками
Так нет таких книг. А если будешь учить по другому, то пропустишь что-то важное.
Аноним 01/07/16 Птн 20:12:32 #435 №785433 
>>785421
>90% знаю
Попробуй cppquiz из конца шапки, маня. Для джаваблядка даже 9% правильных ответов будет подвигом.
Приложение для игры. Как решить эти проблемы? Аноним 01/07/16 Птн 20:36:19 #436 №785460 
Хочу создать приложение для игры, чтобы показывало данные из неё в компактном виде.

Выбрал я для него win32API в MS Visual C++. Но столкнулся с несколькими проблемами, как их решить?

1) Показ поверх окна игры в полноэкранном режиме.
[code]SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE);[/code]
Помогает лишь с приложениями неполноэкранных. При заходе в игру - скрывается под ней. Как исправить? (чтобы в этом плане как окна Steam)

Это прямо звиздец как надо, иначе от приложения никакого профита не будет. Мб как-то привязать к конкретной игре можно? (джов мод там все дела)
=========
2) Собственно, как можно "вылавливать" информацию из онлайн игры программно?
Например, если я хочу, чтобы здоровье персонажа отображалось в моём приложении
Аноним 01/07/16 Птн 21:00:18 #437 №785481 
>>785421
Мейерса читай. Там как раз тонкости описаны, без разливания воды для нубасов. Лично мне хватило википедии и Мейерса, чтобы вкатиться.
Аноним 01/07/16 Птн 21:47:43 #438 №785514 
>>785481
спасибо, гляну
Аноним 01/07/16 Птн 21:53:31 #439 №785523 
>>785514
Александреску еще посмотри, чтобы типовые паттерны шаблонной магии знать.
Аноним 01/07/16 Птн 21:56:01 #440 №785525 
>>785356
Страуструп "Tour of C++".
Аноним 02/07/16 Суб 00:38:32 #441 №785596 
Здравствуй, Анон. Подскажи каким образом можно создать структуру данных с массивом внутри, причём чтобы в той области памяти, куда указывает структура хранился не указатель на массив данных, а непосредственно данные? Ну и естественно не только массив данных я туда хочу поместить. В общем нужен способ легко работать с данными, но при этом чтобы они хранились в памяти рядом и с них таким образом можно было легко снять хэш.
Можно наверное было бы выделить память и перемещаться по ней используя адресную арифметику и приведения к другим типам. Или это зашквар? Есть способы лучше?
Аноним 02/07/16 Суб 00:47:38 #442 №785602 
>>785261
universal hashing так и не завезли, падлы.
> 2017
> алгоритмы хеширования намертво прибиты к типам
Это пиздец!
Аноним 02/07/16 Суб 01:02:46 #443 №785607 
>>785596
>куда указывает структура хранился не указатель на массив
Так всегда если не используешь new
http://ideone.com/b0S3Yy
Аноним 02/07/16 Суб 01:08:33 #444 №785608 
>>776344 (OP)
1
Аноним 02/07/16 Суб 01:09:28 #445 №785609 
>>776344 (OP)
2
Аноним 02/07/16 Суб 08:34:32 #446 №785689 
>>785602
>>785268
>>785292
Так это всё подтверждение слов крестофанатика выше: другие языки не нужны. Можно толочь говно костылями, проходить cppquiz в лучшем случае на 10% и сидеть пиздеть что кресты – единственный нужный язык.
Аноним 02/07/16 Суб 09:18:06 #447 №785704 
А что вы скажете о темплейтах, а точнее даже о частом использовании оверлоадинга, всех этих "специализаций", плюс наличии ещё и нетемплейтных вариантов и т.д.? Вроде теоретически всё понятно, но надо ли стремиться самому делать 38 функций с одним и тем же названием? Пишут так вообще, или нормальный чужой код можно понять без необходимости сидеть и думать, какая же из них требует наименьшего количества конвертаций типов? (Особенно когда есть поинтер и не поинтер версии, которые обе могут подойти). Во встраиваемых системах, если область применения что-то решает.
Аноним 02/07/16 Суб 09:24:10 #448 №785705 
>>785704
> А что вы скажете о темплейтах, а точнее даже о частом использовании оверлоадинга, всех этих "специализаций", плюс наличии ещё и нетемплейтных вариантов и т.д.?
Ну а как ты будешь делать какие-то структуры данных без темплейтов?
Аноним 02/07/16 Суб 09:32:56 #449 №785708 
>>785689
>другие языки не нужны
Других языков просто нет для ниши, которую занимает С++.
Аноним 02/07/16 Суб 09:41:36 #450 №785711 
>>785708
И в какой же? Удиви меня.
Аноним 02/07/16 Суб 09:58:24 #451 №785716 
>>785711
Игровые движки.
Аноним 02/07/16 Суб 10:00:40 #452 №785718 
>>785716
Да ты шутник.
Аноним 02/07/16 Суб 10:02:27 #453 №785719 
Какой хуя g++ в линупсе не задает __linux__?

При отладке функции между #ifdef __linux || __linux__ и #endif не выполняются.
Аноним 02/07/16 Суб 10:05:50 #454 №785721 
>>785711
Для ниши кроссплатформенного низкоуровневого языка с кучей либ на все случаи жизни и компиляторами подо все, что способно запускать код.
Аноним 02/07/16 Суб 10:05:59 #455 №785722 
>>785716
http://wiki.freepascal.org/Game_Engine#Games
http://www.hedgewars.org/
Аноним 02/07/16 Суб 10:07:52 #456 №785723 
>>785711
Десктопные приложения, которым требуется макс производительность.
Аноним 02/07/16 Суб 10:10:04 #457 №785726 
>>785722
Я видел переписанный Квейк на JS.
Значит ли это, что нужно бросать С++ и писать на JS?
Может новый Дум, например, написан на Паскале?
Аноним 02/07/16 Суб 10:10:53 #458 №785727 
>>785722
Играл в хеджворс на компьютере с гигом оперативки и целерон д на 2 ГГц? Я пробовал, получается хуёво.
Аноним 02/07/16 Суб 10:12:52 #459 №785731 
>>785723
Для любого реалтайм/хуйлоад софта и пр. замена уже давно есть, компилятор под все платформы не беда - ллвм поможет.
Аноним 02/07/16 Суб 10:18:56 #460 №785735 
>>785731
>Для любого реалтайм/хуйлоад софта и пр. замена уже давно есть
Почему же ее не используют?
>компилятор под все платформы не беда - ллвм поможет
Под винмобайл, например, уже появился?
Аноним 02/07/16 Суб 10:25:08 #461 №785740 
>>785735
>Почему же ее не используют?
В основном, легаси.
>Под винмобайл, например, уже появился?
Ух блять. Обычно тралят экзотическими китайскими мк, но тут у нас что-то пожоще.
Нет, и не будет под это мёртвое говно.
Аноним 02/07/16 Суб 11:29:15 #462 №785761 
>>785740
>В основном, легаси
Это не "легаси", а отсутствие вменяемых средств разработки у других языков.
>Нет, и не будет
Я так и думал.
Аноним 02/07/16 Суб 11:40:15 #463 №785768 
>>785761
Это легасиговнище – никому не всралось переписывать готовые движки, которые начинали писать десять+ лет назад.

Конечно ты правильно думал – привёл легасипример, причём никому нахуй не нужный. Хоть бы бохатый эмбдед который делается на хуитках вроде Qt Embedded – там да, нет альтернатив.
Аноним 02/07/16 Суб 11:51:21 #464 №785773 
>>785768
>привёл легасипример
Я про винфон говорил. Винмобайл умер уже, да.
Аноним 02/07/16 Суб 12:08:48 #465 №785786 
>>785773
Винфон, внезапно, тоже.
У раста всё нормально с армом, не проблема абсолютно.
Аноним 02/07/16 Суб 12:13:26 #466 №785790 
>>785735
>Под винмобайл, например, уже появился?
Вроде разговор начинался с десктопных приложений...
Аноним 02/07/16 Суб 12:15:33 #467 №785793 
>>785790
У каникулёра просто закончились аргументы, в ход пошло "смотри, а я зато на голове стоять умею!".
Аноним 02/07/16 Суб 12:34:43 #468 №785803 
Заведите себе тред RUST/PHP/JS круче C++ и устраивайте там школосрачи.
Аноним 02/07/16 Суб 12:36:26 #469 №785805 
>>785803
Лучше продолжу тут толочь говно костылём. Как никак напрямую к плюсам относится тема.
Аноним 02/07/16 Суб 12:36:54 #470 №785806 
>>785719
А какая версия GCC, братишка? Никогда не было проблем с этим
Аноним 02/07/16 Суб 12:50:13 #471 №785817 
>>785790
Про кроссплатформенность тоже было. Касаясь десктопа, есть ли для раста, ди и го гуи либы уровня qt и wx?
Аноним 02/07/16 Суб 12:52:36 #472 №785822 
>>785786
>У раста всё нормально с армом, не проблема абсолютно
Под винфон можно конпилировать только МС тулзами, а там поддержку раста как-то не завезли еще.
Аноним 02/07/16 Суб 12:52:44 #473 №785823 
>>785805
Конечно тут останешься, в треде про вашу хипстероподелку никто и не постит.
Аноним 02/07/16 Суб 12:58:29 #474 №785829 
>>785817
Всегда есть языконезависмый QML.
>>785822
Лол, так даже эпл не выёбывается. Ну, уже похуй – платформа мертва.
>>785823
Ну да, там нету толпы нюфагов с вопросом как запустить компиляцию (где там та пикча?).
Аноним 02/07/16 Суб 12:59:11 #475 №785831 
>>785806
5.4.0 20160609

Может влияет то что пишу и отлаживаю в Code::Blocks?
Аноним 02/07/16 Суб 13:01:08 #476 №785833 
>>785831
>Может влияет то что пишу и отлаживаю в Code::Blocks?

>>785823
>Конечно тут останешься, в треде про вашу хипстероподелку никто и не постит.

Сука, ору.
Аноним 02/07/16 Суб 13:02:55 #477 №785837 
>>785831
Попробовал собрать исходник через g++ напрямую и нихуя. __linux__ так и не задается.
Аноним 02/07/16 Суб 13:12:23 #478 №785849 
>>785829
>Ну, уже похуй – платформа мертва
Под UWP, кстати раста тоже нет.
Аноним 02/07/16 Суб 13:14:31 #479 №785851 
>>785837
Попробуй запустить g++ -dM -E - < /dev/null | grep linux
Аноним 02/07/16 Суб 13:35:45 #480 №785869 
14674557451520.png
>>785851
Запустил.
Аноним 02/07/16 Суб 13:38:18 #481 №785870 
>>785869
Значит все он видит, кидай код.
Аноним 02/07/16 Суб 14:05:40 #482 №785891 
>>785870
std::string getSystemName()
{
std::string result;
#ifdef _WIN32
// TO-DO
#elifdef __linux || __linux__
struct utsname uts;
uname(&uts);
char buffer[1024];
snprintf(buffer, 1024, "%s %s", uts.sysname, uts.release);
result = buffer;
#endif
return result;
}
Аноним 02/07/16 Суб 14:08:41 #483 №785893 
>>785891
std::string getSystemName()
{
std::string result;
#ifdef _WIN32
// TO-DO
#elif defined(__linux) || defined(__linux__)
struct utsname uts;
uname(&uts);
char buffer[1024];
snprintf(buffer, 1024, "%s %s", uts.sysname, uts.release);
result = buffer;
#endif
return result;
}
Аноним 02/07/16 Суб 14:10:26 #484 №785898 
>>785893
А почему тогда #elifdef не катит?
Аноним 02/07/16 Суб 14:11:55 #485 №785901 
>>785898
ANSI-C стандарт вроде #elif defined. хотя могу спиздеть в классической Си не очень опытен
Аноним 02/07/16 Суб 18:35:30 #486 №786070 
>>785898
>>785901
#elifdef хватило если бы был один аргумент. А там же два
Аноним 02/07/16 Суб 18:39:25 #487 №786073 
>>785719
#if defined(__linux) || defined(__linux__)
Аноним 02/07/16 Суб 20:12:15 #488 №786116 
Сап, крестач. Пишу под Бубунтой в CodeLite.

Есть массив:
static int deVisAttribs [] = { GLX_RENDER_TYPE, GLX_RGBA_BIT,
GLX_DRAWABLE_TYPE, GLX_WINDOW_BIT,
GLX_DOUBLEBUFFER, 1,
GLX_RED_SIZE, 8,
GLX_GREEN_SIZE, 8,
GLX_BLUE_SIZE, 8,
GLX_ALPHA_SIZE, 8,
None };

Есть библиотечная функция:
extern GLXFBConfig glXChooseFBConfig( Display dpy, int screen, const int attribList, int nitems );

Есть вызов функции:
deFBConfig = glXChooseFBConfig( deDisplay, deScreen, deVisAttribs, deFBCount );

Все написано аналогично примеру в OpenGL-вики, так же выглядит в ряде других исходников. Не понимаю, почему g++ считает, что для третьего параметра "error: invalid conversion from 'int' to 'int*'"? Это что-то так поменялось в С++11?

Попытался собрать чистый пример из OpenGL-вики - еще хуже: g++ утверждает, что функции из XLib не определены, а опцию -lX11 игнорирует.
Аноним 02/07/16 Суб 20:48:33 #489 №786137 
>>786116

deFBConfig = glXChooseFBConfig( deDisplay, deScreen, deVisAttribs, &deFBCount );
последний параметр указатель на int принимает, а ты просто int пытаешься передать
Аноним 02/07/16 Суб 20:50:24 #490 №786139 
Хочу использовать QString. Как мне собрать через g++?
Аноним 02/07/16 Суб 21:00:59 #491 №786145 
>>786137
Не последний, а предпоследний (третий, а не четвертый).
Амперсанд уже пробовал ставить, в этом случае выдает "error: cannot convert 'const int (&#42;)[15]' to 'const int&#42;'"
Не понимаю, этот код раньше работал же у кого-то?
Аноним 02/07/16 Суб 21:02:02 #492 №786147 
>>786145
Ептыть макаба! Звездочки тупо парсит, а html-коды значит не кушает, скотобаза!
Аноним 02/07/16 Суб 21:02:34 #493 №786148 
>>786145
https://www.opengl.org/sdk/docs/man2/xhtml/glXChooseFBConfig.xml
nelements Returns the number of elements in the list returned by glXChooseFBConfig.
И все же последний
Аноним 02/07/16 Суб 21:20:09 #494 №786167 
14674836098800.png
Тест на проф. пригодность, крестаны. Кто не решит, тот - хуй.
Аноним 02/07/16 Суб 21:22:31 #495 №786168 
>>786167
надо написать значения переменных ITT
sageАноним 02/07/16 Суб 21:24:01 #496 №786170 
>>786168
1488
Аноним 02/07/16 Суб 21:31:57 #497 №786185 
>>786167
n = ffff;
хуй знает, по идее компилятор ругнется
n3=-32768;
n4=-1;
Аноним 02/07/16 Суб 21:34:06 #498 №786187 
>>786185
Ошибся во всем
Аноним 02/07/16 Суб 21:35:19 #499 №786188 
>>786168
UB
Аноним 02/07/16 Суб 21:35:47 #500 №786190 
>>786187
не гони
Аноним 02/07/16 Суб 21:41:16 #501 №786198 
>>786190
отвечаю, сам охуел, когда сегодня эту тему вспоминал. По-хорошему, все эти implicit conversions нужно нахуй выпилить и зопретить. Не понимаю, чем думали те, кто это делал.
Аноним 02/07/16 Суб 21:42:24 #502 №786199 
>>786198
Ща вижуалстудию открою
Аноним 02/07/16 Суб 21:46:11 #503 №786201 
>>786198
>>786199
Она не понадобилась, грит объебался в 1 и 2 только
http://ideone.com/pGiWMj
Аноним 02/07/16 Суб 21:47:13 #504 №786203 
>>786201
ошибся во всех примерах, инфа сотка
Аноним 02/07/16 Суб 21:49:23 #505 №786207 
>>786203
Намекаешь на undefined behavior?
Аноним 02/07/16 Суб 21:52:45 #506 №786211 
>>786207
да, там везде undefined, platform-dependent и unspecified
sageАноним 02/07/16 Суб 21:53:48 #507 №786214 
>>786211
>platform-dependent и unspecified
А это в каком месте?
Аноним 02/07/16 Суб 21:54:55 #508 №786216 
>>786211
ну так для лаб существует только хуй86 и интел его пророк
sageАноним 02/07/16 Суб 21:58:27 #509 №786221 
>>786211
>platform-dependent
Вообще такого термина в стандарте не нашёл.
Аноним 02/07/16 Суб 22:01:27 #510 №786224 
>>786214
1 - undefined
2 - undefined
3 - unspecified
4 - implementation-defined
sageАноним 02/07/16 Суб 22:05:50 #511 №786228 
>>786224
Уверен?
Аноним 02/07/16 Суб 22:07:17 #512 №786233 
>>786228
да
сагу спрячь откуда достал, заебал
sageАноним 02/07/16 Суб 22:08:19 #513 №786234 
>>786233
Можно ссылки на пункты в стандарте?
Аноним 02/07/16 Суб 22:15:00 #514 №786243 
>>786234
Сам такое ищи.
Если хочешь научно-популярно, то ищи тут:
http://en.cppreference.com/w/cpp/language/implicit_conversion
http://en.cppreference.com/w/c/language/conversion

Эта параша одинаковая и там, и там.
sageАноним 02/07/16 Суб 22:16:11 #515 №786247 
>>786243
Гм. Как же ты уверен, если пруфануть не можешь.
sageАноним 02/07/16 Суб 22:18:15 #516 №786251 
>>786247
cppreference пилят поцоны из комитета. Я им верю.
sageАноним 02/07/16 Суб 22:28:24 #517 №786273 
>>786251
Ну, с первыми двумя пунктами я согласен. А вот насчёт 3 и 4 вопросы. Почему ты по-разному обозвал то, что там происходит? Где разница?
Аноним 02/07/16 Суб 22:42:40 #518 №786297 
>>786273
В первом случае там signed integer overflow, а во втором - integer type narrowing.
sageАноним 02/07/16 Суб 22:48:02 #519 №786309 
>>786297
Где же там overflow? INT16_MAX это integer-литерал. short-литералов не завезли, в отличие от long
Так что справа от `=' всё o'k.
Аноним 02/07/16 Суб 22:49:51 #520 №786311 
>>786167
1. Unscpecified
2-4. Undefined
Аноним 02/07/16 Суб 22:53:40 #521 №786322 
>>786309
Да, ты прав. Пример составлен неправильно. Надо было int32_t n4 = INT32_MAX +1;
Аноним 02/07/16 Суб 22:53:58 #522 №786323 
>>786311
Ссылочку на стандартик
Аноним 02/07/16 Суб 23:15:15 #523 №786360 
Я правильно понимаю, что быть хорошим C++ разработчиком == знать наизусть стандарт? На это же можно потратить огромное количество времени и сил, не слишком ли серьезно C++ разработчики относятся к сухому знанию языка?
sageАноним 02/07/16 Суб 23:18:44 #524 №786363 
>>786360
> C++ - довольно таки примитивное, но монстровое поделие, полное исторически сложившихся нелепых нагромождений. Человек, который хорошо в нем ориентируется - это хорошее зубрилко а не хороший программист.
Аноним 02/07/16 Суб 23:19:50 #525 №786364 
>>786360
Не, забей, никто не учит стандарт до тех нюансов, что выше по треду. Обычно реальный код сводится к довольно ограниченному подмножеству c++ с довольно строгими правилами, так что ситуации вроде проблем с неявными преобразованиями не встречаются практически никогда.
Аноним 02/07/16 Суб 23:20:22 #526 №786365 
>>786360
> Я правильно понимаю, что быть хорошим C++ разработчиком == знать наизусть стандарт
Язык это лишь инструмент.
Если ты им владеешь хорошо, то это замечательно.
Но при помощи инструмента ты создаёшь какие-то детали программы.
И если ты не знаешь как правильно сделать её и как они будут взаимодействовать с другими, то толку от простого владения мало.
Аноним 02/07/16 Суб 23:24:16 #527 №786368 
>>786363
Школьник ITT, спешите видеть. Если откинуть неоправданно сложные моменты с неявными преобразованиями и разрешением перегрузок, то cpp окажется одним из передовых. А с введением концептов - будет еще круче.
sageАноним 02/07/16 Суб 23:30:06 #528 №786372 
>>786368
> Если откинуть неоправданно сложные моменты с неявными преобразованиями
То получится OCaml с оператором + для целых и +. для плавающих типов.
Аноним 02/07/16 Суб 23:34:56 #529 №786374 
>>786372
>OCaml
Как что-то плохое. Да и в чем проблема явно преобразовать значение перед работой? Такое вообще бывает довольно редко.
sageАноним 02/07/16 Суб 23:39:05 #530 №786377 
>>786374
>Как что-то плохое.
А я сказал, что OCaml — это плохое?
sageАноним 02/07/16 Суб 23:44:18 #531 №786382 DELETED
>>786368
>Если
бы у бабушки был хуй
> А с введением концептов - будет еще круче.
https://www.youtube.com/watch?v=mUxA0i7HnZw
Аноним 03/07/16 Вск 00:00:20 #532 №786390 
>>786365
Понимаю, я говорю о том, что именно у C++ программистов очень сильный дроч на знание языка.
Аноним 03/07/16 Вск 00:03:15 #533 №786392 
>>786390
> я говорю о том, что именно у C++ программистов очень сильный дроч на знание языка.
Да, это так.
Возможностей отстрелить себе ногу очень много.
sageАноним 03/07/16 Вск 00:51:56 #534 №786412 DELETED
>>786368
>Школьник ITT, спешите видеть.
Зубрилко обиделось, спешите видеть.
Аноним 03/07/16 Вск 01:42:22 #535 №786440 
14674993428770.png
Посоны, как конвертировать double в long? Ведь в double порядок может быть принимать значения вплоть до 2^2048, что явно, блядь, не поместится в long, где максимальное число 2^63. Даже сраный float не поместится по такой логике в long.
А если не поместится, то будет UB.
Что делать, господа?

P.S. Вот вам выдержка из стандарта. Тут говорится "value", т.е. подразумевается, что если непосредственное значение во время рантайма влазит, то все будет ок. Я правильно понял?
sageАноним 03/07/16 Вск 12:25:17 #536 №786635 
test
Аноним 03/07/16 Вск 13:50:15 #537 №786698 
Если добавлять элементы в дек в конец или начало, итераторы станут невалидными, в то время как указатели и ссылки остаются валидными.

Почему так происходит? Ведь итератор - это просто обертка над указателем на элемент (или нет?).
Аноним 04/07/16 Пнд 08:00:08 #538 №787448 
А в чём смысл специализированных темплейтов для функций? Почему нельзя просто обычной функцией их заменить? В каком случае такой темплейт может быть полезнее?
Аноним 04/07/16 Пнд 11:43:26 #539 №787561 
>>787448
А зачем заморачиваться в коде, какую функцию нужно вызывать, если можно вызвать все ту же func<тип>?
Во-вторых, шаблоны можно вызывать без параметров в угловых скобках, например, когда компилятор может сам догадаться исходя из параметров в (), тогда тоже можно будет не запариваться.
Ну и иногда оно полезно, например, при рекурсивных шаблонах - задается определенный параметр шаблона, на котором она заканчивается.
Аноним 04/07/16 Пнд 12:02:03 #540 №787591 
>>787561
>А зачем заморачиваться в коде, какую функцию нужно вызывать, если можно вызвать все ту же func<тип>?
В смысле? Я не имел в виду другое имя, а просто оверлоад сделать. Чем func<тип> удобнее, чем просто func-то? Конечно, со специализированным темплейтом не нужно тайпкастить все аргументы, если их несколько, для автоматического выбора желаемой функции.

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

>>787561
>при рекурсивных шаблонах
А можешь пример показать?
Аноним 04/07/16 Пнд 12:06:14 #541 №787595 
>>787591
>просто оверлоад сделать
У шаблонов самый большой приоритет при перегрузке. Ты не сможешь просто переопределить.

>Так он и с обычной функцией догадается
Смотри выше

>А можешь пример показать?
http://ideone.com/OVvf8I
Аноним 04/07/16 Пнд 12:24:22 #542 №787609 
>>787595
>У шаблонов самый большой приоритет при перегрузке. Ты не сможешь просто переопределить.
Но ведь нет. http://ideone.com/RmW7B0

>http://ideone.com/OVvf8I
Интересно. А как это в <> у тебя не тип, а значение? Туда что угодно можно вставлять, что ли?

И что это за формат template<unsigned i>? Это как называется, чтобы прочитать? Меня только template<typename typename> в качестве базового шаблона пока учили.
Аноним 04/07/16 Пнд 12:45:29 #543 №787624 
>>787609
>>Но ведь нет.
Странно, где-то я читал обратное. Нужно будет повторить теорию.

>>787609
>Туда что угодно можно вставлять, что ли?
http://en.cppreference.com/w/cpp/language/template_parameters
Аноним 04/07/16 Пнд 13:09:38 #544 №787632 
Вы че охуели. Где ответ блять?


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

Почему так происходит? Ведь итератор - это просто обертка над указателем на элемент (или нет?).
Аноним 04/07/16 Пнд 13:51:43 #545 №787654 
>>787595
Пиздец, какой же мрак и гниль эти шаблоны.

Это невозможно поддерживать, если такое как у тебя в примере будет дохуя в проекте.
Аноним 04/07/16 Пнд 19:13:18 #546 №787903 
помогите с классом
class Bar {
public:
float Set_price_start(float price_start)
{
float start = price_start;
return start;
}


float Get_price_start() { std::cout << start << std::endl; };
private:
float price_start;
Bar();
};

почему Get_price_start не понимает что такое start???
Аноним 04/07/16 Пнд 19:16:29 #547 №787905 
>>787903
А что ты подразумеваешь под start внутри Get_price_start?
Аноним 04/07/16 Пнд 19:18:54 #548 №787907 
>>787905
ну,значение приватной переменной price_start
Аноним 04/07/16 Пнд 19:20:20 #549 №787911 
>>787907
А почему компилятор должен думать, что под start ты понимаешь price_start?
Аноним 04/07/16 Пнд 19:21:05 #550 №787913 
>>787911
как ему это объяснить?
Аноним 04/07/16 Пнд 19:22:53 #551 №787915 
>>787913
Может быть писать price_start вместо start?
Аноним 05/07/16 Втр 17:44:24 #552 №788689 
Есть один хелловорлд.
В нем QtCreator не может найти std::make_unique. CONFIG += c++14 прописал, <memory> подрубил.
Заметил, что если отключить плагин clang code model, то все работает нормально. Что это за хуйня?
Эхо сервер tcp на c++ Аноним 05/07/16 Втр 22:19:11 #553 №789010 
Господа, подкиньте пожалуйста, в кого схоронено.
Нужен шаблон - а на его основе буду писать уже то что мне надо
Аноним 05/07/16 Втр 22:19:34 #554 №789011 
>>789010
Линуксовый
Аноним 06/07/16 Срд 07:41:21 #555 №789350 
Есть задача: написать функцию, которая бы отображала сколько раз эта функция была вызвана (если в двух словах, целиком условие вот http://pastebin.com/ZsttcgzP ).
Элементарно делается через статическую переменную, но задача дана в главне, предшествующей описанию статических переменных. В этой же главе описывались инлайн функции, дефолтные аргументы и темплейты. Возможно ли эту задачу как-то сделать через инлайн функции (у меня не получилось), или составители просто ошиблись и не туда впихнули задачу? Prata C++ Primer 6th Edition, Chapter 8, Ex. 1
Аноним 06/07/16 Срд 07:50:48 #556 №789351 
И ещё по неймспейсам вопрос. http://ideone.com/kix7uE почему тут функция getDebt спокойно видит getPerson из другого неймспейса без какого-либо указания на него, без using'ов и т.д.? Всего лишь потому, что структура Debt использует структуру из того неймспейса?
Аноним 06/07/16 Срд 09:31:53 #557 №789371 
>>789350
через глобальную переменную или внешний аргумент
Аноним 06/07/16 Срд 11:21:12 #558 №789425 
>>789371
Ну глобальная понятно, она ж тоже, формально, статическая будет (скоупинг и времена доступа к/жизни переменных в следующей главе шли, в любом случе).
А под "внешним аргументом" ты что подразумеваешь?
Аноним 06/07/16 Срд 12:53:41 #559 №789483 
>>789425
передавай счетчик как аргумент , внутри функции инкрементируй
Аноним 06/07/16 Срд 13:17:40 #560 №789498 
>>789483
Не, сигнатура функции по заданию была оговорена.
Ладно, спасибо. Видимо, и правда не туда вставили, так как в следующей главе похожий вопрос есть.
Аноним 08/07/16 Птн 07:28:43 #561 №791185 
Есть такое задание, ничего больше стандартных библиотек не знаю, чё читать(курить) по теме этого задания??


Есть определенная иерархия папок. Надо все их просканировать на *.h файлы. Во всех папках надо найти все конструкции вида #define IDD_WIZARD_PAGE 101 и распарсить их, составив словари IIDD_WIZARD_PAGE - 101 для каждой папки.
Программа должна уметь:
1) Игнорировать часть папок. Список папок задавать в отдельном файле.
2) Показывать дубликаты. Дубликатом считать если число одинаковое в разных папка, а ID разное.
3) Выводить на экран список занятых диапозонов значений для конкретной папки.

То есть у программы должны задаваться команды из командной строки:
your_app.exe --showdups или your_app.exe -sd для показа дубликкатов
your_app.exe --showrange folder_name или your_app.exe -sr folder_name для показа занятого диапазона значений
Аноним 14/07/16 Чтв 14:39:56 #562 №795920 
14684963968330.jpg
Господа, а как мне сделать проверку выхода за границы статического массива?
К примеру если дан массив int a[10]. И если я попытаюсь получить доступ к a[-1] или a[11], то получу предупреждение.
comments powered by Disqus

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