Этого треда уже нет.
Это копия, сохраненная 5 мая 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
175 Кб, 503x600
Оффициальный™ традиционный® C++ тред #30 #714898 В конец треда | Веб
Концепты? Вам, потомки обезьян,
За пять лет не осилившие треды?
Да будь весь комитет мертвецки пьян,
Он протрезвел бы от такого бреда!

Нетворкинг! Модули! Разгулье корутин!
Пихаем все, фич не бывает много!
Вы намараете хэллоуворлд один,
А нам - линковщик редизайнить снова?

Как стая шелудивых псов, давно
Не знаете сомнений, сна, покоя,
Слепить мечтая из плюсов Goвно,
Чтоб впредь уж не пришлось скрипеть башкою.

Неужто мы под шелест перфокарт
И трескотню ЕС-ок вас зачали,
Чтоб вы, едва открывшие стандарт,
Влезали в пекло и права качали?

Зря тявкаете! Бьерн и мудр и строг,
Он дрянь в язык не пропустил ни разу.
Коль выждать не хотите нужный срок -
Ступайте мять удавов одноглазых.


Старший брат: >>683573 (OP)
Предыдущий: >>707568 (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: Дальше переходишь по ссылке, пробуешь отвечать на вопросы и понимаешь, что ты пока в самом начале пути. Кроличья нора крестов практически бездонна, поэтому продолжать постигать тонкости и детали можно очень и очень долго. В то же время, на этом этапе у тебя должно быть достаточно знаний, чтобы уверенно писать неплохой код. Поэтому читай исходники открытого софта и библиотек, отправляй пулл-реквесты в них, читай книжки по предметным областям и общим методикам разработки, а дальше уже сможешь запилить свой проект или вкатиться в существующий.


#2 #714902
>>714898 (OP)

>Концепты? Вам, потомки обезьян,


>За пять лет не осилившие треды?


Но они и правда нужны. Нужнее, чем нетворкинг, фейлсистем и даже чем треды! Типы и работа с ними — это фундамент языков.
>>716518
44 Кб, 600x402
sage #3 #714903
>>714909
#4 #714904
В Visual Studio нужно покупать лицензиюдля коммерческого использования?
>>714917>>714934
#5 #714906
Concept? The descendants of monkeys,
Five years later, he has not mastered multi-threading?
Yes, if all drunk as Cuba Committee,
It would have sobered the hype!
Red! Modules! Korutin drink!
PIHA all the features does not happen much!
You namaraete hellouvorld one,
And we are - again linker redesign?
Like a pack of mangy dogs for a long time
You know, the question of the dream vacation,
Blindly dreaming about the benefits of shit,
Continue There grinding head.
Of course, the whisper of a deck of cards
And EU-Ok you do hurt,
For you, only that the right to open
In order to go to hell, and deflected to the right?
In vain did the barking! Bjorn and wise and important,
This is to fuck in a language that once was lost.
Kohl does not want to wait for the right moment -
Go to amass one snake eyes.
>>714947
#6 #714909
>>714903
Нужна пикча со Страуструпом в стиле "окружён, но не сломлен".
21 Кб, 686x356
#7 #714910
#8 #714917
>>714904
Нет, конечно. Ты и так платишь дохуища, куда уж больше.
>>714919
#9 #714919
>>714917
Эмм, за что плачу?
#10 #714934
>>714904
Если ты пишешь один, то можешь пользоваться бесплатной версией. Покупать надо если в твоей компании будет работать больше пяти человек.
>>714936
#11 #714936
>>714934
Спасибо
#12 #714946
>>714898 (OP)
К следующему юбилею подготовишь стишок на английском?
>>714947
#13 #714947
>>714950
#14 #714949
поясните про модули вместо инклудов и стандарт с++17. Вроде была инфа, что модули пока отложат, но будут пилить потом. Было такое или я придумал?
миможабокодер
>>714952>>714957
#15 #714950
>>714947
Это гугл
>>714961
#16 #714952
>>714949
в 20ом
#17 #714957
>>714949
НЕ ПРИШЛИ К ОБЩЕМУ ПОНИМАНИЮ
#18 #714961
>>714950
Пожалуй, я возьму себе псевдоним Kohl Korutin.
>>714970
435 Кб, 1341x385
#19 #714970
>>714961

>Kohl Korutin


Пиздец. Гугл за минуту синдексировал этот тред. Кто это?
>>714974>>714976
#20 #714974
>>714970
Всё. Понял.
51 Кб, 414x346
#21 #714976
>>714970

>Кто это?


Теперь это я.
>>714977
#22 #714977
>>714976
А ты кто такой?
>>714980
#23 #714980
>>714977
Я — Kohl Korutin.
>>714982
#24 #714982
>>714980
Коля Разгулин?
>>714983
#25 #714983
>>714982
Коль Мертвецки.
#26 #714998
Двачек, какую IDE лучше поставить на линукс? Есть варианты.
0) Gcc+текстовый редактор. Нахуй IDE.
1) Netbeans.
2) Eclipse.
3) Code::blocks.
#27 #715000
>>714998

>3) Code::blocks.

#28 #715001
>>714998
ЦЛев
>>715002>>715006
#29 #715002
>>715001
удваиваю
#30 #715006
>>715001
Бля, расшифруйте
>>715008
#31 #715008
>>715006
а, догнал
>>715018
#32 #715011
>>714998
В шапке все разжевано, ну.
>>715013
#33 #715013
>>715011
Ещё нет.
#34 #715018
>>715008
А я не въехал. Девчик?
>>715079
#35 #715079
>>715018
Ааа, лев. Понял.
#36 #715378
Как создать матрицу в классе (не объявляя ничего кроме класса в майне) и работать с ней в дальнейшем вне класса?
Если это невозможно, то как лучше реализовать это?
Нужно создать матрицу в отдельном файле в виде класса, что собственно я и сделал, но в дальнейшем необходимо использовать ее в другой функции, описанной в майн. Помимо этого в эту функцию нужно передать размерность матрицы
>>715387
#37 #715387
>>715378
#include "Matrix.h"
>>715389
#38 #715389
>>715387
ты немного не понял меня.

Мне нужно создать матрицу в классе, находящимся в Matrix.h, где пользователь вводит размер матрицы и там же она создается. для этого у меня реализована функция Create();
и в main я пишу
Matrix Data;
Data.Create();
Data.OutPut();

на выходе получаю рабочую матрицу, все заебись, но теперь мне нужно работать с этой матрицей в main не менять ее значения, а просто иметь к ней доступ . Даже элементарно вывести ее через майн, а не через Data.OutPut();

Но я этого сделать не могу, потому что память под нее я выделяю в классе, объявляю там же и в этом же классе пользователь вводит ее размер.
По идее, мне надо ее как-то вернуть из класса. Возможно я не понимаю чего-то
>>715395>>718020
#39 #715395
>>715389
Скинь код
>>715399
#41 #715401
>>715399
Типа cout << data или что?
>>715405
#42 #715405
>>715401
В дальнейшем мне нужно иметь доступ к data. Я опишу функцию в main, которой нужна матрица data и ее размер (employee х position).
Т.е. у меня будет функция, которая принимает значения data, employee, position
>>715407>>715409
sage #43 #715406
>>715399
Или сделай private члены в классе public, или сделай методы, которые эти данные будут изменять/читать, ака геттеры/сеттеры.
>>715407
sage #44 #715407
>>715405
>>715406
Алсо, нечего пиздить код чужой, жуебок.
>>715410
#45 #715409
>>715405
friend. Либо data сделай public. Либо метод
int getData()
{
return data;
}
Деструктор добавь. А то у тебя утечка.
>>715411>>715424
sage #46 #715410
>>715407
Алсо, непонятно, зачем тебе указатель на указатель. Сделай одномерный массив и обращайся [i*width + j] к её элементам.
#47 #715411
>>715409

>int(звезда)(звезда) getData()

#48 #715424
>>715409
сделал data public. Теперь в майн все работает, но как ее правильно передать в функцию?
>>715427>>715428
#49 #715427
>>715424
Все, разобрался. Спасибо
#50 #715428
>>715424
Ой иди в пизду. Пиздец тупой.
#51 #715486

>Вопросы по синтаксису идут на хуй


>все треды на 80% состоят из вопросов типа "как передать переменную из класса в функцию"

#52 #715494
Ньюфажие итт. Прочитал пару книг, сейчас второй день сижу залипаю на кодингейм, решаю задачки навроде олимпиадных. От таких задач вообще есть толк в изучении языка?
>>715506>>715511
sage #53 #715506
>>715494
Нет.
#54 #715511
>>715494
библиотеки изучай
#55 #715592
В чем разница между VS Comunity и VS Enterprise?
>>715599>>715604
sage #57 #715604
>>715592
В чем разница между мочой и говном?
>>715607
#58 #715607
>>715604
Ну моча как лимончик на вкус, а говно как земелька.
#59 #715888
>>714898 (OP)
Какого хуя вы жабин пулл реквест не принимаете?
https://github.com/pr-hats/2ch.hk-pr-Hats/pull/5
>>716094>>720050
31 Кб, 523x765
#60 #716032
Поясните, что не так с sort?
>>716039
#61 #716039
>>716032
Лабодаун, зачем ты сюда пришел?
>>716044
#62 #716044
>>716039
Это не лаба, я учусь по учебнику Страуструпа с шапки. У вас тут помогают же, нет?
>>716052>>716062
#63 #716052
>>716044
Тебе компилятор явно указал на проблему.
>>716077
#64 #716062
>>716044

>716039


>Это не лаба, я учусь по учебнику Страуструпа с шапки. У вас тут помогают же, нет?


Обращайся почаще к документации на cppreference. Ее же для тебя и пишут
>>716077
#65 #716077
>>716052
>>716062
Ну я оттуда и взял инклуд алгоритм:
http://www.cplusplus.com/reference/algorithm/sort/

Я тут почитал что он пишет, сорт не работает с double?
>>716100
#66 #716094
>>715888
Кто мы-то, этим моча должна заниматься, лол.
>>716545
#67 #716100
>>716077
Ты не правильно вызываешь std::sort по твоей же ссылке есть примеры использования, пусть ты текста не понимаешь.
>>716127
22 Кб, 445x147
#68 #716127
>>716100
Просто, в учебнике так.
Вроде разобрался, надо было так:
std::sort(temps.begin(), temps.end());
>>716139
26 Кб, 305x61
#69 #716139
>>716127
Что-то не так в твоей книге.
>>716143
#70 #716143
>>716139
Странно, почему так? Я качал с рутрекера.
>>716145
#71 #716145
>>716143

>почему так?


Добро пожаловать в волшебный мир переводов специализированной литературы.
>>716146
#72 #716146
>>716145
А где твоя версия книги? В шапке?
#73 #716199
Можно тут немного поныть?

Неужели нет долбанного фриланса для софтовиков, я уже не знаю за что мне взяться, везде сраные индусы, везде анальные ограничения. Не хочу сидеть в офисе и сосать у босса, я могу писать мелкий софт любого характера хоть по 10 баксов за проект. Где найти биржу или людей? Неужели 10 баксов раз в 2-3 дня - слишком много для обычного человека?
>>716246
#74 #716246
>>714998
2
>>716199
ты мое зеркало анон, но только не ебешься с /dev/videoX
ищу лабы/курсачи за 5$ и делаю. но в начале семестра/практики я сусу хуйца ем ничего
>>716520>>718029
#75 #716489
Поцоны не бейте, лучше обоссыте.
Я только начал изучать c++, написал в консоле калькулятор.
В функции main весь код калькулятора. Как сделать её многоразовой? Калькулятор просчитывает одно действие, выдаёт ответ, а затем работа функции завершается.
По ссылке текст кода, если кому интересно.
http://pastebin.com/pR9X0YFS
#76 #716495
>>716489
labs go to dick
>>716519
sage #77 #716512
>>716489
Прочитай первые десять страниц любой книжки по с++.
Это уже даже не смешно.
Тот скриншот про компиляцию в Visual Studio уже даже не кажется фейковым.
#78 #716518
>>714902
Модули реально нужны, а типобезопасность у темплейтов можно и сейчас более-менее навелосипедить.
>>716533
#79 #716519
>>716495

>goto


Ну зачем ты ньюфагу готовый ответ даешь, пусть сам гуглит, разбирается.
#80 #716520
>>716246

>но только не ебешься с /dev/videoX


О, ты тут. Почему не каешься?
>>717021
#81 #716525
>>716489
Перед ретурном добавь main();
#82 #716533
>>716518
Да можно и модули навелосипедить, покушать там pimpl и заныкать макросы в анонимные неймспейсы, а ещё написать constexpr функцию которая будет заменять все точки на слеши и сувать всё в кавычки, назвав её "import".
>>716563
#83 #716541
Ребзя, посоветуйте хороший обучающий курс/статью/книгу по STL.
>>716544>>716690
#84 #716544
>>716541
Животное, в шапку посмотри.
>>716546
#85 #716545
>>716094
ваши коммиты заезжают даж без пулл реквестов. вы не моча чтоли?
>>720420
#86 #716546
>>716544
В шапке указаны только книги и два ютьюб-курса одинаковой степени полезности. В книгах много воды, в курсе слишком мало, хотелось бы на самом деле, что-то среднее.
>>716815
#87 #716550
Возникла идея - классификация программиста по уровню знаний и умений. Например:
"Начинающий - знает основы синтаксиса и STL библиотеку. Умеет писать лабы, что давали в универе" и т.д.

Знающие аноны-программисты можете заполнить такой список? Я только в самом начале пути и было бы интересно послушать опытных анонов.
>>716557>>717185
#88 #716557
>>716550
Нельзя заполнить такой список так, чтобы он был корректным - всё зависит от конкретной предметной области.
>>716559
#89 #716559
>>716557
Хм.. Но ведь есть какие-то базовые вещи, азы которые знают все программисты? Можете их расписать? Пока у меня складывается впечатление, что вся книга Стэнли Липпмана - это тот минимум, что нужно знать. А книга у него довольно объемная, страниц на тысячу.
>>716561
sage #90 #716561
>>716559
Вот например. Знания уровня бичевого стажера.
https://www.google.com/about/careers/students/guide-to-technical-development.html
>>716568>>716587
#91 #716563
>>716533

>Да можно и модули навелосипедить


Компиляция-то от этого не ускорится. Суть модулей, чтобы хидеры не парсить стотыщ раз подряд.
>>716575
#92 #716568
>>716561
Спасибо за ценную ссылку. Первое впечателние, что это шутка - столько знать. Но кажется я долго смотрел на жизнь в розовых тонах. Буду заделывать бреши в своем образовании.
#93 #716575
>>716563

>Компиляция-то от этого не ускорится. Суть модулей, чтобы хидеры не парсить стотыщ раз подряд.


Ты похоже не знаком с pimpl и предкомпилированными заголовками. Модули велосипедят уже 20 лет, и всем похуй.
>>716586
#94 #716586
>>716575
Автоматически ты в пимпл все не сконвертишь, плюс не все в принципе можно сделать пимплом. А типизацию у темплейтов можно худо-бедно и сейчас накостылить, причем не слишком сложно.
#95 #716587
>>716561
Знания уровня стажера гугла. Там же так и написано.
>>716588
#96 #716588
>>716587
И что ты хотел этим сказать?
>>716609
#97 #716609
>>716588

>Знания уровня бичевого стажера

>>716614
#98 #716614
>>716609
Это была ирония. Шутка.
21 Кб, 436x741
#99 #716636
Небольшой вопрос по памяти:
мы создаем истанс класса а, и вызываем метод, который в свою очередь создает инстанс класса к
несмотря на то, что метод закончил работу, деструктор класса к не вызывается
потом, мы запоминаем адрес пременной типа дабл и удаляем класс а
Потом выводим то, что находится по ссылке, выводится то же число, что и было введено констурктором к - 9.11

Далее, второй случай, допиливаем дестурктор а, где пишем delete k; - все равно, 9.11 остается в памяи процесса

Так вот, вопрос, как рассматривается участок памяти, в котором находится число 9.11 в первом и во втором случае, это все еще алоцированное пространство, или уже нет?
>>716701>>716747
#100 #716675
>>714898 (OP)
Анасики, ждете сопрограммы?
Они ведь в итоге будет в виде async/await или вообще не будут что там в стандарте, брат?
>>716679>>716684
#101 #716679
>>716675
Уже не будут. От слова совсем.
#102 #716684
>>716675
Не решили нихуя, комитетчики посчитали, что мейнстрим — async/await некошер, а они единственные могут сделать правильно, лол. Юзайм буст, в общем, как всегда.
72 Кб, 851x829
#103 #716687
Боги c++. Я школьник бывший тут недавно. В задание нужно использовать контейнер map. Сам я погуглил и нихуя не понял.
Идея решения такая.
1) делаем map<string, double> base;
2) как-то забиваем в поле string имя-фамилию, в double, среднее значение
3) выводим 3 худших значения
Не знаю как сделать 2 и 3. Т.к. не знаком с мапом. Помогите мне! Прошу!
>>716711>>716806
#104 #716690
>>716541
Джо Саттис.
#105 #716701
>>716636

> int z[100];


> delete[] z;


r u Sirius?

На вопросы не отвечу, так как не смог понять, кто там на ком сидел.
>>716712
#106 #716711
>>716687

>1) делаем map<string, double>


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

С другой стороны, map<double,string> не катит из-за возможных одинаковых средних баллов.
>>716718
#107 #716712
>>716701
Черт, а как тогда освобождать память таких массивов? Просто, без квадратных скобок?

Суть в том, что я пытаюсь понять, как воспринимается память системой под которую был или не был вызван деструктор.
Есть класс а, в этом классе - подкласс к. Как будет расцениваться выделенная под класс к память если вызывать деструктор класса а с деструктором класса к и без
>>716717>>716747
#108 #716717
>>716712
Никак не освобождать, память под 100 элементов выделится при создании класса и освободится при уничтожении.
Ты же не выделял с помощью new, зачем вызывать delete тогда.
>>716722
#109 #716718
>>716711
Я не понимаю как заносить туда. Вроде так.
base.insert (pair<string, double>(str, num));
Но как мне взять число если я полностью считал строку?
>>716721
#110 #716721
>>716718

>Я не понимаю как заносить туда.


string student_naem;
base[student_naem] = mark;

Оператор [] у std::map создаёт новый ключ при обращении. если его ещё не было.
>>716727
#111 #716722
>>716717
Всмысле не выделял, я динамически не выделял
Создание переменной - аллоцирование памяти под нее, разве нет?
>>716724
#112 #716724
>>716722
Да. Но delete удаляют явно выделенное с помощью new.
>>716738
#113 #716727
>>716721
Ясно, а откуда mark тогда взять? Как из строки мне выделить 3 оценки без велосипеда?
>>716735
#114 #716735
>>716727
А, там всё в одну строку.
Короче, считываешь всю строку с помощью getline.
Оборачиваешь строку в istringstream и вытаскиваешь из stringstream строки с фамилией именем и оценки
см. http://stackoverflow.com/questions/1883056/stdstringstream-to-read-int-and-strings-from-a-string
>>716757
#115 #716738
>>716724

>удаляют


Я тут и пытаюсь понять, как это все устроено, что и как нужно удалять.
Значения остаются в памяти, их можно спокойно просмотреть по поинтеру. Откуда мне знать что память уже релоцирована, явного деструктроа класса к я же не вызывал?
>>716749
#116 #716747
>>716636

>Далее, второй случай, допиливаем дестурктор а, где пишем delete k; - все равно, 9.11 остается в памяи процесса


>>716712
Ты вызываешь этот деструктор (удаляешь a) и после используешь r?
#117 #716749
>>716738
При удалении память просто помечается как свободная, все значения в памяти остаются (и могут быть прочитаны) пока память не будет переиспользована для чего-то другого. Поэтому важную инфу в памяти нужно вручную затирать нулями или чем-то случайным. Ситуация как с файлами на жестком диске, если ты понимаешь о чем я.
>>716750
#118 #716750
>>716749
В том то и дело, что я, блядь, не удаляю память прямо, не вызываю деструкторов, вот и пытаюсь понять что с ней произойдет
>>716756
#119 #716756
>>716750
В первом случае ты можешь удалить память выделеную под дабл через оставшийся указатель, все остальное утекло (хотя непереносимым пердолингом тоже можно вытащить скорее всего). В втором случае все освобождается (если правильно деструктор написал), добавь в деструктор К обнуление флоата если ты через него проверяешь. По самому факту освобождения флоат не обнулиться.
>>716762
#120 #716757
>>716735
Я не понял. Я пытался, но не понял. Можешь объяснить?
#121 #716759
>>716757
string buffer;
getline(cin, buffer);
istringstream iss(buffer);

string last, first;
int marks[3];

iss >> last >> first;
iss >> marks[0] >> marks[1] >> marks[2];

Как-то так.
>>716761
#122 #716761
>>716757
>>716759
Впрочем, достаточно будет из cin считывать, безо всяких stringstream.
#123 #716762
>>716756
Да я понимаю, что освобождение != обнуление, поэтому и спросил тут как оно устроенио
Спасибо, вроде понял
#124 #716763
>>716767
#125 #716767
>>716763
БЛЯ, КАК ВСЕ ПРОСТО, СПАСИБО!
Ток 1 вопрос, разве можно простым cout?
Я так выводил
for (auto it = m.begin(); it != m.end(); ++it)
std::cout << it->first << " : " << it->second << '\n';
#126 #716787
Вот что вышло у меня в итоге, как можно сделать лучше?
http://pastebin.com/MVDxjrLK
>>716789>>716791
#127 #716789
>>716787
а че ты, собсна, хош?
>>716795
#128 #716791
>>716787
for (auto it:base)
>>716795
#129 #716794
Посоны, подкиньте, пожалуйста книгу годную по паттернам, именно тем, которые получится применять в C++ и, в целом, про их назначение (конечно, некоторые знаю и использую, но хотелось бы по-полнее).
>>716807
#130 #716795
>>716791
Тогда надо стрелку на точку менять, правильно?
>>716789
Я привык, что всегда есть более компактное и эффективное, и элегантное, и гибкое решение, но я его не вижу. Вот и спрашиваю, какое оно.
>>716804
#131 #716804
>>716795

>> for (int i = 0; i != N; ++i)


for ( ; N > 0; --N)

4 байта тебе отжал
#132 #716806
>>716687
Иди нахуй, сука. Заебали со своими лабами, тупые пидарасы. Сначала полгода нихуя не делаете, а потом приходите на двачик со своими имбецильными "плак плак, крестаны, помогите решить лабу) посыпаю голову пеплом)))".

А ГДЕ ТЫ 3 МЕСЯЦА НАЗАД БЫЛ, СУКА? А ЧТО ПОТОМ БУДЕШЬ ДЕЛАТЬ, А, МРАЗЬ? СВОБОДНАЯ КАССА КРИЧАТЬ? ВСЕ ПРАВИЛЬНО ПОНЯЛ?
>>716820
#133 #716807
>>716813
#134 #716813
>>716807
Благодарствую, а еще есть?
>>716817
189 Кб, 2002x832
#135 #716815
>>716546
Какой же ты пиздоглазый. Тебе не надо идти в программисты.
>>716823>>716825
#136 #716817
>>716813
Макконелл, Фаулер.
#137 #716820
>>716806
Что ты блядь несешь еблан? Я пробники нарешиваю, тут задание где ассоциативные контейнеры нужны, я про них не знал, из гугли мало что понял. Логично что я спрошу у кого-нибудь и разберусь, а не буду как конч сидеть и ждать.
>>716828
#138 #716823
>>716815
Да я ее прочитал уже нахуй
#139 #716825
>>716815
Б л я т ь Спасибо и правда я был невнимателен когда читал шапку.
#140 #716828
>>716820
МНЕ ПОХУЙ БЛЯ КТО ТЫ: СТУДЕНТОМРАЗЬ С ЕБУЧИМИ ЛАБАМИ ИЛИ ШКОЛОГНИЛЬ С ЕБУЧИМ ЕГЭ. КНИГИ И ДОКУМЕНТАЦИЮ ПИШУТ ИМЕННО ДЛЯ ТАКИХ КАК ТЫ, ЧТОБ ТЫ, СУКА, ВЗЯЛ, НАПРИМЕР, ДЖОССАТИСА, ОТКРЫЛ ГЛАВУ ПРО MAP И ПРОЧИТАЛ ВСЕ НАХУЙ: И ТЕОРЕТИЧЕСКОЕ ОПИСАНИЕ, И ИНТЕРФЕЙС, И ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ, ДАЖЕ ПРО НЕБО И АЛЛАХА ТАМ МОЖНО ПРОЧИТАТЬ.

НО НЕТ БЛЯ НАДО НА ДВАЧ ИДТИ И СПРАШИВАТЬ. А ЕСЛИ ИНТЕРНЕТА НЕ БУДЕТ, ЧТО ТЫ БУДЕШЬ ДЕЛАТЬ??? А ЕСЛИ НА РАБОТУ УСТРОИШЬСЯ, ТОЖЕ КУРАТОРА БУДЕШЬ ДОЕБЫВАТЬ ПО КАЖДОЙ МЕЛОЧИ?
>>716836
#141 #716836
>>716828

> А ЕСЛИ НА РАБОТУ УСТРОИШЬСЯ, ТОЖЕ КУРАТОРА БУДЕШЬ ДОЕБЫВАТЬ ПО КАЖДОЙ МЕЛОЧИ?


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

> КНИГИ И ДОКУМЕНТАЦИЮ ПИШУТ ИМЕННО ДЛЯ ТАКИХ КАК ТЫ, ЧТОБ ТЫ, СУКА, ВЗЯЛ, НАПРИМЕР, ДЖОССАТИСА, ОТКРЫЛ ГЛАВУ ПРО MAP И ПРОЧИТАЛ ВСЕ НАХУЙ: И ТЕОРЕТИЧЕСКОЕ ОПИСАНИЕ, И ИНТЕРФЕЙС, И ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ, ДАЖЕ ПРО НЕБО И АЛЛАХА ТАМ МОЖНО ПРОЧИТАТЬ


Бля, я прочитал примеры, прочитал про всякое и не было или я не увидел нужного мне и представь Я ПОШЕЛ НА ТЕМАТИЧЕСКУЮ ДОСКУ, В ТЕМУ ГДЕ ОБЩАЮТСЯ НА КОНКРЕТНУЮ ОБЛАСТЬ В ЭТОЙ ТЕМАТИКЕ И СПРОСИЛ ВОПРОС СВЯЗАННЫЙ С ЭТОЙ ОБЛАСТЬЮ, вот же я мудак, пиздец, как посмел, ШЕЛЬМЕЦ!

Даже если взять твои обвинения. Задание я сделал сам, мне нужно было знать только как забить данные в контейнер и все!
>>716848
#142 #716848
>>716836

>Я ПОШЕЛ НА ТЕМАТИЧЕСКУЮ ДОСКУ, В ТЕМУ ГДЕ ОБЩАЮТСЯ НА КОНКРЕТНУЮ ОБЛАСТЬ В ЭТОЙ ТЕМАТИКЕ И СПРОСИЛ ВОПРОС СВЯЗАННЫЙ С ЭТОЙ ОБЛАСТЬЮ


Ты пошел на тематическую доску, зашел в тематический тред и как настоящий школотрон не прочитал шапку, в которой есть и нужные книги, и народная мудрость:

>Вопросы по синтаксису идут на хуй


>Лабы идут на хуй



В данном случае твой вопрос является чем-то средним. Пойми, бугурт здешних плюсанов не на пустом месте берется. Уже тредов так 5 приходят всякие школотроны вместе с студентотой и спрашивают то, ответы на что уже 300 раз написаны в шапке.
>>716866>>716881
#143 #716866
>>716848

> Ты пошел на тематическую доску, зашел в тематический тред и как настоящий школотрон не прочитал шапку, в которой есть и нужные книги, и народная мудрость:


Читал и книжки у меня скачаны, заходил на стак, ну не нашел я, что блядь мне делать?
>>716881
#144 #716881
>>716848
Да ладно тебе, братюнь, не горячись. Не всегда мы были опытными и умели искать инфу быстро. В школе этому не учат же. Я вот был в его возрасте гораздо большим долбоебом.
>>716866
Ты просто следуй паре простых рекомендаций:
1. Если твой вопрос формулируется в виде "как сделать X?", то лучше гуглить это, гуглить на английском, смотреть факи, доки, книги, стековерфлоу - что угодно, хранящее инфу, но не спрашивай, блядь, в треде. Тред должен нести пользу читающим его, а не быть забитым вопросами разного уровня глупости. Вопрос, на который есть ответ в книгах из шапки, и тем более гуглящийся, вызовет перебрасывание какашками между тобой и алтфаками, никто в результате не выиграет.
2. Если твой вопрос формулируется в виде "как лучше всего сделать X?", "посоветуйте хороший источник информации про X" etc - вот тогда смело пиши в тренд, будет польза как тебе, так и другим анонам потом.
#145 #717020
Какой библиотекой нынче пользуются для рисования модного гуя?
>>717023
#146 #717021
>>716520
каюсь ещё
#147 #717023
>>717020
qt fltk
#148 #717064
Товарищи, помогите дебилу, пожалуйста.

http://pastebin.com/RJ6AZRJ4 - cpp
http://pastebin.com/MiF2KEaQ - h

В общем. При любом обращении к xml_writer внутри inc_block софтина вылетает.

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

Заранее спасибо
>>717066
#149 #717066
>>717064
Конкретно тут не доходит до 30 строки, отдает сегфолт.
И во всех вышеперечисленных случаях тоже отдает сегфолт.
>>717112
16 Кб, 462x333
#150 #717077
Студия кормит меня пикрелейтед, когда я удаляю массив из указателей на свою структуру. Что делать?
[CODE]
delete[] data;//здесь происходит пикрелейтед
data = new dial[length];[/CODE]
#151 #717078
Анонусы, а когда создается vtable? При запуске программы или при создании объекта?
>>717080>>717083
#152 #717080
>>717078
implementation dependent. А вообще в compile time
>>717085
#153 #717083
>>717078
При компиляции. Потому что вызов конкретного метода должен замениться прыжком в эту vtable.

Учи английский, сука
http://stackoverflow.com/questions/3849498/when-is-vtable-in-c-created

>Typically, vtables are structures created at compile time (because they can be determined at compile time). When objects of a particular type are created at runtime they will have a vptr which will be initialized to point at a static vtable at construction time.

>>717086
#154 #717085
>>717080

>compile time


Ну это понятно. Я не правильно выразился.
В памяти vtable появится при запуске или при создании объекта?
>>717349
#155 #717086
>>717083
Понял. Сразу в памяти висит.
#156 #717112
>>717066
У тебя не инициализирован xml_writer. Для инициализации членов класса пользуйся предназначеным для этого синтаксисом.
>>717365
#158 #717253
Что с веб-программированием на плюсах? Наткнулся на главу в одной книжке, пишется какой-то интерфейс и прочее.
Это актуальо вообще? Требуется где-нибудь?
>>717348
#159 #717348
>>717253

>Требуется где-нибудь?


Гугел, яндекс
#160 #717349
>>717085
При запуске.
#161 #717365
>>717112

(дубль ссылки: http://pastebin.com/RJ6AZRJ4)

Подожди, но в пятой же строке - разве не инициализация?

Он после нее и отдает адрес устройства в 21ой.

А внутри inc_block он на таком же запросе адреса падает (30 стр.), хотя xml_writer объявлен как глобальный.

Я также пытался его напрямую передать по ссылке и по указателю - ситуация аналогична.
>>717373
#162 #717373
>>717365
Ты объявил локальную переменную xml_writer которую и используешь в конструкторе. А в tms::inc_block() ты пытаешься использовать член класса xml_writer который не инициализирован, судя по тому коду что ты предоставил.
>>717374
#163 #717374
>>717373
Начинаю немного пони мать, сейчас попробую.
>>717376
#164 #717376
>>717374
И вообще, если я не ошибаюсь QXmlStreamWriter занимает 4 байта, нахуя ты пердолишся с указателем на него. Объяви его (в h файле) как QXmlStreamWriter xml_writer; а не QXmlStreamWriter *xml_writer; - он создастся и удалится автоматически.
>>717385
#165 #717385
>>717376
Да я уже и так пробовал, одна куйня.
>>717386
#166 #717386
>>717385
Еще нужно не забыть удалить QXmlStreamWriter *xml_writer = new QXmlStreamWriter;
>>717388>>717391
#167 #717387
Надо увеличить размер вектора в два раза и заполнить его дополнительные компоненты слева нулями. Как это сделать проще всего?
>>717390
#168 #717388
>>717386
Там это все пропущено, т.к., как ты уже наверное понял, я тот еще дилетантище.

Сейчас возвращаю fille и xml_writer без указателей, попробую так.
>>717389
#169 #717389
>>717388
(пропущено всм., т.к. я слишком часто все меняю)
#170 #717390
>>717387
v.insert(v.end(), v.size(), 0);
>>720393
#171 #717391
>>717386
Все, понял в чем еще косяк был. У меня еще из раза в раз пересоздавался fille (в конструкторе было new QFile).

Просто надо было setFilename вместо этого всего онанизма поставить и все.

Благодарю за помощь, удачи тебе, добрый человек.
#172 #717458
Посоны, поясните в чем именно сложность плюсов?
#173 #717515
Как найти работу джуном C++?? где искать в ДС? Или забить хуй и учить Джваву??
>>717632
#174 #717632
>>717515
пробни например стажировку в яде, и воообще я сам офигеваю что в hh из вакансий нет по крестам ничего, но стоит взять /dev/vi.., встать с дивана и пробовать!
оформить гитлаб/хаб
просится на работу за ничего но со стажем
решать задачи на тонкости и алгоритмы за пол наносекунды
и через годик-хуёдик вкатится в норм контору с норм зп и уже со стажем за спиной
>>718068
#175 #717870
Посоветуйте годную книжку по DirectX для ньюфага.
#176 #717954
Суп, программач. Копаю по тихонечку плюсы такая-то хуита, шо пиздец. и не могу понять, почему этот код не работает. То есть он работает, но операции не выполняются.

int a, b, c;
char x;
cout << "enter a: ";
cin >> a;
cout << "enter b: ";
cin >> b;
cout << "enter operand: ";
cin >> x;

if (x == '+')
{
c = a + b;
}
else if (x == '-')
{
c = a - b;
}
else if (x == '')
{
c = a
b;
}
else if (x == '/')
{
c = a / b;
}

keep_window_open();
#176 #717954
Суп, программач. Копаю по тихонечку плюсы такая-то хуита, шо пиздец. и не могу понять, почему этот код не работает. То есть он работает, но операции не выполняются.

int a, b, c;
char x;
cout << "enter a: ";
cin >> a;
cout << "enter b: ";
cin >> b;
cout << "enter operand: ";
cin >> x;

if (x == '+')
{
c = a + b;
}
else if (x == '-')
{
c = a - b;
}
else if (x == '')
{
c = a
b;
}
else if (x == '/')
{
c = a / b;
}

keep_window_open();
#177 #717960
>>717954
Не знаю, что случилось с разметкой. Вот код в компиляторе:
http://ideone.com/aZgvXG
#178 #717966
>>717954
Все работает и выполняется.
>>717976>>717978
#179 #717968
>>717954
А что должно быть?
>>717976>>717978
#180 #717976
>>717966
>>717968
Я знаю, что всё работает, но почему результата нет?
>>717978
#181 #717978
>>717976
>>717968
>>717966
Вот я мудак. Вопрос исчерпан.
#182 #718020
>>715389
Перегрузи оператор [] и обращайся через Data[j]. Раз у тебя ИНКАПСУЛЯЦИЯ. Чем не вариант? Или сделай поля публичными, раз у тебя там такое "здравствуй-90-е" процедурное программирование.

Ну и пара очевидных советов: запрашивать ввод пользователя внутри функции создающей матрицу -- это плохо. Это раз. Во-вторых данные лучше инициализировать внутри конструктора. Выдумывать для этого отдельную функцию Create не нужно. Вынеси в main запрос ввода размеров и передавай их как параметры внутрь конструктора.
>>718392
#183 #718029
>>716246
Где ищешь лабы/курсачи? Может, поделешься местами? Понимаю, что лишняя конкуренция тебе не нужна, но я бедный студент, и кушать хочется.
Тоже тыкался по биржам, но ничего толкового не нашел. Пытался поискать какие-то тематические группы вконтактике, но они там все анально-огорожены.
>>718068
#184 #718068
>>718029
есть 3 места
0 твой универ
1 типичный программист обсуждения студенты туда бегут сразу пачимута
2 итт/нюфаньтред итт я 6 тредов и видел только одну большую работу за ничего500 р вроде при коде в 800 строк минимум но думаю под сессию раки набегут ппц

найдёшь лабу в 1 и 2 -- попроси студента рассказать паре друзей бездельникам.
кеш забираю мертвыми деньгами. Хватает на пару шавух в неделю и рис с соевым соусом.
зы в планах уйти в html + py + css + js для фрилансов или стажировки пробнуть как тут >>717632
#185 #718297
Здравствуйте, лабодрочеры. Понимаю, что ИТТ обсуждаются только лабы и проблемы компиляции одной кнопкой в визуалстудии а не насущные проблемы, но я смею немного обратить на себя ваше внимание.

Собственно - пишу один лексопарсер для автокомплита (дада, yacc и ragel, все дела, но я велосипедист), и для построения AST приходится заниматься множественной копипастой в стиле:

Function(const std::string &name, int argc, const std::string &args) : name_(name), argc_(argc), args_(args)
...
Hui(const std::string &name, int argc, const std::string &args) : name_(name), argc_(argc), args_(args)
...
Pipiska(const std::string &name, int argc, const std::string &args) : name_(name), argc_(argc), args_(args)

Собственно, как это можно красиво завернуть списки инициализации в препроцессор/constexpr? Писать всё руками с последующим рефакторингом - слишком печально, писать отдельный скрипт для кодогенерации в 2076 - тоже некошер.
#186 #718341
>>718297
Ну, можно сделать что-то вроде такого:
template <class... Args>
Function(std::initializer_list<Args> args) {
std::tie(name, arg1, arg2, etc) = std::make_tuple(args...);
}

Не проверял, но должно работать
#187 #718355
Алоха, антуаны.
Писал спрашивал уже в соседнем треде, теперь и тут спрошу.
Подходят ли кресты под разработку приложений с упором на работу с tcp/ip и чтение/запись в память, работа с указателями и адресами и т.д.?
>>718357>>718786
#188 #718357
>>718355
Более чем
#189 #718392
>>718020

>"здравствуй-90-е" процедурное программирование


Школьник думает, что ООП изобрели после 90-х. И что с изобретением ООП "процедурное программирование" якобы "устарело" и стало ненужным.
>>718394
#190 #718394
>>718392
Да, забавно, учитывая, что весь хайп ООП - это 80-е. Но вообще он прав, а у вопрощающего пиздец.
>>718396
#191 #718396
>>718394

> весь хайп ООП - это 80-е


Мне казалось (сильно в этом не копался), что всё же начало 90-х.
Открывал когда-то книгу какого-то Бутча от 94-го, что ли, года. Там было типа такого: «вот есть у нас программа-фильтр, которая считывает файл, что-то там с ним делает и выводит. Но это НИСАВРИМЕННО! Надо создать объект "файл" и объект "фильтр" и послать между ними сообщения!»
Плюнул и закрыл. Я думал это техническая литература. А оказалось — на уровне религиозных брошюрок.
>>718688
#192 #718398
ООП старое и такое же говно как и процедурки. Что лучше ООП?
#193 #718399
>>718398
Ничто не лучше и не хуже. Для чего-то больше подходит, для чего-то не подходит и всё.
#194 #718400
>>718398
ф-ф-ф-ф-функциональщина
#195 #718402
>>718297
Не дрочи на "инкапсуляцию" там, где не надо.
Выкини конструкторы и зделой поля паблик.
#196 #718404
>>718297
struct Yoba { std::string name; int argc; std::string args };

A(Yoba yoba) : { yoba } {}
B(Yoba yoba) : { yoba } {}
=====================

A({"yoba", 34, "da ty yoba"});
>>718406
#197 #718406
>>718404
fix
A(Yoba yoba) : yoba_{ yoba } {}
#198 #718417
>>718398
Пишешь код, выделяешь полиморфные алгоритмы, далее оформляешь их либо в виде шаблонов, что проще, но только в статике, либо в виде интерфейсов, либо в виде, внезапно, tagged union'ов. Об объектах не думай, должны быть [полиморфные] алгоритмы, [полиморфные] структуры данных, конкретный тип полиморфизма нужно определять по месту. Лучше всего в структуре данных иметь только конструкторы и один operator(), тогда твои объекты превратятся по сути в функции на стероидах и их будет очень легко совмещать. Так как 90% кода это трансляторы одних данных в другие, такой подход тебе во многом поможет.
#199 #718688
>>718396
Кто страшится всех трудных путей - тот глупец;
Кто, познав их, не видит простого - слепец.
Раз за разом дорогу с умом выбирая;
Быстро к цели идет, обогнав их, мудрец.
#200 #718786
>>718355
Ну скорее нет, лучше посмотри в сторону ruby и php.
#201 #718901
Что писать в резюме в графе "предыдущий опыт работы", если ты нигде официально не работал, и все что у тебя есть - полсотни багфиксов вговнорепозиториях на гитхабе?
>>718962
#202 #718962
>>718901
"Успешно контрибутил в говнорепы (список говнореп) с целью получения опыта, запилил там то-то, пофиксил несколько сложных багов, и т.д."
5 Кб, 522x224
#203 #718991
Почему он говорит, что папка отсутствует любая папка, даже корень, даже Аллах?

Мне вообще сюда?
>>719020>>719024
#204 #719020
>>718991
Потому что у тебя проблемы с логикой.
>>719033
#205 #719024
>>718991

>говорит, что папка отсутствует


Где?
>>719033
#206 #719033
>>719020
>>719024
С ангельским у меня проблема. Я просто запутался из-за того, что QDir::currentPath() возвращает не путь к директории, где находится исполняемый файл, а на уровень выше, почему-то.
>>719045
#207 #719045
>>719033

> QDir::currentPath() возвращает не путь к директории, где находится исполняемый файл, а на уровень выше, почему-то.



currentPath() возвращает текущую директорию, как очевидно из названия.
А не путь к исполняемому файлу и не "на уровень выше" его.
>>719064
#208 #719064
>>719045

>Returns the absolute path of the application's current directory. The current directory is the last directory set with QDir::setCurrent() or, if that was never called, the directory at which this application was started at by the parent process.



Что понимается под parent process? Компилятор, cmd.exe, .exe моей программы все равно ничего не подходит

Добавил.
QDir::setCurrent(QCoreApplication::applicationDirPath());

Но чтобы это сделать пришлось ради этой одной строки подключать #include <QDir> в main.cpp, что меня немного напрягает, или это нормальная практика и код от этого сильно не увеличится.

И что лучше, сделать как написано выше, или в файле моего класса, где используется <QDir> подключить <QCoreApplication> и в нём установить setCurrent?

Или вообще в main получить applicationDirPath() и передать его в статический метод моего класса?
#209 #719069
>>719064

>Что понимается под parent process?


Как обычно, процесс, который породил данный процесс.
>>719072
#210 #719072
>>719069
Ну, если я дважды кликнул на ехе-файле - какой это процесс? explorer.exe?
Почему тогда currentPath() возвращал путь к папке, в которой вообще нет исполняемых файлов?

И там еще второй вопрос.
>>719075
#211 #719075
>>719072

>Ну, если я дважды кликнул на ехе-файле - какой это процесс? explorer.exe?


Где-то около.

> Почему тогда currentPath() возвращал путь к папке, в которой вообще нет исполняемых файлов?


Прям при запуске двойным кликом? Или всё-таки из какого-нибудь QtKreakl?
>>719082
#212 #719082
>>719075

>из какого-нибудь


this. Ясно, магия.

И всё же, второй вопрос в силе.

>Но чтобы это сделать пришлось ради этой одной строки подключать #include <QDir> в main.cpp, что меня немного напрягает, или это нормальная практика и код от этого сильно не увеличится.


>И что лучше, сделать как написано выше, или в файле моего класса, где используется <QDir> подключить <QCoreApplication> и в нём установить setCurrent?


>Или вообще в main получить applicationDirPath() и передать его в статический метод моего класса?

>>719087
#213 #719087
>>719082

>this


Ясно, что IDE пускает как-нибудь так:
cd ProjectDir; exec Debug/app.exe

Поэтому текущая директория оказывается "на уровень выше приложения".

> И всё же, второй вопрос в силе.


ХЗ ваще.
#214 #719216
>>719064

> код от этого сильно не увеличится


Зависит от хедера, вообще не должно сильно много увеличится. Если сильно волнуешься и нужна только одна функция можешь попробовать просто ее задекларировать, что-то типа bool QDir::setCurrent(const QString & path); главное чтобы библиотека была прилинкована. Но это так себе способ, так как в хедере может какая-то магия происходить.
#215 #719236
>>719064
а тебе не класть на размер кода? главное же размер объектников и конечного экзешника, что благополучно решает линковщик, который выкинет всё лишнее.
#216 #719244
Ребят, помогите с лабой одной проблемой. Мне нужны аналоги getch и
kbhit на линукс. Считывание нажатой клавиши и проверку нажата ли клавиша в данный момент.
>>719248>>719261
#217 #719248
>>719244
Пошел нахуй, мразь.
используй std::cin.getc()
>>719252
#218 #719252
>>719248
Нажатие кнопки, Карл, не ввод чара. Я типа не для удержания окна, а для дела.
#219 #719261
>>719244
man ncurses или man termios(3)
>>719282
#220 #719282
>>719261

> man termios(3)


bash: syntax error near unexpected token `('
4 Кб, 198x118
9 Кб, 625x320
новичек, код пашет не так, как хотелось бы #221 #719286
#include <iostream>
using namespace std;
int main ()
{
float X,Y;
cout<<"X="; cin>>X;
if (X<-2) Y=-X;
else if (X>0) Y=5-2/3X; <-----не работает конкретно это
else Y=5+1.5
X;
cout <<"Y=" <<Y<< endl;
return 0;
}
>>719288
#222 #719288
>>719307
#223 #719307
>>719288
спс
#224 #719320
Насколько плох/хорош перевод "Программирование. Принципы и практика использования C++" Страуструпа? Обычно читаю на аглицком, но надо как можно быстрее вкатиться на минималку, а на русском я всё-таки раза в 1,5 быстрее читаю и воспринимаю информацию.
#225 #719372
Как в Qt сделать так, чтобы при нажатии кнопки вызывалась какая-нибудь функция, которая использует текст из lineEdit'ов ui-формы? Например, она записывает их в файл. Не понимаю, где нужно делать слот и как получать доступ к этим строкам.
>>719376
#226 #719376
>>719372
Давай лучше в грузчики с такой хуйнёй.
113 Кб, 596x604
#227 #719434
Няши, подскажите, где можно почитать про сокеты? Основы я наешел, а вот даже отправку комманд найти не получается. Да и вообще, если я правильно понял, сокеты это единственный вариант соединения шиндоуса и линукса? Такой важны раздел, а ни где нет инфы. Я даже не могу найти, можно ли по сокету передавать объекты типа массивов и т. д.
>>719438>>720140
#228 #719438
>>719434
Пздц у тебя каша в голове.
>>719444
#229 #719444
>>719438
4 дня уже не сплю, наверное еще денек и всё, можно отдыхать.
#230 #719505
Ребят, тут никто не желает покачать свои педагогические скиллы на практике?
>>719506
#231 #719506
>>719505
Желаю. Предпочитаю физические методы воздействия.
#232 #719673
Как правильно создать массив размером graph[m][2]?
Знаю, что можно
[code]
int graph = new int [m];
for(int i = 0; i < m; ++i) {
graph = new int [2];
[/code]
однако в таком случае происходит m выделений памяти, а это долго и может привести к фрагментации. Хотелось бы справиться за одно, а потом раскидать указатели, как тут
[code]
int
graph = new int [m];
graph[0] = new int[2m];
for(int i = 0; i < m; ++i) {
graph =
graph + i(sizeof(int)*2);
}
[/code]
однако этот код не работает
>>719688>>719758
#233 #719688
>>719673
Выделение памяти под пару интов – операция на 0,5 мс даже на слабой пеке, получить фрагментацию памяти при такой хуйне можно разве что если одновременно идут какие-то массовые аллокации и то на древней ос (все современные с дефрагментирующими аллокатарами из коробки).

Если так хочется сделать максимально быстро – выделяй постранично системным апи (увеличивая m до размера, который можно выделить таким образом) и раскидывай указатели руками для удобной работы "как с двойным массивом".
>>719695
#234 #719691
[code lang="cpp"]
int test = 7;
int fuck = (int ) malloc(sizeof(int)*test);
[/code]
#235 #719695
>>719688
Можешь объяснить почему http://pastebin.com/mgHj7tyb работает?
>>719697>>719698
#236 #719697
>>719695
не работает
фикс
#237 #719698
>>719695
graph = graph + i(sizeof(int)2);
Одна строка и годы анальных мучений...
Ты лучше сам себе попробуй повторить что ты этим кодом делаешь.
#238 #719758
#239 #720050
>>715888
Мод уже 9 дней её игнорит хотя 6 дней назад в вашу шапку комитил. чё за хуйня? поясни что попровить
#240 #720104
Анончики, я наверное всех заебал со своими классами только начал их изучать и опять один петушок начнет кукарекать ВОПРОСЫ С СИНТАКСАМИ ИДУТ НАХУЙ такие пидары отбивают все желание учить язык однако прошу совета адекватных анонов:

У меня есть класс, где в паблике я инициализирую матрицу (int data, size) и в этом классе всякие функции для работы с матрицей (заполнение, транспонирование и тд)

В main у меня есть функция, куда нужно передать этот КЛАСС. Не по отдельности ( класс Matrix Data, передаю Data.data, Data.size) а просто передать в нее класс, а в функции работать уже с data, size. Как это сделать? Гуглил и нихуя подобного не нашел, везде инфа про то как передавать функции из классов, а как передать полностью класс?
>>720147>>720228
#241 #720121
Если я покажу вам свой код и задание. Вы скажете эффективно я его выполнил и укажете на ошибки если таковые имеются?
>>720148
#242 #720140
>>719434
Boost.ASIO
#243 #720147
>>720104

>и опять один петушок начнет кукарекать ВОПРОСЫ С СИНТАКСАМИ ИДУТ НАХУЙ такие пидары отбивают все желание учить язык


Это ты петушок и пидар, раз не можешь открыть нормальную литературу и прочитать ее. Вот для кого страуструп писал книгу? Для таких, как ты. Так что пошел нахуй, чернь.
>>720157
#244 #720148
>>720121
Если это задание - лаба, пиздуй к лаборантам, им за это деньги платят. Если что-то нетривиальное, то пожалуйста.
>>720153
56 Кб, 879x444
#245 #720153
>>720148
Я уже был тут, моя пидорская егэ параша. Я вроде сделал, вроде все работает. Но я думаю были пути сделать проще и быстрее, и гибче, и красивее ну и так далее
http://pastebin.com/ftu7irpx
#246 #720157
>>720147
вот про него я и говорил. Чувак, я месяц в плюсах, до этого не работал с языками, какой нахуй страуструп? Этот мудень излагает таким образом, что пошел он в пизду со своей книгой.
Покажи мне хоть одного человека, который учился по страуструпу не зная языков?
Моя задача понять азы программирования и вот один из них который я не понял, но ты же сука знаешь, однако подсказать тебе влом, вроде хуй убавится тебе от этого, зато поможешь начинающему анону. Пошел нахуй мудак
>>720158
#247 #720158
>>720157

> страуструп


Я учился по нему, все понятно, это у тебя проблемы
мимо
>>720160
#248 #720160
>>720158
я начал с шилтда, ибо он излагает понятным и доступным языком. Это не значит, что до страуструпа не дойдет, я обязательно и его изучу, но не все сразу. Тут бля вопрос элементарный, для знающего анона, но хуй кто поможет
>>720165>>720226
#249 #720165
>>720160
Знающий анон в треде: съеби нахуй с плюсов, это язык не для нюфагов. Ты только замедлишь своё развитие как программиста. Можешь поучить Си если хочется прям основ, но не надо начинать с плюсов.
Тред и без тебя забит такими муделями.
#250 #720172
>>720165
Кстати, из шапки куда-то пропало замечание, что нехуй начинать свой путь программиста с плюсов. Надо бы pull риквест отправить.
#251 #720178
>>720165

>Можешь поучить Си если хочется прям основ


Лучше взять что-то скриптовое типа питона или руби, а потом навернуть Таненбаума с его "Архитектурой компьютера".
#252 #720184
>>720165
ну коли уж начал, нет пути назад. Пиздец, никто не поможет что ли?
>>720187
#253 #720187
>>720184

>ну коли уж начал, нет пути назад.


Ты дурак? Тебе предстоит путь, длиной больше 500 рабочих часов из которых ты прошел максимум 40. Не страдай хуйней и иди наворачивай python.
>>720203
#254 #720189
>>720153
Я, конечно, не специалист, но мне кажется ты хуйни понаписал.
>>720193
#255 #720192
>>720153
Лучше на паскаль перепиши.
>>720193
#256 #720193
>>720192
Не знаю паскаля
>>720189
Че не так? Логично же. Так эффективно по памяти.
#257 #720203
>>720187
зашел в тред попросить помощи - послали учить другой язык и забить на си. Двач такой двач
>>720208
#258 #720208
>>720203

>соске не хватает фундаментальных знаний, чтобы осилить документацию


>соска жалуется на то, что отправляют учить основы, вместо того, чтобы давать ситуативные макако-ответы


Мда...
#259 #720219
Хочу тут ваш язык начать изучать. Что скажете о липпмане?
>>720221
#260 #720220
>>720153
Твоя программа http://ideone.com/uAQpLz обсирается на данном примере:
12
6
14
88
100
8
35
145
4
59
2
84
666
6
>>720238
#261 #720221
>>720219
Ок, я обосрался это было в шапке, извиняюсь
#262 #720226
>>720160

> Тут бля вопрос элементарный


Ты хуйню какую-то спросил. Я не думаю что кто-то вообще понял твой вопрос. В плюсах нельзя манипулировать классами как самостоятельными сущностями. Поэтому ты не можешь передать в функцию класс. Есть языки где это действительно возможно, но не в плюсах.
>>720232>>720249
#263 #720228
>>720104
Передавай класс по ссылке, в чём проблема?
#264 #720230
Есть смысл изучать плюсы, если до этого максимум что делал это сапер в делфи?
>>720233
#265 #720232
>>720226
Думаю он пытался спросить про передачу экземпляра класса, но отсылка к питону, все же лучшее решение, чем здесь сидеть и превозмогать шилтда вместе с ним.
#266 #720233
>>720230
Начни с питона лучше.
#267 #720238
>>720220
Ты 13 чисел указываешь
>>720241
#268 #720241
>>720238
А не, подожди, ща исправлю
>>720253
#269 #720249
>>720226
у меня в классе есть матрица и переменные - ее размер. Мне надо передать в функцию не отдельно матрицу и переменные, а полностью класс. Это невозможно?
>>720252>>720254
#270 #720252
>>720249
Тебе уже сказали как это сделать, но ты слепой даун. Выйди из треда.

Скрыл дауна.
>>720255
#271 #720253
>>720256>>720258
#272 #720254
>>720249
Закинь код.
239 Кб, 1959x1959
#273 #720255
>>720252
Как ты его скрыл-то без айдишников, вася?
>>720263
#274 #720256
>>720253
В условных операторах дохуя сложные условия, можно проще написать.
>>720257
#275 #720257
>>720256
Как, покажи.
>>720281
#276 #720258
>>720253
Я все жду когда ж ты уже заметишь, что сумма должна четной быть.
>>720259
#277 #720259
>>720258
Сумма четна когда оба числа имеют одинаковую четность, у меня есть проверка этого
>>720269
#278 #720263
>>720255
Скрыл нахуй пост и не парюсь, чо ты.
#279 #720269
>>720259
upd.
Надо скобки добавить в этой строчке
if (num < m01 || num < m02 && num%2==0)
на
if ((num < m01 || num < m02) && num%2==0)
#280 #720281
>>720257
Например, при сохранении твоей структуры программы, ты можешь договориться что одно из двух чисел где ты хранишь минимумы должно быть всегда больше. Тогда в первом сравнении проверяешь четность, во втором сравнении сравниваешь с большим числом, если меньше то перезаписываешь большее число, а потом третим сравнением восстанавливаешь инвариант - проверяешь два числа (которые хранишь), и если нужно меняешь местами, чтобы большее число всегда было большим.
Или можно как-то так сделать https://ideone.com/5KiTT8
>>720285
#281 #720285
>>720281
Сук, я тупорылый, спасибо
#282 #720393
>>717390
Есть такой кодес: http://pastebin.com/GUaQqdsu

Правильно ли я дополняю вектор нулями, если, например, из вектора (2, 1) в результате дополнения надо получить (2, 1, 0, 0)? Результат свёртки верный, но при вычислениях в конечных полях могут получаться совпадения.
>>720397
#283 #720397
>>720393
Алсо, правильно ли передавать в convolution векторы по значению, а не по ссылке? Мне нужно, чтобы входные векторы были иммутабельными.
>>720433
#284 #720420
>>716545
Там ОП в жалобы ломится небось.
>>720460
#285 #720433
>>720397
Всё, что по размеру больше указателя, желательно передавать по ссылке, желательно константной. Ну или использовать move семантику, опять же, при возможности и если это соответствует ситуации.
#286 #720460
>>720420

>в жалобы ломится


Это чтобы доложить о перекате и что моче пора шапку добавлять.
#287 #720791
>>714898 (OP)
А пулл реквесты для шапки треда со стороны принимаются или нет?
>>721342
#288 #720802
планирую перекат из джавы в сабж
плюсы, минусы, подводные камни?
#289 #720805
>>720802
денег не будет - 0
>>720811
#290 #720808
>>720802
затрах уровня /dev/videoX -- 2
>>720822
#291 #720810
>>720802
есть куча способов прострелить ногу себе -- 1
#292 #720811
>>720805
не поверишь именно из-за этого и планирую
внезапно у большинства крутых фирм востребованы ток плюсы
>>720876>>721019
#293 #720819
>>720802

> плюсы


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

> минусы


Плюсы нужны только вместе со специфическими знаниями из области применения разрабатываемого софта.
Можно выстрелить себе в ногу в абсолютно пустой, круглой комнате.
#294 #720822
>>720808
искупил ли он свой ламеризм или ещё каяться надо?
>>720873
#295 #720873
>>720822
да, искупил ли я ламеризм или каяться? каюсь
#296 #720876
>>720811
я о /dev/vi.. отсутствии стажа
#297 #720973
Можете пояснить для чего нужны ссылки?
#298 #720978
>>720973
ru.wikipedia.org/wiki/Ссылка_(программирование)
Ссылка в программировании — это объект, указывающий на определенные данные, но не хранящий их.
передача в функцию массива например. зачем елозить весь?
или скинуть как параметр функции класс и как-то его менять там как захочешь, а не копировать и обратно скинуть
aноны.. я тоже умею гуглить за анона-школьника, прощайте уже за /dev/videoХ
>>721476
#299 #720991
Там микрософт раздает полугодовую подписку на pluralsight.com никто их курсы по крестам не проходил? Стоит на них время тратить?
>>720993>>721343
#300 #720993
>>720991
Зачем курс, если есть книги?
>>721004
#301 #721004
>>720993
Тоже верно.
105 Кб, 603x324
#302 #721005
>>721021
#303 #721019
>>720811

>внезапно у большинства крутых фирм востребованы ток плюсы


>


линк на крутые фирмы
#304 #721021
>>721005
здоровый сука
#305 #721028
Не гоните ссаными тряпками, поясните чем обращение к значению отличается от обращения к адресу?
>>721035
#306 #721035
>>721028
Ты наверное имеешь в виду, передача аргументов функции по значению и по ссылке. Если значение передается по значению, то копируется его значение, откуда и такое название. Следовательно, внутри функции своя копия данной переменной и если ты изменяешь ее внутри функции, наружу изменения не попадают. Передача по ссылке передает в функцию не копию, а саму переменную, размещенную по определенному адресу в памяти. Следовательно ты сможешь менять значение этой переменной прямо в функции и изменения вылезут наружу.
#307 #721105
А почему в шапке нет Core Guidelines? Аноны решили что они говно?
>>721139
#308 #721110
>>720973
Сначала размудим терминологию: есть указатели, и есть ссылки. (разницу сам гугли, шкальник)
Ссылки нужны там же, где и указатели, просто они безопаснее. /t
>>721117>>721474
#309 #721117
>>721110

> шкальник


Это плохо?
#310 #721139
>>721105
Еще небыло РЕЛИЗА.
#311 #721342
>>720791
По сути сейчас мод этим заведует. Но раньше мы всегда принимали нормальные предложения по модификации шапки кроме Дейтелов агагагагаг, так что вряд ли ты встретишь копротивление.
>>721386
#312 #721343
>>720991
Тю, она и так бесплатная по Dreamspark же. Алсо, если кто из анонов трогал pluralsight, поделитесь впечатлениями, будьте няшами. Я не уверен, стоит ли тратить время на них.
#313 #721354
Кто-нибудь пишет на крестах на линуксе?
Как на нём создать исполняемый файл и апустить его?
#314 #721359
>>721354
man gcc
#315 #721382
>>721354
Опишу простой случай, когда у тебя один файл с исходным кодом и функцией main в ней:
g++ <имя файла с исходным кодом> -o <имя запускаемого файла>
>>721383>>721465
#316 #721383
>>721382
Я уже загуглил, но всё равно спасибо.
>>721387
#317 #721386
>>721342
Ага. Понял. Спасибо за ответ :).
#318 #721387
>>721354
>>721383
Давайте таких тоже нахуй посылать. Только придумайте им название.
>>721461
#319 #721461
>>721387

> Только придумайте им название.


Пердолики))00
#320 #721465
>>721382

> g++ <имя файла с исходным кодом> -o <имя запускаемого файла>


АААААА СЛОЖНААААА!!!!

Просто ведь:
make <имя файла с исходным кодом, без расширения>
>>721491>>721601
#321 #721474
>>721110

>Ссылки нужны там же, где и указатели


Ссылки нужны там же, где и значения
на самом деле не так и не так
#322 #721476
>>720978

>передача в функцию массива например. зачем елозить весь?


Тут ссылки не при чём, массивы распадаются до указателей ещё со времён C.
>>721497
#323 #721477
Кто-нибудь костылировал на Qt3D? Есть ли рабочие семплы QLookAtTransform?
#325 #721491
>>721465
А Makefile ты написал, лолка?
#326 #721492
>>721491
Нет, а зачем, лолка?
>>721496
#327 #721496
>>721492
Ах, прости, не знал про implicit rules.
#328 #721497
>>721476
не вспоминаю про эти ебаные С-массивы уже года 4. Прям с того момента, когда с этой ебатой познакомился.
#329 #721498
>>721491
Тебя-то я и ждал, кстати.
#330 #721601
>>721465

>make <имя файла с исходным кодом, без расширения>


Вводить конечно проще, но не понятно, что за этим стоит, если не знаешь как работают implicit rules
#331 #721629
>>721491
#Copyright (c) 2016, /dev/videoX простите меня уже
#All rights reserved.
#
#Redistribution and use in source and binary forms, with or without
#modification, are permitted provided that the following conditions are met:
#
# Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
#
#
Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.

#* Neither the name of oilwater nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.

# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

CXX = clang gcc-48 или что там у тебя
OBJS = main.o etc..

CFLAGS =
LDFLAGS =

LIBS =

TARGET =my_cancer_programm_kokoko

$(TARGET):$(OBJS)
$(CXX) $(OBJS) $(CFLAGS) $(LDFLAGS) $(LIBS) -o $(TARGET)

all:$(TARGET)

clean:
rm $(OBJS)
#331 #721629
>>721491
#Copyright (c) 2016, /dev/videoX простите меня уже
#All rights reserved.
#
#Redistribution and use in source and binary forms, with or without
#modification, are permitted provided that the following conditions are met:
#
# Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
#
#
Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.

#* Neither the name of oilwater nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.

# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

CXX = clang gcc-48 или что там у тебя
OBJS = main.o etc..

CFLAGS =
LDFLAGS =

LIBS =

TARGET =my_cancer_programm_kokoko

$(TARGET):$(OBJS)
$(CXX) $(OBJS) $(CFLAGS) $(LDFLAGS) $(LIBS) -o $(TARGET)

all:$(TARGET)

clean:
rm $(OBJS)
#332 #721680
спасибо, модер
70 Кб, 1362x717
27 Кб, 1343x259
CLion end of file #333 #721749
Я понимаю, что вопрос охуительный конечно, но у меня проблема -- не могу послать EOF встроенной консольке в CLion. Есть вот такой код: http://ideone.com/bWCnHZ
При компиляции через g++ руками все работает нормально, на ideone тоже, а вот во встроенном окошке в иде нихуя, пикрелейтед. Ctrl-D просто останавливает программу и все.
>>721788
#334 #721788
>>721749
Кек.
>>721789
#335 #721789
>>721788

Ну да, я тупой.
>>721790
#336 #721790
>>721789
Да не, ты не один с такой проблемой.
Видимо, в clion не послать EOF neekaque
>>721792
#337 #721792
>>721790

Может им в багтрекер написать? Я искал подобное у них там, вроде нет.
Но я тащемта действительно тупой и не смогу нормально описать, в чем проблема, если кто-нибудь сделает это за меня-ленивого, буду благодарен. Пока буду из файла читать, раз уж так.
>>721796
#338 #721796
>>721792

>Пока буду из файла читать, раз уж так.


Поставь проверку и выходи из цикла, если введена например 'Q'.
#339 #721817
Поясните, а чем нейросети кардинально отличаются от дженерик процессоров, что на них легче ии делать? Я не совсем понимаю...
>>721884
#340 #721884
>>721817

>дженерик процессор


Что ты имеешь ввиду?
>>721889
#341 #721888
Изучаю тут спп по книге липпмана, дошел до указателей, и что то сложно, может есть где то более понятное обхяснение темы?
>>721890
#342 #721889
>>721884
Может я что-то не понимаю, но нейросети заменяют процессоры в рассчитывании ИИ, так?
>>721907
#343 #721890
>>721888
Асм.
>>721937
#344 #721907
>>721889
Нет. Нейросеть (в современном воплощении) это алгоритм который просчитывается на процессоре. Нейросеть может быть реализована апаратно (как и любой другой алгоритм) - но тут профит в эффективности (процессор универсальное устройство менее эффективен чем специализированая схема), а не в кардинальных отличиях коих нет.
#345 #721937
>>721890
Что прости?
>>721945
#346 #721945
>>721937
ass embler
>>721953
#347 #721953
>>721945
И какое это имеет отношение к моему вопросу?
>>721956
#348 #721956
>>721953
Ну может поймёшь укозатели.
#349 #721987
Долго тред плавает. Что с ним?
>>722029
#350 #722029
>>721987
Пора лаб закончилась.
#351 #722067
Есть какой-то софт для упрощения процесса поиска утечек памяти?
>>722069>>722760
#352 #722068
Вот прочитал статью: https://habrahabr.ru/post/282065/
Буду учить С++ и ОПЕНГЛ, стоит того?
#353 #722069
>>722067
Есть.
>>722070
#354 #722070
>>722069
Назовёшь его?
>>722071
#355 #722071
>>722070
valgrind
сам не пользовался
>>722072>>722086
#356 #722072
>>722071
Бля, часто слышал, а вон оно что, оказывается.
Спасибо-спасибо...
>>722077
#357 #722077
>>722072
Статический анализатор шланга вроде тоже умеет потенциальные утечки проявлять.
#358 #722086
>>722071
Двачую этого.
Точнее, valgrind - это куча утилит. В том числе memcheck для поиска утечек.
Ещё там же есть helgrind, для поиска race condition.
Крутая, в общем, штука, рекомендую.
>>722117>>722126
#359 #722093
>>722068
С того момента, как ты начнешь учить плюсы, до того момента, когда ты сможешь сделать что-то адекватное в опенгл, пройдет очень много времени, поверь.
>>722487
#360 #722117
>>722086
Там еще профайлер есть callgrind, обожаю его. Вообще я пользуюсь valgrind чаще, чем отладчиком - для мелких проблем логи помогают, для крупных отладчик уже дает слишком мало информации.
#361 #722126
>>722086
Чем больше учишь программирование - тем больше понимаешь, насколько много еще неизвестной информации и сколько жопочасов нужно, для того чтобы изучить хотя бы то, что в пределах видимости до горизонта.
>>722127
#362 #722127
>>722126
Хотя, так в любой сфере объемной, наверное.
#363 #722159
>>722068
Нахуя? Чтобы делать игрули лучше взять юнити или что-то подобное. Кресты выбирают те, кто точно знает что им от них нужно.
>>722160>>722453
#364 #722160
>>722159
Что-то подобное это UE, там как раз кресты нужны, кстати.
#365 #722449
страус жив? просто везде пишут что он труп
#366 #722453
>>722159
шмунити только на винду, вот почему
>>722555
#367 #722487
>>722068
Не верь ему >>722093
За неделю 2d платформер изи сделаешь
#368 #722555
>>722453

Лолшто?
>>722558
#369 #722558
>>722555
Он, видимо, про разработку. Там венда и ябблоось.
>>722774
#370 #722568
Аноны, не могу понять чем constexpr отличается от const. Объясните
>>722588>>722589
#371 #722588
>>722568
const указывает что переменная не может быть изменена после инициализации. Само значение переменной может вычисляться в любое время, в том числе в рантайме, в том числе исключительно в рантайме (тоесть ов время компиляции его вычислить невозможно). constexpr указывает что значение переменной можно вычислить во время компиляции, и оно будет вычислено если где-то побтребуется компилятору (а может и всегда, хуй знает). В рантайме разницы между ними нет, кроме того что значение constexpr будет с большой вероятностью заинлайнено, а если нет то будет храниться (скорее всего) в статической памяти, а const может быть где угодно.
#372 #722589
>>722568
const - постоянная в рантайме, constexpr - во время компиляции. То есть, constexpr выражения могут быть параметром шаблона, размером массива и т.д.
>>722763
#373 #722644
Почему указатели такие сложные?
>>722648>>722723
#374 #722648
>>722644
Потому, КАРИНОЧКА, что их зачем-то зделоли арифметическим типом данных.
Дальше сама.
#375 #722705
Чем плох учебник Дейтелов?
#376 #722723
>>722644
Указатели простые, это ты туповат.
>>722737>>722758
#377 #722737
>>722723
Двачую этого.
#378 #722758
>>722723
Это постфактум так кажется. Так-то даже Джоэль писал, что в курсе CS101 большинству это сложно.
>>722762
#379 #722760
>>722067
Блядь, в шапке про это подробнейшим образом написано, читай шапку, сука.
#380 #722762
>>722758

>Джоэль


Этот петух использует уродливый UTF16 и гордится этим. Стоит ли его слушать, или лучше усомниться в его адекватности?
>>722766
#381 #722763
>>722589
Инициализированные const тоже могут, лол. Раньше так и писали, когда не было constexpr.
#382 #722766
>>722762
В опыте-то ему не откажешь. Все эти приебнутости типа проповедования венгерской нотации не возникнут у диванного никогда.
76 Кб, 604x530
#383 #722768
Сап, программач. Попытаюсь максимально ясно поставить вопрос.

У меня есть такая конструкция:
template<class TYPE, unsigned int COUNT> class Yoba{};

Как мне в классе Yoba сделать функцию, у которой будет ровно COUNT параметров типа TYPE? Без буста и прочих Qt.
#384 #722770
Грубо говоря, вот когда ты пытаешься вкатиться в функциональную парадигму с рекурсивными схемами вместо циклов, то тебе как минимум какое-то время некомфортно, потому что это совершенно чуждый традиционному подход. А в то же время понять эту ебалу, принципиально понимая суть рекурсии, гораздо проще, чем разобраться в указателях, стеке и прочих кажущихся очевидными идеях тому, кто вообще про это не слышал.
>>722777
#385 #722773
>>722768
Обострение?
>>722782
#386 #722774
>>722558
да и на /dev/vi.. FreeBSD не особо играбильна
#387 #722775
>>722768
Разноименных - никак. Точнее, можно сделать костыль на макросах, но тогда ты получишь уже не инстанс шаблона, а макрогенерируемый класс, в котором как будто вручную вбиты все эти имена членов. Еще можно сделать как в std::tuple, когда у тебя есть одна копия параметра и еще один Yoba с COUNT-1 внутри. Одноименных - элементарно через std::array <TYPE, COUNT> my_mommas; или аналогично через TYPE my_mommas [COUNT]; если любишь сишные массивы.
>>722782
#388 #722777
>>722770
Хвостовая рекурсия - это старый подход который называется goto. И он не "чужд традиционному", а просто черезжопный.
>>722779
#389 #722779
>>722777
Я не про хвостовую рекурсию же, а глобально. Анаморфизмы, параморфизмы, катаморфизмы, хиломорфизмы, наконец.
>>722837
#390 #722780
>>722768
А обычную вариативную функцию не?
>>722782
#391 #722782
>>722780
И через static_assert давать пизды за неправильное количество аргументов?

>>722775
А передавать их потом как? Через вот такие {} скобки?

>>722773
Упорол кислоты и наполнился охуительными идеями, которые сейчас реализовываю.
#392 #722795
>>722768
Вариадик темплейтом. И статик ассертом проверять количество аргументов.
>>722797
#393 #722797
>>722795
А как это сделать для лямбда-выражений?
Ну, то есть я передаю лямбда-функцию в конструктор, и она должна удовлетворять шаблону класса. Например, у неё должно быть 3 элемента с типом double.
>>722825
#394 #722825
>>722831
#395 #722831
>>722825
Да, так я хотел сделать, но потом вспомнил, что мне нужно передавать функцию именно в конструктор. А для конструктора шаблон сделать нельзя.Или можно?
>>722834>>722860
#396 #722834
>>722831
http://cpp.sh/6wie
Можно. Конструктор - тоже функция.
>>722838
#397 #722837
>>722779
Глобально в функциональном программировании использование явной рекурсии считается зашкваром. А не использование (например, in-place quicksort через runST) не считается до тех пор, пока твоя функция чистая с внешней стороны.
#398 #722838
>>722834
Вот это да, лол. Спасибо, анон. Нельзя читать стаковерфлоу по-диагонали и делать из этого такие прочные выводы.
#399 #722860
>>722831

> А для конструктора шаблон сделать нельзя.


http://en.cppreference.com/w/cpp/memory/unique_ptr/unique_ptr (6)-й и (7)-й конструкторы вполне себе шаблонные.
#400 #722864
Подскажите такую вещь:
Надо сделать перебор чисел до заданного значения, и в реализации использовать наследование и полиформизм.
Не могу понять, где тут надо использовать классы?
#401 #722867
>>722864
Задание говно, поэтому наследуй от вектора и перегружай какую-нибудь его функцию с нужным результатом.
>>722968>>722980
24 Кб, 320x301
#402 #722968
>>722867

> наследуй от вектора

#403 #722971
Господа, мне предлагают хуячить новый проект на 2008 студии с помощью MFC. Мне соглашаться? И, так как я пишу на linux и не в теме о MS VS, скажите, на старые студии выпускают обновления компилятора? А то мне страшно.
>>722996
#404 #722980
>>722867

>поэтому наследуй от вектора


Но вроде как не рекомендуют наследовать от stl классов?
#405 #722996
>>722971
Поясняю за положняк.
MSVS 2015 - OCHE HOROSHY IDE
MSVS 2013 - HOROSHY IDE
MSVS 2010 - NORMALNY IDE
MSVS 2008 - PLOHOY STARY IDE
MFC - SOVSE MERTVO GOVNO

>на старые студии выпускают обновления компилятора?


NIET
>>723029
#406 #722998
>>722864
Может способ перебора должен быть разным? Типа от 0 до N, от N до 0, рандомный выбор, и т. п.? Тогда можно запихнуть наследование и полиморфизм.
>>723016
#407 #723002
>>722864
Бля, ну поучись у джавистов, как они делают. Например, делаешь mixin-класс для синглтонов, через CRTP от него наследуешь шаблон объектного пула. Делаешь конкретную фабрику переборщиков, ее наследуешь от абстрактной фабрики переборщиков. В абстрактном интерфейсе фабрики делаешь метод, возвращающий умный указатель на абстрактный интерфейс переборщика. От этого интерфейса наследуешь конкретный класс переборщика и реализуешь в нем метод перебора. Создаешь инстанс шаблона объектного пула, который содержит умные указатели на абстрактные интерфейсы твоих фабрик, при старте программы создаешь и добавляешь в пул конкретную фабрику. Покрываешь все классы тестами, профилируешь, генеришь документацию к каждому методу и классу из комментариев.
>>723017>>723031
#408 #723016
>>722998

>Может способ перебора должен быть разным? Типа от 0 до N, от N до 0, рандомный выбор, и т. п.? Тогда можно запихнуть наследование и полиморфизм


ХЗ.
Вообще задание звучит так: написать брут для мыла. Использовать наследование и полиформизм, stl, raii.
Я нацарапал реализацию циклами для 6, 7 и 8 знаков, а как сделать перебор классами с наследованием не имею понятия.
Можно еще кодировку в base64 запихнуть в отдельный класс, но опять же не понимаю зачем - тем более, что наследовать там нечего и некому.
#409 #723017
>>723002
Двачую этого. Всегда так делаю.
и не лень тебе это было выдумывать, наркоман?
>>723057
#410 #723029
>>722996
Эй, есть тут страдальцы, которые до сих пор пидорят легаси на VS 2008? Поделитесь тем, как это больно, пожалуйста.
>>723452
43 Кб, 1099x635
#412 #723046
Знаю , что получу пиздюлей за доебавший вас вопрос возможно , но не знаю где спросить кроме родного двоща.
смотрите пикрл
При компилировании х86 , все норм.
При компилировании х64 , хуева туча ошибок.
SDK все стоят , гуглоебил ошибку не помогло
что посоветуете? Я НЬЮФАГ В СИШКЕ И НЕ ХОЧУ ЗАБРАСЫВАТЬ , ПРОШУ ПОМОЩИ , РОДНЫЕ.
#413 #723049
>>723046

>При компилировании х86 , все норм.


>При компилировании х64 , хуева туча ошибок


у х86 и х64 разные адреса, может быть из-за этого.
>>723050
#414 #723050
>>723049
Подскажи , как это фиксить? Что читать?
>>723068>>723121
#415 #723053
Двачик, скажи, что изучить по QT? Что лучше читать на Великом и Могучем (Популярный и Простой осилил слабо)
>>723061>>723062
#416 #723057
>>723017
Это таки не выдумка, а реалии проекта, который я пилил год назад. Только там это было более оправданным.
#417 #723058
>>723046
Посмотри настройки компилятора, там скорее всего разные для разных систем. В х64 что-то не подключено, или не правильно подключено.
>>723064
#418 #723059
>>723031
Бля, это охуенно. Схоронил.
#419 #723061
>>723053
Документацию. Лучше ничего нет, поверь.
Ну и плюс у Qt очень богатая база примеров
#420 #723062
>>723053
Шлее, наверное. Хз есть ли годные переводы. Лучше уж заморочиться и читать на инглише.
#421 #723064
>>723058
Я не знаю как это сделать
#422 #723065
>>723046
>>723046
>>723046
Может я попробую дать кому нибудь сурс и попробует скомпилировать в х64 на своем пука?

https://vk.com/id344029047
>>723145
#423 #723068
>>723050
Без понятия.
Пиши под одну систему изначально.
#424 #723121
>>723050
Не слушай его, он херню несет.
Скорее всего, у тебя для компиляции под x86 прописаны пути, а под x64 - нет.
Полазь по настройкам, погугли, как подключать библиотеки, проверь, чтобы всё ок было.
sage #425 #723145
>>723065
Зачем тебе x64, если gta:sa x32? Съеби.
>>723147
#426 #723147
>>723145
Чтобы можно было скушать больше памяти, очевидно же
>>723159
sage #427 #723159
>>723147
Ты как собрался в 32-битный процесс инжектить 64-битную либу?
>>723161
#428 #723161
>>723159
Это не я, это он
#429 #723436
хело посаны, продолжаю читать страуса жопой.
У всех конструкторов возвращается неявно this?
Читаю сейчас про копирующий конструктор, немного не понял этой ситуации.
#430 #723437
>>723436
И в догонку, почему нельзя было сделать так же с присваиванием?
Ну чтобы можно было не делать так:
Class& operator=(const Class& c)
{
// copy
return this;
}
Или меня это ебать не должно?
>>723472
#431 #723450
>>723436
Ссылка же возвращается, если вообще что-то возвращается. Нихуя не понятно что тебя смущает.
>>723456
#432 #723452
>>723029
Пишу на MFC на VS98. Терпимо, к тому же Visual Assist есть
#433 #723456
>>723450
Ну в конструкторах она неявно возвращается, так?
Просто смутило то, что в присвоении это сделано явно, хотя операции похожи. (Создание объекта и присвоение)
#434 #723468
>>723436
Конструктор ничего не возвращает. Он инициализирует объект. Когда ты пишешь Yoba y = Yoba(). Вызываются и конструктор и оператор присваивания (что потом оптимизируется конпелятором).
>>723471
#435 #723471
>>723468
Тихо, погоди, я запутался, смотри:
1.
Class obj1 = new Class(3);
Class obj2 = obj1;

Class(const Class& c)
:param(c.param)
{
// copy
}

2.
Class obj1 = new Class(1), obj2 = new Class(2);
obj1 = obj2;

Class& operator=(const Class& c)
{
// copy
return this;
}

Вот 2 ситуации, первая это копирование при инициализации, а вторая при присваивании одного объекта другому. Я все правильно написал? Может я изначально что-то не понимаю.
>>723474>>723593
#436 #723472
>>723437
В операторе присваивания крайне желательно возвращать ссылку на объект, так как это поведение оператора присваивания для встроеных типов. Так то ты что хочешь можешь возвращать https://ideone.com/33SCsj
>>723501
#437 #723474
>>723471
Да. Поэтому было бы хорошо перейти на синтакс инициализации отличный от синтаксиса присваивания. Тоесть твою вторую строчку было бы прикольно писать как Class obj2 {obj1}; А так получается что '=' может вызвать как конструктор, так и operator= что конечно немного путает.
#438 #723501
>>723472
Ну то есть возвращай this, чтобы было все как у людей.
Я это и хотел узнать, просто думал, что это имеет какое-то четкое объяснение.
#439 #723566
Где этот грамотей, который мне доказывал какая убунта LTS годная и небаженная. Вон, можно наглядно посмотреть, как страдают аналогичные хомячки: https://habrahabr.ru/post/282197/
>>723573>>723582
sage #440 #723573
>>723566
Проследуйте в /s/
#441 #723581
Лучшее ide?
#442 #723582
>>723566
А нахуя переходить на 16.04 (т.е. апрель 16 года) в апреле 16 года? Полгода подожди, а пока на 14.04 посиди.
#443 #723586
Начал изучать c++11 по книге, но узнал, что есть 14 версия, там много изменено?
>>723594>>723606
#444 #723593
>>723471

>Вот 2 ситуации, первая это копирование при инициализации, а вторая при присваивании одного объекта другому


У тебя везде присваивание. Копирующий конструктор вызывается при Class c( other_c ) или new( other_c ). Перемещающий конструктор, соответственно при Class c( move( other_c ) ).
>>723604
#445 #723594
>>723586

>там много изменено?


Немного, косметика - например, constexpr улучшили. Все глобальные изменения в 11.
>>723674
#446 #723604
>>723593

> У тебя везде присваивание


Нет. Foo bar = baz; это вызов конструктора.
http://ideone.com/0GM0hS
#447 #723606
>>723586
Много. Лямбды стали юзабельными, например.
#448 #723674
>>723594
Что там с constexpr?
>>723730
16 Кб, 300x291
15 Кб, 291x300
16 Кб, 300x291
15 Кб, 291x300
#449 #723683
ЫАААААААААААААААААААААААААА БЛДЯЯЯЯЯЯЯЯЯЯДЬ!!!
Ебаные шаблоны! Сука, как горит моя жопа, пиздец!
Дело в том, что мне нужно запилить метод, который будет принимать только N переменных определённого типа. Без костылей в виде is_any как тут: http://cpp.sh/6wie
И как собрать лямбда-функцию по шаблону, если в шаблон я посылаю только тип параметра и его количество? Ну просто скоро крышей поеду, если не разберусь. Неужели для такого простого результата нужно городить тонны кода и прочих is_any? Или подключать boost? Хочу на чистом стандарте, без костылей и сторонних библиотек.

template <class T, unsigned int N> class Yoba
{
private:
std::function<T(T...??????)> function;
public:
template<class... Args> Yoba(const std::function<T(Args...)> &function) : function(function)
{
static_assert(sizeof...(K) == N, "blyad, ty ohooel?");
}
};

int main()
{
Yoba<double, 4> yoba([](int a, int b, int c, int d){ return a + b + c + d; });
return 0;
}
#450 #723684
>>723683
Так горит, что не заметил несоответствия типов в конце. Но это ничего, пусть там будет Yoba<int, 4>
>>723710
#451 #723710
>>723684
Алсо, можно через initializer_list, но неужели он работает по принципу таких же костылей?
#452 #723729
>>723683

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


А ты можешь объяснить, зачем это нужно?
Ну ок, представим (т.к. это невозможно), что ты шаблонами смог генерировать методы с конкретным числом аргументов.

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

В чём ты хочешь получить преимущество?
>>723736>>723739
#453 #723730
>>723674
Можно их теперь в несколько строчек писать, использовать for, if.
#454 #723734
>>723683
is_any нужен только для проверки типа, можешь его убрать. И это не костыль, а обычное метапрограммирование. Если связался с шаблонами, то такого рода приключений будет очень много.
>>723735
#455 #723735
>>723734

> можешь его убрать. И это не костыль


А что это тогда, если без него у меня компиляция будет проходить не так, как я хочу? Почему тут нет какого-нибудь std::generate_types(int, 10)?
>>723741>>723791
#456 #723736
>>723729
Так всё будет выглядеть правильнее, чем если бы у меня принимались любые аргументы.
#457 #723739
>>723729

> В чём ты хочешь получить преимущество?


Не преимущество, а возможность иметь член класса в виде лямбда-функции, которая принимала бы шаблонные аргументы.
#458 #723741
>>723735
<int, 10> кончено же, опечатка.
#459 #723748
>>723683
Напиши конечный use case, продемонстрируй наглядно, че ты вообще хочешь.
>>723769
#460 #723749
>>723683

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


Походу тебе массив нужен. А вообще от копипасты ты не треснешь.
>>723769
#461 #723754
>>723683
Решение твоей проблемы есть, но там нужно ебаться с метапрограммированием по типу строения tuple. Я, в принципе, могу набросать, как оно выглядит, но не лучше ли юзать вместо кучи параметров один массив нужной длины? Для однотипных величин сам б-г велел - оверхеда даже меньше из-за отсутствия выравнивания, компилится быстрее.
>>723769
#462 #723769
>>723749
Не тресну, но мой код должен быть легкочитаемым, и чтобы я мог при желании легко его воспроизвести без копипасты.

>>723748
Хочу запилить класс, который будет максимизировать значение моей лямбда-функции. У неё N аргументов типа T, этого должно быть достаточно для её описания.

>>723754
Да, я уже решил делать через массивы. Но как-то неожиданно, что я столкнулся с такой масштабной проблемой, которую изначально даже не видел. Алсо, массивы немного неудобные. Вместо доступа к аргументам функции мне придётся обращаться к элементам массива, у которых вместо исчерпывающего названия будет только номер. Можно с enum'ами и map'ами поебаться, но это всё не то.
>>723789
#463 #723789
>>723769
Ты занимаешься какой-то хуйней. Намного проще заранее расписать все варианты с N, потому что их будет мало. А ты тратишь столько времени, чтобы решить это средствами метапрограммирования.
>>723796
#464 #723791
>>723735

>Почему тут нет какого-нибудь std::generate_types(int, 10)


Возьми и сам напиши. Один раз помучаешься, зато потом в подобном коде будешь разбираться.
>>723796
#465 #723796
>>723791
Но ведь не получится.

>>723789
А если у меня функция от 100 аргументов? Все 100 расписывать? Понимаю, что лучше такие объёмы в массивах перемещать, но хотелось бы универсальность.
>>723800>>723914
#466 #723800
>>723796

>Понимаю, что лучше такие объёмы в массивах перемещать, но хотелось бы универсальность.



Вот в этом твоя ошибка. Если ты передаешь больше 5 параметров одного типа, то где-то у тебя закралась логическая ошибка. Эта универсальность нахуй не сдалась.
>>723803
#467 #723803
>>723800
В конце концов, это можно написать на макросах. И поверь, в этом случае читабельность кода и ошибок будет гораздо выше, чем у решения на шаблонах.
>>723817
#468 #723817
>>723803
Да, я пересмотрел свои взгляды. Спасибо, что помогли. Делаю массивами и не выёбываюсь.
>>723824
41 Кб, 600x600
#469 #723824
>>723817
Но не боись, анон спасет отца русской демократии: http://ideone.com/n0h0Cb
#470 #723836
>>723824
Это, кажется, старая фишка. Можно её запилить, но зачем? Они не помогут сделать лямбда-функцию с числом аргументов, зависящем от шаблона. Да и не нужно это, массивы действительно выручают.
http://www.boost.org/doc/libs/master/boost/bind/bind.hpp #472 #723916
result_type operator()()
{
list0 a;
return l_( type<result_type>(), f_, a, 0 );
}

result_type operator()() const
{
list0 a;
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1> result_type operator()( A1 && a1 )
{
rrlist1< A1 > a( a1 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1> result_type operator()( A1 && a1 ) const
{
rrlist1< A1 > a( a1 );
return l_(type<result_type>(), f_, a, 0);
}

template<class A1, class A2> result_type operator()( A1 && a1, A2 && a2 )
{
rrlist2< A1, A2 > a( a1, a2 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2> result_type operator()( A1 && a1, A2 && a2 ) const
{
rrlist2< A1, A2 > a( a1, a2 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3> result_type operator()( A1 && a1, A2 && a2, A3 && a3 )
{
rrlist3< A1, A2, A3 > a( a1, a2, a3 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3> result_type operator()( A1 && a1, A2 && a2, A3 && a3 ) const
{
rrlist3< A1, A2, A3 > a( a1, a2, a3 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4 )
{
rrlist4< A1, A2, A3, A4 > a( a1, a2, a3, a4 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4 ) const
{
rrlist4< A1, A2, A3, A4 > a( a1, a2, a3, a4 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 )
{
rrlist5< A1, A2, A3, A4, A5 > a( a1, a2, a3, a4, a5 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 ) const
{
rrlist5< A1, A2, A3, A4, A5 > a( a1, a2, a3, a4, a5 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 )
{
rrlist6< A1, A2, A3, A4, A5, A6 > a( a1, a2, a3, a4, a5, a6 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 ) const
{
rrlist6< A1, A2, A3, A4, A5, A6 > a( a1, a2, a3, a4, a5, a6 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7 )
{
rrlist7< A1, A2, A3, A4, A5, A6, A7 > a( a1, a2, a3, a4, a5, a6, a7 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7 ) const
{
rrlist7< A1, A2, A3, A4, A5, A6, A7 > a( a1, a2, a3, a4, a5, a6, a7 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8 )
{
rrlist8< A1, A2, A3, A4, A5, A6, A7, A8 > a( a1, a2, a3, a4, a5, a6, a7, a8 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8 ) const
{
rrlist8< A1, A2, A3, A4, A5, A6, A7, A8 > a( a1, a2, a3, a4, a5, a6, a7, a8 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8, A9 && a9 )
{
rrlist9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > a( a1, a2, a3, a4, a5, a6, a7, a8, a9 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8, A9 && a9 ) const
{
rrlist9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > a( a1, a2, a3, a4, a5, a6, a7, a8, a9 );
return l_( type<result_type>(), f_, a, 0 );
}

//
http://www.boost.org/doc/libs/master/boost/bind/bind.hpp #472 #723916
result_type operator()()
{
list0 a;
return l_( type<result_type>(), f_, a, 0 );
}

result_type operator()() const
{
list0 a;
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1> result_type operator()( A1 && a1 )
{
rrlist1< A1 > a( a1 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1> result_type operator()( A1 && a1 ) const
{
rrlist1< A1 > a( a1 );
return l_(type<result_type>(), f_, a, 0);
}

template<class A1, class A2> result_type operator()( A1 && a1, A2 && a2 )
{
rrlist2< A1, A2 > a( a1, a2 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2> result_type operator()( A1 && a1, A2 && a2 ) const
{
rrlist2< A1, A2 > a( a1, a2 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3> result_type operator()( A1 && a1, A2 && a2, A3 && a3 )
{
rrlist3< A1, A2, A3 > a( a1, a2, a3 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3> result_type operator()( A1 && a1, A2 && a2, A3 && a3 ) const
{
rrlist3< A1, A2, A3 > a( a1, a2, a3 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4 )
{
rrlist4< A1, A2, A3, A4 > a( a1, a2, a3, a4 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4 ) const
{
rrlist4< A1, A2, A3, A4 > a( a1, a2, a3, a4 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 )
{
rrlist5< A1, A2, A3, A4, A5 > a( a1, a2, a3, a4, a5 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 ) const
{
rrlist5< A1, A2, A3, A4, A5 > a( a1, a2, a3, a4, a5 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 )
{
rrlist6< A1, A2, A3, A4, A5, A6 > a( a1, a2, a3, a4, a5, a6 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 ) const
{
rrlist6< A1, A2, A3, A4, A5, A6 > a( a1, a2, a3, a4, a5, a6 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7 )
{
rrlist7< A1, A2, A3, A4, A5, A6, A7 > a( a1, a2, a3, a4, a5, a6, a7 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7 ) const
{
rrlist7< A1, A2, A3, A4, A5, A6, A7 > a( a1, a2, a3, a4, a5, a6, a7 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8 )
{
rrlist8< A1, A2, A3, A4, A5, A6, A7, A8 > a( a1, a2, a3, a4, a5, a6, a7, a8 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8 ) const
{
rrlist8< A1, A2, A3, A4, A5, A6, A7, A8 > a( a1, a2, a3, a4, a5, a6, a7, a8 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8, A9 && a9 )
{
rrlist9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > a( a1, a2, a3, a4, a5, a6, a7, a8, a9 );
return l_( type<result_type>(), f_, a, 0 );
}

template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8, A9 && a9 ) const
{
rrlist9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > a( a1, a2, a3, a4, a5, a6, a7, a8, a9 );
return l_( type<result_type>(), f_, a, 0 );
}

//
>>723920>>724091
#473 #723920
>>723916
Ну и да, с C++11 можно >>723824 , но лично для меня все эти рекурсивные йобы гораздо менее читаемые. И так даже в хаскеле делают.
#474 #723928
>>723824
sizeof...(args) же есть, Йоба Иссарионович.
>>724084
#475 #723940
>>723824
Ну нет, если уж нырять в мету, все должно быть ммаксимум обобщенным и идеальным, иначе весь смысл ебли теряется. А у тебя типы не чекаются на приводимость из T.
#476 #723954
>>723824
Проблема в том, что надо не убирать параметры из списка на каждой итерации, а добавлять. Когда убираешь все просто - при нуле у тебя пустой список, а когда добавляешь, тебе надо хранить и тип и количество аргументов.
>>723970
#477 #723970
>>723954
Поясню: задача в том, чтобы nargs<3, int>::type возвращало void(int,int,int)
>>724084
41 Кб, 600x600
#478 #724084
>>723928
>>723970
И все же, анон сказал, что спасет, значит спасет.
http://ideone.com/qdYyn9

Ориджинал контент, так сказать.
#479 #724090
>>724084
Пиздец. Вот это сильно.
#480 #724091
>>723916
Нихуя не понял. Пошли они нахуй, эти шаблоны. Я теперь их неосознанно боюсь.
>>724095
#481 #724095
>>724091
Ебать ты нюфаня.
#482 #724098
>>724084
Оказалось, что защита от рекурсии не нужна. Компилятор вычисляет next только при обращении к нему.
#483 #724131
>>724084
Ты крут. Так же хотел сделать, но уже пива выпил, и думать не мог.
>>724136
#484 #724136
>>724131
Можешь нанять меня. А то сижу без работы, блеать.
>>724169
#485 #724169
>>724136
Давайте запилим стартап с шаблонами и метапрограммированием же. Как минимум джва ценителя в треде есть. Хотя я бы таки вместо костыльного генератора сделал через тупл и index_sequence, как белый человек.
>>724187
#486 #724187
>>724169
Не, рили. Жрать нечего, работать хочу. Хуй го знает, может в твоей конторе есть вакансия и ты меня порекомендовал бы.
>>724346
#487 #724346
>>724187
Какой город?
>>724350
#488 #724350
>>724346

>Какой город?


Воронеж. Могу удаленно
>>724493
#489 #724477
Анон, а что лучше начинать писать нюфаку первым проектом? На всех прочих языках пишут борды, а на крестах что?
#490 #724479
>>724477
Напиши gui-фреймверк, http-сервер, простую виртуальную машину.
>>724859
#491 #724493
>>724350
Тогда сорри. С embedded удаленно не поработаешь.
#492 #724506
>>724477
Компилятор. Ничто не погружает так в язык, как написание компилятора.
>>724859
#493 #724512
>>724477
Тоже борды. Даже эта борда написана на крестах. А проще всего начинать с написания мелких либ, которым не смог найти аналогов. Отличное отношение полезности к усилиям, можно дохуя звезд на гитхабе словить.
>>724521>>724578
#494 #724521
>>724512

>Даже эта борда написана на крестах


Хуйню сказал.
>>724535
#495 #724531
Есть vector <vector <pair<int, int> > > g1;
где-то далеко в этот вектор мне нужно считать данные из файла (если число - пара (1, число), если ноль - пара (0,0)).

Как это сделать не особо поебав себе голову? через push_back, make_pair - ругается
>>724534>>724539
#496 #724534
>>724531
Ну раз ругается, может тебе просто нахуй пройти с таким оформлением вопросов?
>>724537
#497 #724535
>>724521
В d были пруфы.
#498 #724537
>>724534
Что именно непонятно? Есть вектор векторов. Каждый элемент - пара чисел типа инт.
Имеется файл, в котором всякие числа, нужно считать их в этот вектор с условием:
если число не равно нулю, то считываем в пару 1, число
если число равно нулю, то считываем 0, 0

т.е. пара чисел это: (1 или 0, само число)
>>724540
#499 #724539
>>724531
vector <vector <pair<int, int> > > g1;
g1.push_back(vector< pair<int, int> >());
g1[0].push_back(make_pair(10, 10));
cout << g1[0][0].first << g1[0][0].second;

Но вообще это сильно смахивает на быдлокод. Почти наверняка можно отрефакторить, чтобы это не выглядело так убого.
#500 #724540
>>724537
"Ой, мальчик, подойди сюда, у меня тут ошибка высветилась" - это для бухгалтеров, а не программистов. "через push_back, make_pair - ругается" - даун ебаный.
#501 #724578
>>724512

> 2016


> писать либы

#502 #724610
Посоны, в память запало, что нужно избегать такой хуйни:
(cond? a : b) = 3;

Но не могу вспомнить почему. Подскажите.
#503 #724859
>>724479
>>724506

Действительно, очень просто, самое то для ньюфага.
>>724961>>725202
#504 #724961
>>724859
простой компилятор или виртуальную машину довольно легко написать
А что ты хотел, чтобы тебе советовали калькулятор писать?
#505 #725202
>>724859
Чувак, если ты хочешь написать проект, _чтобы выучить язык_ - то это подразумевает большой и сложный проект, который позволит тебе осознать не только синтаксис, но и особенности языка.
Если тебе нужен не проект, а какая-то мелкая залупа, то этой мелкой залупы нужно в десятки раз больше. В таком случае пиздуй читать PPP от страуструпа. Там как раз практикуется подход куча заданий -> скилл.
34 Кб, 365x311
38 Кб, 344x333
#506 #725224
Ребят, как получить нормальный i+1 элемент в векторе чаров?
На 1-ом пике все норм, на 2-ом все хуево
>>725413
32 Кб, 604x340
#507 #725229
В задании у Страуса сказано, чтобы я узнал о списках с пропуском и реализовать их.
Прочитал что да как, сразу и не понятно все. Например, он должен быть (список) изначально отсортирован, а я и этого не умею.
Это тонкий реквест от дяди Страуструпа, чтобы я пошел читать книгу по алгоритмам и вернулся через год выполнять эту задачу? (или это не все так сложно, как кажется на первый взгляд?)
>>725323
#508 #725323
>>725229

>Это тонкий реквест от дяди Страуструпа, чтобы я пошел читать книгу по алгоритмам и вернулся через год выполнять эту задачу


Кокой ты догадливый. Пиздуй учить алгоритмы и структуры данных.
#509 #725329
Есть корректно работающий в одном цппшнике код, с обьявлением и инициализацией глобальных переменных.
Когда я пытаюсь забрать часть функций вместе с глобальными переменными которые они требуют в другой класс, компилятор начинает говорить: error LNK2005: "char * pBuf" (?pBuf@@3PADA) already defined in Class.obj

И такой текст на все переменные, несмотря на то что они в единственном экземпляре.
Что с этим можно сделать?
>>725334>>725340
#510 #725334
>>725329
include guards
а так хуй его знает, мы тебе без кода ванговать не будем да и с кодом тоже :3
#511 #725340
>>725329
Как будто из сорца или хедера не выпилил объявление.
>>725341
#512 #725341
>>725340

>Как будто из сорца или хедера не выпилил объявление


Но я их и обьявлял в хидере, так нельзя делать?
>>725345>>725346
#513 #725345
>>725341
молодец. Иди читай про процесс компиляции и компоновки. А так же про формат исполняемых файлов.
>>725349>>725351
#514 #725346
>>725341
Смотри сюда. Хедер это только декларация чего-нибудь от переменной до интерфейса класса, и этого недостаточно чтобы определеить глобальную переменную. Сами же переменные ассоциируются с сорцами и поэтому их определение содержится как раз в сорцах, которые и компилируется в *.obj файлы. Чаще всего подобная ошибка возникает при множественной декларации в хедерах или множественном определениии в сорцах. Поэтому либо ты пиздишь, либо Ctrl+F по всем сорцам.

Алсо, что за нахуй?
>>725347>>725350
#515 #725347
>>725346

> Алсо, что за нахуй?


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


Проебал.
#517 #725350
>>725346
да расслабься, он в хедер положил определение переменной.
>>725357
#518 #725351
>>725345

>Иди читай про процесс компиляции и компоновки. А так же про формат исполняемых файлов


А вкратце можно, что где обьявлять и где инициализировать чтоб работало?
Я бы почитал, но времени 2 дня осталось, а мне надо весь проект под ооп успеть переделать.
>>725352
#519 #725352
>>725351
лабы, курсовые и дипломы идут нахуй. Надо было раньше думать.

в хедер нельзя помещать определение переменной. Посколько объявление без инициализации все равно будет определением, нужно в объявлении указать extern
>>725356
#520 #725356
>>725352

>Надо было раньше думать


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

>нужно в объявлении указать extern


Спс, сейчас попробую
>>725375
#521 #725357
>>725350
Заёбывает, что отдельные личности не отличают декларацию от определения, аутентификацию от авторизации, etc.
>>725363
#522 #725360
>>725349
Ни разу не видел статических функций. Эту сторону языка используют где-нибудь осознанно?
>>725559
#523 #725363
>>725357
Оно довольно редко нужно. Плюс, сейчас это модно делать с помощью анонимных неймспейсов.
#524 #725375
>>725356
Попробовал. опять на то-то ругается.
Короче, использовать глобальные переменные в классах хреновая идея, да?
Лучше создать еще один класс, в котором будут храниться все необходимые переменные?
>>725391
#525 #725391
#526 #725410
Как задать свою функцию для priority_queue?
>>725422
#527 #725413
>>725224
for (int i = 0; i < charV.size() - 1; ++i)
cout << charV << " " << charV[i + 1];

Алсо, с такими вопросами иди нахуй.
#528 #725422
>>725410
Конкретизируй
>>725427
#529 #725427
>>725422
По умолчанию там сортирует по возрастанию. А мне надо, чтобы сортировалось по другому признаку.
Если конкретно, то d[v1]<d[v2], где d -- глобальная переменная.
При сортировке массива например свою функцию пихаешь третьим параметром. sort(&a[0], &a[n], sort_f). А как тут так же сделать?
>>725434
#530 #725434
>>725427
Первая ссылка в гугле по запросу priority_queue comparator:
http://stackoverflow.com/questions/16111337/declaring-a-priority-queue-in-c-with-a-custom-comparator

В гуголе забанили?
#531 #725559
>>725360
Это осталось со старых времен. В С (нормальные люди) используют широко. Публичный интерфейс (функции которые должны быть доступны в других частях программы, и задекларированы в хедере) объявлены нестатическими, все остальные функции считаются приватным интерфейсом, должны быть доступны только в пределах юнита (трансляции) и должны быть объявлены как статические. В плюсах, если держаться ООП подхода, в таком нет необходимости - функции раскиданы по классам и если нужно объявлены как private. Вообще на работу программы объявление функции статической никак не влияет, только на линковку. Тоесть прямой необходимости объявлять функции статическими нет, это вопрос стиля программирования.
#532 #725626
Бля посоны какого хуя sizeof(float) == 4 и при этом возможно:
float var = 1e37; ???
При этом 10^37 занимает 63 бита. При этом это число хранится в мантиссе, т.е. весь float занимает минимум 63+8 = 71 байт.

У меня есть подозрение, что обычный float - это тот самый 80-битный extended floating point из intel 8087. Но тогда какого хуя sizeof возвращает 32бита?
>>725641
#533 #725641
>>725626
Читай IEEE 754, дурачок. Давай рассуждать логически. у тебя есть отрезок от нуля до одного действительных чисел. Мощность этого множества чуть больше чем дохуя. Откуда можно сделать вывод, что действительные числа это один большой наёб. Где? В конечной точности типов с плавающей запятой.
>>725653
#534 #725653
>>725641
Сам дурак, плюс твое объяснение не очень-то и понятное. Но я уже вычитал, что в float запятая, разделяющая 0 и -1 разряды, не только плавает, но может и просто отсутствовать нахуй. В таком случае речь идет о потере точности уже в положительных разрядах. Ясненько.
#535 #725698
Аноны, поясните как запустить эту ёбаную змейку
http://pastebin.com/xgXFAx84
По пунктам, пожалуйста
17 Кб, 330x263
#536 #725705
>>725698
Спиздил курсач и не можешь его скомпилить, лал?
>>725717
#537 #725706
>>725698
Двойной клик по zmeika.exe не работает?
sage #538 #725707
>>725698
Ох лол, кто-то до сих пор ебется с моей змейкой. Там три файла в этой пасте, плюс надо ncurses или pdcurses либу подключить.
>>725718
#539 #725717
>>725705
Блядь, откуда ты знаешь?
Да, ещё есть 1 день, вы моя надежда, аноны
>>725739
#540 #725718
>>725707
Просто скажи что надо сделать, по порядочку, прошу тебя.
>>725734
#541 #725734
>>725718
Если у тебя студия, то распихиваешь тот кривой код по трем файлам, в студии жмешь "создать проект из существующего кода" и выбираешь эти файлы. Качаешь уже скомпиленную версию pdcurses, подключаешь и должно по идее работать.
>>725742>>725750
239 Кб, 1959x1959
#542 #725739
>>725717

>лабы идут нахуй


Страдай
>>725745
#543 #725742
>>725734
[КОЛЯСКА@ПРЫЩЕЙ]$ g++ main.cpp game.cpp `pkg-config --cflags ncurses` -o zmeyka `pkg-config --libs ncurses` -std=c++11
game.cpp: В функции-члене «void Game::placefood()»:
game.cpp:38:21: ошибка: нет декларации «srand» в этой области видимости
srand(time(NULL));
^
game.cpp:42:23: ошибка: нет декларации «rand» в этой области видимости
food_x = rand() % (maxX - 1) + 1;
>>725750
#544 #725745
>>725739
Да при чём тут лабы уже в конце концов, просто помогите запустить эту хуйню.
#545 #725750
>>725734
Я пытался скомпилировать через консоль
Вот так вот>>725742
>>725809
#546 #725809
>>725750
Ну заинклудь cstdlib, чё ты как этот.

У меня скомпилилось после этого.
#547 #725928
Можно написать MyClass mc = new MyClass(); ?
>>725981
#548 #725981
>>725928
Напиши, узнаешь.
25 Кб, 510x499
#549 #725990
Перекот пилите!
>>726020
#550 #726020
>>725990
Ну так пили, чего ждешь
>>726048
#551 #726048
>>726020
Я не поэт, кресты я знаю слабо,
Чтоб рифмовать баззворды через раз.
Удел мой - ждать, покуда сын Баала,
Наш легитимный ОП, войдя в эстаз,
Извергнет лиру запоздало...
>>726065>>726672
#552 #726065
>>726048

>726020


>Я не поэт, кресты я знаю слабо,


>Чтоб рифмовать баззворды через раз.


>Удел мой - ждать, покуда сын Баала,


>Наш легитимный ОП, войдя в эстаз,


>Извергнет лиру запоздало...


У "легитимного" ОПа не лучше. Все равно мочу дергать будем для правки шапки. Заодно и стихи для стихомразей вставит, когда оп-хуй созреет
#553 #726446
Нужно нарисовать треугольник/кружок/етк и затем перенести его на другие координаты. Никакой анимации и т.п. Что использовать для графики? Есть ли что-то примитивнее и быстрее для раздупления, чем qt?
>>726499
#554 #726499
>>726446
SFML попробуй.
#555 #726515
Аноны, что такое qt и какое отношение имеет к крестам?
>>726537
#556 #726537
>>726515
В гугл, даун.
Тред утонул или удален.
Это копия, сохраненная 5 мая 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски