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

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

 Аноним 16/08/16 Втр 23:37:07 #1 №821402 
14713798272720.jpg
Над тредом вновь алеют яркие
Пердаков огни.
Баттхёрты сочные, сладкие
От студентов, которые дни
Проводят в смятенье, клепая всё свой говнокод
От ярости сотрясая
Самый небесный свод
Ругая Страусов трупы
И комитетский сброд

Но знай - их ошибки не вечны
Декреты сменяют устав
И код, считавшийся вечным
Забудется, легаси став
Не верь разработчику юному
Он глуп, как и нужно скоту
Ведь опытный комитетчик
Чует его за версту

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


Аноним 17/08/16 Срд 00:17:50 #2 №821422 
Есть один йоба проект, изначально был реализован на сишечке, был шустр прост и охуенен, потом его переписали на плюсы, стало огромадное неповоротливое и непонятное уебище. Вопрос, нахуя?
Аноним 17/08/16 Срд 00:44:37 #3 №821436 
Над тредом вновь алеют яркие
Пердаков огни.
Баттхёрты сочные, сладкие
От студентов, которые дни
Проводят в смятенье, клепая всё свой говнокод
От ярости сотрясая
Самый небесный свод
Ругая Страусов трупы
И комитетский сброд

Но знай - их ошибки не вечны
Декреты сменяют устав
И код, считавшийся вечным
Забудется, легаси став
Не верь разработчику юному
Он глуп, как и нужно скоту
Ведь опытный комитетчик
Чует его за версту
Аноним 17/08/16 Срд 00:46:48 #4 №821437 
>>821402 (OP)
c++ не нужен, есть раст
Аноним 17/08/16 Срд 01:50:29 #5 №821454 
>>821437
Зачем нужен Раст когда есть Си?
Прата 17/08/16 Срд 02:13:17 #6 №821459 
решил тут наваять шаблон, а чёто не пойму, что шаблон нельзя в cout вывести?
http://ideone.com/Ir4tpi
Аноним 17/08/16 Срд 03:20:31 #7 №821470 
>>821459
Ты читать умеешь или у тебя с этим туго?

У тебя имя функции конфликтует с std::plus, ибо нехуй делать using namespace std;

prog.cpp:3:5: note: candidates are: template<class T> int plus(T&, T&)
int plus(T &a,T &b);
^
In file included from /usr/include/c++/5/string:48:0,
from /usr/include/c++/5/bits/locale_classes.h:40,
from /usr/include/c++/5/bits/ios_base.h:41,
from /usr/include/c++/5/ios:42,
from /usr/include/c++/5/ostream:38,
from /usr/include/c++/5/iostream:39,
from prog.cpp:1:
/usr/include/c++/5/bits/stl_function.h:147:12: note: template<class _Tp> struct std::plus
struct plus;


http://ideone.com/GnFFmj
Аноним 17/08/16 Срд 03:22:03 #8 №821471 
>>821459
template <typename T>
T plus(T &a,T &b);

если у тебя T специально к инту не кастуется
Аноним 17/08/16 Срд 05:20:05 #9 №821480 
>>821454
Заем нужен Си, когда есть перфокарты?
Аноним 17/08/16 Срд 09:11:33 #10 №821516 
>>821422
Чтобы обмазаться говном, очевидно же
sageАноним 17/08/16 Срд 10:26:55 #11 №821542 
Саги треду без шапки. Уроды блядь ебаные. Ненавижу вас.
sageАноним 17/08/16 Срд 10:39:50 #12 №821550 
sage
Аноним 17/08/16 Срд 10:59:50 #13 №821567 
>>821550
>>821542
Аутист? Мод шапку делает.
sageАноним 17/08/16 Срд 11:05:16 #14 №821568 
>>821567
Иди нахуй залетная студенто блядь. Подождал бы ОПа и все. Так всегда.
Аноним 17/08/16 Срд 13:14:48 #15 №821634 
14714288889780.jpg
>>821568
ОБЕЩАННОГО ТРИ ГОДА ЖДУТ
Аноним 17/08/16 Срд 14:43:19 #16 №821688 DELETED
Увидел в соседнем треде ссылку и охуел.
http://www.cyberforum.ru/cpp-beginners/thread1795079.html

Как надо изучать язык, чтобы легко отвечать на такие вопросы? Читать стандарт?
Аноним 17/08/16 Срд 15:08:36 #17 №821701 
>>821688
хуйня, вопросы изи для дцп-девелоперс
Аноним 17/08/16 Срд 17:36:45 #18 №821835 
>>821688
Первую задачу помню надо было решить для подачи заявки на стажировку в яндекс. Щас на сайте не могу найти.
Аноним 17/08/16 Срд 17:44:21 #19 №821838 
>>821471
template <typename T, typename U>
decltype(auto) plus(T&& a, U&& b) { return a + b; }
Аноним 17/08/16 Срд 17:47:55 #20 №821842 
>>821688
Читать GotW
Аноним 17/08/16 Срд 19:11:13 #21 №821900 
Вопрос скорее по си, но не хочу в тот тред идти. Нужен массив структур размер которого не известен на этапе компиляции. В этой структуре будет 1 char и 1 int. Массив до 10к элементов. Как лучше сделать? 1 массив структур или 2 массива 1 char'ов и 1 int'ов? Если делать структуру, то наверно поля выравнивать надо будет. А если делать 2 массива, то 2 раза маллок вызывать надо. Надо чтобы работало как можно быстрее. И не тратиться на лишнюю память.
Аноним 17/08/16 Срд 19:51:48 #22 №821927 
14714527091280.png
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
Аноним 17/08/16 Срд 19:53:42 #23 №821931 
>>821927
Это макака виновата
Аноним 17/08/16 Срд 19:59:47 #24 №821933 
>>821900
> А если делать 2 массива, то 2 раза маллок вызывать надо.
Кто тебе запрещает один раз выделить память размером как суммарно оба массива?
Аноним 17/08/16 Срд 20:02:09 #25 №821935 DELETED
Господа, помогите разобраться в причине ошибки. Изучаю C++11 и по ходу разбираюсь в библиотеках и фреймворках.

Проект на Qt5:
Main.pro http://codepad.org/nZz7dsy6
main.cpp http://codepad.org/pKRfQDZ8
progress.h http://codepad.org/Od5tGuGt
progress.cpp http://codepad.org/8hO54zzE

Запускаю qmake, make, ошибка:

main.o: In function `main':
main.cpp:(.text.startup+0x41): undefined reference to `Progress::Progress(QWidget*)'
main.cpp:(.text.startup+0x55): undefined reference to `vtable for Progress'
main.cpp:(.text.startup+0xa8): undefined reference to `vtable for Progress'
Аноним 17/08/16 Срд 20:03:28 #26 №821936 DELETED
>>821935
Похоже, ошибки из-за того, что я забыл в Main.pro прописать хедеры и дополнительный cpp-файл. Сейчас попробую.
Аноним 17/08/16 Срд 20:04:45 #27 №821937 DELETED
>>821935
Проблема решена, а я получил немного опыта.
Аноним 17/08/16 Срд 20:14:15 #28 №821948 
>>821933
То что потом с ней будет не удобно работать. Надо же на 2 массива поделить. Может ещё какие-то подводные камни есть?
Аноним 17/08/16 Срд 21:11:17 #29 №821978 
>>821948
Что там делить?
size_t size = ...; // Размер массива
int #ints = malloc((sizeof (int) + 1) # size);
char #chars = (void #) ints + sizeof (int) # size;
Решетку замени на звездочку.
Аноним 17/08/16 Срд 22:50:18 #30 №822046 
Переполнение инта - неопределённое поведение. А у других типов как? Встреченных и тех что в стандартной библиотеке.
sageАноним 17/08/16 Срд 22:52:13 #31 №822047 
>>822046
У беззнаковых — за максимальным значением должен идти нуль.
> тех что в стандартной библиотек
Переполнение вектора, что ли?
Аноним 17/08/16 Срд 23:05:43 #32 №822060 
Там в прошлом вроде треде один анончик писал, что нашел новые годные книги по крестам и попытается впилить их в шапку. Только ради них зашел, а тут нихуя.
Аноним 17/08/16 Срд 23:05:43 #33 №822061 DELETED
Анон, что не так в моем алгоритме сортировки слиянием? https://ideone.com/HVgVEy

Откуда появилось это число 158208768 в выводе? У меня под виндой таких чисел вообще много вываливается. Причем для массива размером до 40 сортировка работает правильно, но потом где-то портится память.
Аноним 17/08/16 Срд 23:06:57 #34 №822065 
>>822060
Если ты про дейтла, то этот форсер больше года их пытается в шапку впилить.
Аноним 17/08/16 Срд 23:08:41 #35 №822068 
>>822047
>У беззнаковых — за максимальным значением должен идти нуль.
А почему у остальных не так?
>Переполнение вектора, что ли?
Ага. Или строки. Что будет если их сделать слишком большими?
sageАноним 17/08/16 Срд 23:10:00 #36 №822070 
>>822068
> Что будет если их сделать слишком большими?
Вытекут через монитор.
Аноним 17/08/16 Срд 23:16:59 #37 №822072 
Господа, какую посоветуете либу для http? Главное асинхронность. Курву ебать штоле?
Аноним 17/08/16 Срд 23:19:22 #38 №822075 
>>821900
Храни все в одном большом char[]
Смещение легко посчитать.
Аноним 17/08/16 Срд 23:24:59 #39 №822080 DELETED
Допустим, муж был великан высотой 35м, а жена обычный женщина ростом метр писяд. Вопрос возник, как совокупить супругов, чтобы родились дети, великанончики или обычные пиздюки. Так значит великан раздевает жену, и смотря на ее обнаженную благоухающую вагину через увеличительный прибор, усердно дрочит и кончает в великаний стакан емкостью пять кубов чистейшей великаней спермы. Так потом жена просто нвряет с раздвинутой пиздой в этот наполненный стакан и усердно втягивает пиздой живительную сперму в простонаричии просто малофея. Через 9 месяцев родятся здоровые дети.
Ну а сто делать если жена великанша, а родитель прост Иван Кузькин обыкновенный? Раньше делалось так, муж строгал спермы в бочонок, пока он не наполнится и великанша сливала этот бочонок спермы себе в вагину, загоняя потом все это дело великанским дилдо, зрелище то еще. Но сегодня технологии пошли далеко вперед, мужик облачается в водолазный костюм с кислородной маской и ныяряет жене в пизду, где достигает почти матки и кончает там тугой горячей струей живительной спермы. Дело на этом зделоно, родятся дети. Тут ничего не обычного нет, днк великанов и людей совпадает на 99%, это природой так задумано.
Аноним 17/08/16 Срд 23:57:08 #40 №822097 
>>821470
какой у тебя компилер? У меня сообщения чуть чуть отличаются. Ну типа говорит что вызывать здесь plus это ambligous
sageАноним 18/08/16 Чтв 00:02:56 #41 №822102 
>>822097
Мой говорит что я ambitious.
Аноним 18/08/16 Чтв 04:09:28 #42 №822159 
>>822061
Строка 20, &L[j].
Наглядный пример вреда копипаста.
Аноним 18/08/16 Чтв 06:06:38 #43 №822171 
>>822068
>А почему у остальных не так?
Фактически оно так, но на некоторых платформах аппаратно контролируется знак, поэтому какие-то требования бы вызвали костыли и неоптимальность в реализациях.
>Ага. Или строки. Что будет если их сделать слишком большими?
Если считать "большим" заполнение всей доступной кучи, то со стандартным аллокатором гарантируется исключение std::bad_alloc (как и для обычного new), а с пользовательским - зависит от того, как он реализован. Другого переполнения тут быть не может по определению - тип индекса (обычно size_t) гарантируется таким, что в него влезет любое количество потенциально влезающих в память объектов. Скажем, если у тебя на x86 4ГБ памяти, то даже если ты всю память потратишь на единственный вектор байтов, то в 32-битный unsigned int индекс все равно влезет, и нехватка памяти наступит раньше переполнения.
Аноним 18/08/16 Чтв 06:07:15 #44 №822172 
>>822060
Я работаю над этим, посоны, уже скоро прям все будет.
Аноним 18/08/16 Чтв 06:10:04 #45 №822173 
>>822072
Касабланка, например. Она заточена под асинхронность, там continuations, все дела.
Аноним 18/08/16 Чтв 09:43:06 #46 №822206 
>>821402 (OP)
Здравствуйте уважаемые сеньоры разработчики!
Очень нужен ваш совет по плюсам. Есть ли в них что-то похожие на динамическую типизацию, вернее даже не типизацию а какой-то костыль, который бы позволял создавать определенные коллекции с определенным типом.

Например вот так:

[code]
class Helper
{
public:
Дим_Тип Get_Rabdom(int size, Дим_Тип)
{
Дим_Тип data;
for(int i=0; i<size; i++)
{
data.add( random() );
}
return data;
}
}

Helper help;

vector<int> myVector = myHelper.Get_rand(50, vector<int>);

map<int, int> myMap = myHelper.Get_rand(50, map<int, int>);

[/code]

Пробовал через template<typename Type> но вроде через них так нельзя.
Аноним 18/08/16 Чтв 10:40:00 #47 №822232 
>>822206
> какой-то костыль, который бы позволял создавать определенные коллекции с определенным типом
К чему тут вообще динамическая типизация? Любой стандартный контейнер для такого подойдёт

Или тебе надо нечто на подобии ArrayList из java или с#?
Из твоего кода нихера не понял
Аноним 18/08/16 Чтв 10:48:38 #48 №822236 
>>822206
Через шаблоны как раз можно, но этот тип надо явно указывать аргументом шаблона. Типа template <typename T> T getRandom (int size) ... и потом auto my_vector = help.getRandom <vector <int>> (50).

Если хочешь, чтобы тип передавался именно параметром, в рантайме, то можно юзать std::any в качестве возвращаемого типа, а параметром передавать строку/enum/еще какой-нибудь идентификатор. Но тогда энивей внутри придется вручную писать switch по каждому из возможных типов.
Аноним 18/08/16 Чтв 11:56:06 #49 №822284 
14715105664060.png
>>822236
Я так уже пробовал
Аноним 18/08/16 Чтв 12:13:17 #50 №822294 
>>822284
>явно указывать тип аргументом шаблона
>...help.getRandom <vector <int>> (50)
> не получается
«Лучезарному колесу в золотых мехах, носителю грозной стрелы, слуге под самым седалищем Великого и могучего Утеса, сверкающего боя, с ногой на небе, живущего, пока не исчезнут машины, к ступне повергает это донесение ничтожный стражник из рода вихрей, носитель отличного меча. Доношу первое: большая машина «воин-купол» пришла в движение от пальца в отверстии пятом и от пальца в отверстии сорок седьмом, и движение было неодолимое, быстрое и прямое. Доношу второе: явились на небывалой машине трое, не знающие речи, не носящие оружия, не понимающие установления и желающие странного. Не зная их сущности, пребываю в ожидании высоких приказаний. Доношу третье: уголь кончается, а топить мертвецами по вашему милостивому слову мы за невежеством и недоумием не умеем. При сем прилагаю: первое – чертеж большой машины «воин-купол» и второе – образцы материи, приклеенные неизвестными людьми к ранам преступников».
Аноним 18/08/16 Чтв 12:20:19 #51 №822308 
>>822284
getRandom<int>(50)
Аноним 18/08/16 Чтв 13:02:49 #52 №822342 
>>822284
Что это вообще за дичь? Твой метод возвращает std::vector<int>, а не T. Даже если ты сделаешь как предлагает >>822308, то у тебя код даже не скомпилируется.
Аноним 18/08/16 Чтв 14:04:03 #53 №822377 
>>822294
:D
Аноним 18/08/16 Чтв 15:52:44 #54 №822470 
Решил попробовать себя в программировании. Выбрал c++. Почему он считается одним из самых сложный языков программирования? Если мне не хватает мозгов я его не смогу осилить?
Аноним 18/08/16 Чтв 16:21:29 #55 №822503 
>>822470
> Почему он считается одним из самых сложный языков программирования?
Потому что иногда сам язык пытается тебя запутать. inb4: как пример, который любят всем пихать — static имеет три совершенно разных смысла в разных местах проги.
Аноним 18/08/16 Чтв 16:31:20 #56 №822520 
>>822503
функции, члены класс и переменные?
Аноним 18/08/16 Чтв 16:33:27 #57 №822525 
>>822520
да
Аноним 18/08/16 Чтв 16:37:47 #58 №822529 
>>822470
Вот, например, осиль статью:
https://habrahabr.ru/post/242639/
Аноним 18/08/16 Чтв 16:38:47 #59 №822531 
Как в си узнать размер буфера для stdout? printf ведь делает буферизацию?
Аноним 18/08/16 Чтв 16:59:48 #60 №822552 
>>822531
implementation defined
Аноним 18/08/16 Чтв 17:01:26 #61 №822555 
>>822552
Какая функция его возвращает?
Аноним 18/08/16 Чтв 17:04:21 #62 №822558 
>>822555
The __fbufsize function return the size of the buffer in the stream stream. This value can be used to optimize the use of the stream.

This function is declared in the stdio_ext.h header.

http://www.gnu.org/software/libc/manual/html_node/Controlling-Buffering.html
Аноним 18/08/16 Чтв 17:31:12 #63 №822577 
>>822529
Я так понял в случае с константными ссылками форвардинг нам не нужен?
Аноним 18/08/16 Чтв 18:15:54 #64 №822620 
>>822577
Нужен. Компилятор const не принимает во внимание, он нужен только для тайп-чекера, потому что const_cast и mutable.
Аноним 18/08/16 Чтв 19:16:16 #65 №822673 
Объясните нубу, почему я должен начать изучать данный язык, когда напоявлялись всякие питоны, которые вроде как намного удобнее и красивее? В чем будет профит? Тот факт, что куча народу уже кодит на с++ - для меня не аргумент.
Аноним 18/08/16 Чтв 19:19:32 #66 №822678 
>>822673
После семи лет опята тебя будут искать работодатели, а не ты их.
Аноним 18/08/16 Чтв 19:21:39 #67 №822681 
>>822673
> почему я должен начать изучать данный язык
Для меня, после паскаля и VB6 это была красота. (Нет, я смотрел питончик — он не красивый, у него [{};] нет)
Потом уже понял, что я статикоскоростьфаг. Хочу статическую линковку и охуенную скорость. (И преждевременные оптимизации, тысячи их!)

Короче, это дело вкуса.
Аноним 18/08/16 Чтв 19:57:30 #68 №822708 
14715394508180.png
Ребята, а когда примерно оп умер?
Аноним 18/08/16 Чтв 20:15:55 #69 №822724 
>>822678
С другими языками такому небывать?
Аноним 18/08/16 Чтв 20:17:20 #70 №822726 
>>822681
Как раз и пришел с дельфей, паскаля и VB. И вот задумался... Шагать в будущее или положиться на старое дедовское...
Аноним 18/08/16 Чтв 20:22:25 #71 №822728 
>>822724
Нет. С другими языками есть огромная толпа спецов которыми тебя заменят. На крестах спецы дороже стоят. Ещё дороже только лисп или другие полумёртвые и некому неизвестные
Аноним 18/08/16 Чтв 20:35:25 #72 №822732 
[code] int main(void) [code]

test
Аноним 18/08/16 Чтв 20:36:35 #73 №822733 
>>822732
Слэш забыл. бака.
Аноним 18/08/16 Чтв 20:39:46 #74 №822737 
>>822733
[code] cout << "(" [/code]
Аноним 18/08/16 Чтв 21:55:01 #75 №822790 
>>821402 (OP)
Что происходит, при передаче указателя на массив по значению? Он указывает на новый локальный массив? Откуда тогда функции известна его длинна?
Аноним 18/08/16 Чтв 22:02:18 #76 №822793 
>>822790

Я си только учу, но вроде указатель передается только by reference, в этом и смысл. А массив вообще by default передается by reference, но может в плюсах не так.
Аноним 18/08/16 Чтв 22:17:56 #77 №822805 
>>822790
>передаче указателя на массив по значению
Ты не за что не догадаешься. Массив остаётся на месте, а указатель передаётся в функция и там используется.
Аноним 18/08/16 Чтв 22:27:42 #78 №822811 
>>822708
Жс-кун это старый оп же, он уже больше года как не у дел.
Аноним 18/08/16 Чтв 23:01:00 #79 №822830 
14715504601860.jpg
>>822793
>си
>reference
Аноним 18/08/16 Чтв 23:21:07 #80 №822839 
Почему если переменную не инициализировать то в ней всегда что-то хранится? Как работает оперативка компа что всегда в ячейках что-то записано?
Аноним 18/08/16 Чтв 23:29:28 #81 №822844 
>>822839
Если глобальная переменная, загрузчиком виндовым вроде декларирована инициализация нулями, в никсах не знаю. Если переменная локальная, то прочитается рандомный мусор со стека, который там остался от вызова других функций, компайлерских прологов или подобной хуйни. На самом деле, в "ячейках" не всегда что-то записано. Попробуй привести к указателю рандомное число и прочитать и прочитать значение, разыменовав его. Скорее всего, подходящей страницы виртуальной памяти не окажется, и вылетит исключение.
Аноним 19/08/16 Птн 00:07:23 #82 №822856 
>>822839
> Как работает оперативка компа что всегда в ячейках что-то записано?
Для этого есть специальные механизмы в материнской плате. Если бы не они, то чипы с оперативкой исчезали бы из системного блока при освобождении и памяти и появлялись по мере её заполнения. Это очень сложная магия. Зачем она тебе?
Аноним 19/08/16 Птн 00:08:47 #83 №822857 
>>822844
> и прочитать и прочитать
>>822856
>и памяти и
Как называется эта болезнь?
Аноним 19/08/16 Птн 00:10:59 #84 №822858 
>>822857
Аутизм мб. Это посты разных людей, если что, так что назвал навскидку самое распространенное на сосаче.
Аноним 19/08/16 Птн 00:18:03 #85 №822859 
>>822839
http://arch.cs.msu.su/Text/
Первых несколько глав
Аноним 19/08/16 Птн 02:25:57 #86 №822897 
>>822790
>>822839
Куда скотился C++-тред? Что эти тут делают? Почему не забанены?
Аноним 19/08/16 Птн 05:44:24 #87 №822922 
>>822897
Вообще пиздец
Аноним 19/08/16 Птн 08:48:34 #88 №822952 
Упражнене из книги Прата (код из книги) - https://ideone.com/zIMtHP
Ругается на
>char fab[20];
>Frabjous(const char •s = "C++") : fab(s) {}

Два вопроса:
1. Как это исправить-то, чтобы через initialization list, а не strcpy в теле? Ну и не fab{s[0], s[1], s[2], s[3]}, разумеется.
2. А почему оно вообще не работет-то?
>char x[10]("string")
Нормально, а вот
>const char • s = "string"
>char x[10](s)
не хочет. Но ведь это практически одно и тоже, разве нет?
Аноним 19/08/16 Птн 09:11:44 #89 №822961 
Возможно ли новичку в программировании (Знаком с плюсами вплоть до классов) реализовать простенькую консольную игру по сети?

Для начала хотя бы игру в "Камень-ножницы-бумага"?
Один игрок пишет одно, второй другое и обоим выписывает результат

Если да, то где искать как это делать?
Аноним 19/08/16 Птн 10:37:01 #90 №822988 
>>822857
>Как называется эта болезнь?
Пять раз исправил пост
@
Не перечитал перед отправкой
Аноним 19/08/16 Птн 10:40:37 #91 №822992 
>>822961
https://www.youtube.com/watch?v=IydkqseK6oQ
sageАноним 19/08/16 Птн 10:53:11 #92 №822995 
>>822992
>написать простейший сокет-сервер
>продолжительность видео 10:21
>больше 100 строк говнокода на server.cpp
>почти 100 строк говнокода на клиент

пиздец, какие же крестоблядки говноежки, и это в 2016 году
Аноним 19/08/16 Птн 10:57:28 #93 №822997 
>>822995
Разумеется,
import http.socket
http.socket.server.start()
гораздо проще, но ведь эти же 100 строк кода там внутри и находятся.
sageАноним 19/08/16 Птн 11:21:34 #94 №823009 
>>822997
Т.е. без этих 100 строк чистейшего говнокода никак?
sageАноним 19/08/16 Птн 11:35:53 #95 №823015 
>>822992
погодите, так это говно ещё и в одном треде работает? больше 100 строк на однотредовый блокирующийся сервер? лооол
представляю какой там будет срачельничек с локами, мьютексами или колбеками с стиле говняшная + pthreads, если надо будет сделать мультитредовый сервак
Аноним 19/08/16 Птн 11:37:39 #96 №823017 
>>823009
>Т.е. без этих 100 строк чистейшего говнокода никак?
Никак, это ведь интерфейс ОС.
Аноним 19/08/16 Птн 11:53:25 #97 №823019 
>>823017
Так а есть какие-то удобные абстракции, что-то в стиле эрланговского gen_tcp или хотя бы akka i/o tcp?
Аноним 19/08/16 Птн 12:02:57 #98 №823023 
>>823019
В стандартной либе нет.
Аноним 19/08/16 Птн 12:08:07 #99 №823026 
>>823019
Нет конечно, даже самые высокоуровенные библиотеки вроде CAF пародирующие эрланг заставляют писать те же сто строчек на то, что в эрланге делается буквально в 5.
Аноним 19/08/16 Птн 13:00:33 #100 №823049 
>>823019
Очевидный asio, его вроде даже собирались в 17 включать, но под конец прокинули через хуй, может в 23 завезут нет.
Впрочем, он давно умеет в standalone без сотен мегабайт буста и элементарно подключается в проект.
Аноним 19/08/16 Птн 13:11:57 #101 №823056 
14716015172680.png
Бояре, как в cmake линковать wtsapi32.lib ?
target_link_libraries(wtsapi32.lib) - ошибка сборки
Аноним 19/08/16 Птн 13:16:02 #102 №823060 
>>823056
>target_link_libraries(wtsapi32.lib)
Ты бы хоть почитал какие аргументы оно принемает и сколько.
target_link_libraries(target wtsapi32)
Аноним 19/08/16 Птн 13:39:00 #103 №823068 
>>823060
Ну я же долбоеб.
Спасибо
Аноним 19/08/16 Птн 18:51:21 #104 №823332 
>>822952
>1. Как это исправить-то, чтобы через initialization list, а не strcpy в теле? Ну и не fab{s[0], s[1], s[2], s[3]}, разумеется.
Сделать string
>2. А почему оно вообще не работет-то?
Размер массива ограничен, а в s может хранится слишком большая строка.

https://ideone.com/Kq14Y1
Аноним 19/08/16 Птн 19:06:31 #105 №823342 
Вечер в хату. Возникла такая вот проблема: необходимо написать кучу бесполезного и однообразного кода(типа самопальной либы для матриц, векторов итп) и все бы ничего(обошелся бы просто встроенными в vc/clion средствами для генерации заголовков методов), но есть такая хрень что необхожимо даже для функций короче пиструна хомяка писать ~4 стоки комментариев до и 1 после. В общем, реквестирую способов не втыкать вручную тысячи говн.
Аноним 19/08/16 Птн 19:28:05 #106 №823354 
>>823342
Напиши программу/скрипт для генерации комментариев.
Аноним 19/08/16 Птн 19:33:41 #107 №823360 
>>823354
А без велоспедов.
Аноним 19/08/16 Птн 19:35:17 #108 №823361 
>>823360
Юзай уже готовые средства кодогенерации/автодокументации.
Либо велосипедь свои, выбора у тебя не осбо много.
Аноним 19/08/16 Птн 19:39:53 #109 №823363 
>>823361
Ткните пожалуйста лицом в подобное ибо долблюсь в глаза.
Аноним 19/08/16 Птн 20:21:12 #110 №823382 
>>823363
Смотря что тебе нужно:
https://www.gnu.org/software/m4/m4.html
https://github.com/gccxml/pygccxml
http://eli.thegreenplace.net/2011/07/03/parsing-c-in-python-with-clang
Видел, люди пхп как макроязык для сишки использовали.
Аноним 19/08/16 Птн 22:14:34 #111 №823456 
Здарова, господа, посоветуйте годную книгу по многопоточности. Раньше вроде модно было C++ Concurrency in Action читать, сейчас ничего не изменилось?

Не новичёк, азы знаю.
Аноним 19/08/16 Птн 22:24:30 #112 №823458 
>>823456
Ну так Энтони уже все сказал, с тех пор добавились разве что параллельные версии алгоритмов из серьезного, но это тема на пару страниц, не на книгу. Дальше только читать исходники либ, или какие-нибудь книжки по обобщенной параллельности. Материалы с Highload++ попробуй, например.
Аноним 20/08/16 Суб 11:58:27 #113 №823749 
Двач, где мне прочитать о вызовах функции в C++ с точки зрения машины? Т.е. я хочу узнать, как работает память, и т. д., чтобы прояснить для себя некоторые моменты, в частности, move-semantics, и т. д. Хочу узнать как и где работает память в пеке, как функции в С++ реализуются с точки зрения памяти, передача аргументов, возврат, и т. д.
sageАноним 20/08/16 Суб 12:26:14 #114 №823768 
>>823749
>я хочу узнать, как работает память, и т. д., чтобы прояснить для себя некоторые моменты, в частности, move-semantics
Никакого отношения к тому, как работает память, move-semantics не имеет.
Т.е. я имею в виду, что вызов move constructor-а ничем не выделяется.
Аноним 20/08/16 Суб 12:30:18 #115 №823769 
>>823749
>где мне прочитать о вызовах функции в C++ с точки зрения машины
https://en.wikipedia.org/wiki/X86_calling_conventions
>move-semantics
Move-semantics к работе памяти не имеет отношения. Это чисто фишка системы типов: в каком контексте вызывается &&, а в каком &.
Аноним 20/08/16 Суб 12:46:25 #116 №823779 
>>823768
Да я понял, спасибо. Я это к тому написал, что начал читать 4th edition, и тупил вообще. Вроде сейчас разобрался, что и как, т.е. если я определяю функцию например:

MyType Sup2ch(MyType);

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

>>823769
Спасибо, я потихоньку начну читать вики на эту тему, а вообще, где нормально и четко можно глянуть инфу о памяти? А то везде в книжках пишут типо этого: "Ну есть стек в main, есть область глобальной памяти, есть куча." Мне кажется, что эта инфа подходит только для очень поверхностного ознакомления.

И да, спасибо, реально помогаете.
Аноним 20/08/16 Суб 12:52:25 #117 №823781 
>>823779
https://www.google.ru/?q=c+program+memory+layout
Аноним 20/08/16 Суб 12:56:56 #118 №823785 
>>823781
Спасибо, я, еблан, даже слов для поисковика бы не подобрал. По-русски писал чет, там блядь одно говно за динамические массивы в стиле лабы первокурсника.
Аноним 20/08/16 Суб 12:59:13 #119 №823786 
>>823785
Если хочешь более подробных примеров - обмазывайся листингами. Тот же шланг с флагом -S выдаст тебе довольно читабельный листинг.
Аноним 20/08/16 Суб 13:01:28 #120 №823788 
>>823786
Не понимаю
>шланг с флагом -S


Заранее прошу прощения за нубство.
Аноним 20/08/16 Суб 13:06:34 #121 №823793 
>>823788
Шланг - это clang, компилятор. Делаешь что-то типа clang -S test_file.cpp и на выходе волучешь .s файл с ассемблерным листингом.
Хотя я начинаю сомневаться что ты в нём хоть что-то разберёшь.
Аноним 20/08/16 Суб 13:17:46 #122 №823799 
>>823793
спасибоу меня gcc стоит, ну поставлю, разберусь,

>In practical words, when we run any C-program, its executable image is loaded into RAM of computer in an organized manner

Поправьте меня, пожалуйста, если не прав, если не трудно поясните:

Запуская программу, начинает как-то работать машинный код (как?) (ну или код более низкоуровнего яп типо ассеблера?), в ходе исполнения инструкций программа имеет доступ к памяти (которая оперативка, RAM), и в статьях рисуночки сверху вниз идет стек, куча, бсс и прочее - сверху это означает лево по оси адрессов, т.е. возле нулевого (или первого доступного реализацией) лежит стек, потом начиная например с 0xAA лежит куча, и так далее.
Аноним 20/08/16 Суб 13:19:33 #123 №823803 
Пока не прочитал, но вроде нашел годную статью

http://www.gahcep.com/cpp-internals-memory-layout/
Аноним 20/08/16 Суб 13:19:40 #124 №823804 
>>823799
gcc тоже должен уметь выдавать только листинг, погугли.
Аноним 20/08/16 Суб 13:39:56 #125 №823821 
>>823804
Нашел, спасибо тебе, очень мне помог, отвечаю
Аноним 20/08/16 Суб 13:49:46 #126 №823823 
14716901863970.png
Это типо код ассемблера?
Аноним 20/08/16 Суб 13:51:28 #127 №823824 
>>823823
Типо да, надеюсь ты там без оптимизаций собирал?
Аноним 20/08/16 Суб 14:49:00 #128 №823875 
>>823799
Почитай, как многозадачные ОС устроены. Что такое контекст процесса ОС, виртуальная память, и т.д.
Аноним 20/08/16 Суб 16:48:08 #129 №823937 
>>823799
если gcc стоит, то можешь clang не ставить. Чтоб получить листинг ключ тот же -S. Если хочешь intel синтаксис, то пишешь -masm=intel
Аноним 20/08/16 Суб 16:51:15 #130 №823939 
Есть ли что о новых фичах языка начиная с 10 года?
На работе лютый легаси, и как-то не используем ничего свежего. Ну и в итоге я не следя за новостями уже и не ориентируюсь в том что там надобавляли/собираются добавить.

Есть что почитать об этом сжато? Я не прошу Страуструппа всего читать.
Аноним 20/08/16 Суб 16:52:53 #131 №823940 
>>823939
на хабре почитай статьи
Аноним 20/08/16 Суб 16:57:53 #132 №823945 
Как получить указатель на объект ofstream? Хочу читать из файла, который открываю как
std::ofstream file("text_file.txt", std::ios_base::in);
и вот как бы мне получить указатель, чтобы скормить его feof()?
Аноним 20/08/16 Суб 17:06:19 #133 №823949 
>>823945
А зачем? У ofstream есть же метод eof(). Они же вроде одно и то же делают
Аноним 20/08/16 Суб 17:09:28 #134 №823950 
>>823949
Спасибо, как раз что и нужно! Затупил я.
Аноним 21/08/16 Вск 00:18:20 #135 №824307 
Шалом школьники.

У меня вопроc: зачем может понадобиться отмечать деструктор как deleted? Есть какой-то пример где это нужно?
Аноним 21/08/16 Вск 00:34:20 #136 №824314 DELETED
>>821402 (OP)
Всегда проигрывал с крестоманек, понавыдумавыли себе ненужных и тормозных абстракций и ебут друг друга в жопы.
Разве на плюсах удастся написать этот код:
https://github.com/DmitryHetman/ttytanks
лаконичнее для человека или для машины?
Бред же, плюсы придумали для манек неспособных осилить статическую типизацию, хацкель придумали совсем для аутистов. А Сишечка для людей.
Prove me wrong.
Аноним 21/08/16 Вск 00:36:31 #137 №824315 DELETED
>>823939
C++ 2017 Working Draft.
GCC 7 C++ Documentation.
Аноним 21/08/16 Вск 01:11:31 #138 №824335 
>>824314
ОТКЛЫЛ MAIN.C
@
УВИДЕЛ ЭТОТ УЖАС ИЗ ГОВНОКОДА
@
ПОЛУМЕТРОВЫЕ SWITCH-CASE
@
100 КРАТНОВЛОЖЕННЫЕ IF-ELSE
@
ЗАКРЫЛ НАХУЙ И ПЕРЕКРЕСТИЛСЯ
Прата 21/08/16 Вск 01:38:12 #139 №824352 
>>821470
Бля,проще бы сказал что уже есть такая стандартная функция plus.
Аноним 21/08/16 Вск 02:47:56 #140 №824379 DELETED
>>824335
>Кококок
А что ты предлагаешь вместо этого говнокода писать?
Оно работает, пока этого достаточно.
Говнокод в render.c, core.c.
Если есть советы то советуй, а говнокодом можно любой код прозвать.
Windows - легаси-говнопараша;
Xorg - легаси-говнопараша.
>>824352
Ослиливай clang уже.
Аноним 21/08/16 Вск 02:52:26 #141 №824383 
>>824314
даже с точки зрения С-программера это говнокод, съеби
Dmitry 21/08/16 Вск 02:57:00 #142 №824384 DELETED
>>824383
>Кококок
Не можешь предложить как писать код лучше - съеби.
Аноним 21/08/16 Вск 03:13:29 #143 №824389 
>>824384
Не писать на си.
Аноним 21/08/16 Вск 03:22:38 #144 №824392 DELETED
>>824389
Ты сказал что это можно написать лучше на C.
Аноним 21/08/16 Вск 10:22:01 #145 №824457 
>>824314
Куда-то уехала индентация.
Переменные прямо в хедерах - автор не понимает, что это такое.
>#define ME_TANK 0
Даже в сишечке нужно использовать константы вместо препроцессора. Все назначение этой переменной - это быть вместо указателя tank* me, потому что автор в указатели не может.
>lightsources sources
Автор не понимает, зачем нужна система контроля версий.

README почему-то указывает сюда
https://github.com/rainautumn/ttytanks
Здесь индентация не такая поехавшая.

В целом портрет ясен, самоуверенный школьник. На С++ такое писать действительно не стоит, питона достаточно.
sageАноним 21/08/16 Вск 12:10:27 #146 №824492 
>>824457
>питона достаточно.
fps низкий будет
Аноним 21/08/16 Вск 12:56:11 #147 №824504 
>>824492
>fps низкий будет
Кекнул с дауна.
Аноним 21/08/16 Вск 13:00:54 #148 №824506 
>>824457
>>824457
>lightsources sources
Причем здесь система контроля версий?
Аноним 21/08/16 Вск 13:24:21 #149 №824518 
In this particular case, if you forgot to delete a copy or move operation, no harm is done. A
move operation is not implicitly generated for a class where the user has explicitly declared a destructor.
Furthermore, the generation of copy operations is deprecated in this case (§44.2.3). This
can be a good reason to explicitly define a destructor even where the compiler would have implicitly
provided one (§17.2.3).

>Furthermore, the generation of copy operations is deprecated in this case (§44.2.3).

Получается, если я явно опишу деструктор в классе, неявно не будут генерировать ни конструктор копирования, ни конструктор перемещения (copy & move constructors)?

Аноним 21/08/16 Вск 13:31:46 #150 №824520 
>>824518
Upd. Почему-то убедился, то это не так (copy генерируется). Знатоки C++11, объясните
Аноним 21/08/16 Вск 15:49:55 #151 №824571 
>>821454
в расте есть шаблонное метапрограммирование? Ну или какой-то еще вид компайл-тайм метапрограммирования?
Аноним 21/08/16 Вск 15:53:52 #152 №824573 
>>824571
Там есть аст макросы, которые предоставляют куда больше возможностей с меньшим кол-вом ебли.
Аноним 21/08/16 Вск 16:40:44 #153 №824593 
>>824520
Новую книжку Майерса про С++ читал?
Там целая глава про это.
Аноним 21/08/16 Вск 16:50:52 #154 №824599 
>>824573
>макросы
ой всё!
Аноним 21/08/16 Вск 16:54:12 #155 №824600 
бамп
Аноним 21/08/16 Вск 17:06:36 #156 №824608 
>>824593
А название какое?
Аноним 21/08/16 Вск 17:10:31 #157 №824612 
>>824608
Это моя первая книга по 11 стандарту, 4 издание Страуструпа читаю
Аноним 21/08/16 Вск 17:11:46 #158 №824613 
>>824599
Какая разница, как называется, если конечная суть одна? или у тебя слово "макросы" ассоциируется с текстовым препроцессором из си?
Аноним 21/08/16 Вск 17:12:41 #159 №824614 
>>824613
Скорее с хуйнеё которая должна исправить недостатки функций в лиспе
Аноним 21/08/16 Вск 17:26:49 #160 №824624 
>>824614
По сравнению с тем как сейчас используются шаблоны и какие костыли акробаты с ними городят - это манна небесная.
sageАноним 21/08/16 Вск 18:46:29 #161 №824658 
>>824520
Узнай, что значит deprecated
Аноним 21/08/16 Вск 19:09:44 #162 №824669 
Где найти работу по цпп хоть какую-нибудь? Хоть место где прост кодить разрешат, просто так? Че надо вообще знать? Шаблоны, ооп, стл?
Аноним 21/08/16 Вск 20:59:26 #163 №824704 
>>824624
в c++17 будет relaxed constexpr, и большая часть еботни с шаблонами уйдет
Аноним 21/08/16 Вск 21:00:48 #164 №824705 
>>824704
или даже в 14 MSVC не поддерживает до сих пор
Аноним 21/08/16 Вск 21:09:16 #165 №824708 
>>824658
я не могу, перевод я посмотрел, но я вручную создал класс, не объявляя из методов ничего, кроме деструктора, и все же я смог использовать неявно сгенерированный копи-конструктор. Так почему страуструп говорит о том, что написано здесь >>824518 ?
Объясни, пожалуйста.
Аноним 21/08/16 Вск 21:16:42 #166 №824710 
>>824708
Upd. Вот этот код


#include <iostream>

class Foo{
public:
~Foo() {}
};

int main() {

Foo x;
Foo y(x);
return 0;
}


сработал отлично, и не о каких неявно не сгенерированных конструкторах при явном деструкторе не было и речи
Аноним 21/08/16 Вск 21:47:53 #167 №824726 
Поясните за Intel C++ Compiler дает ли хоть какой то выигрышь на процессорах интел?
Аноним 21/08/16 Вск 22:05:02 #168 №824728 
>>824726
Поставь все три компилятора и прогони бенчмарки с какого нибудь benchmarksgame.
Аноним 21/08/16 Вск 23:08:59 #169 №824758 
>>824307
Так иногда делают, чтобы запретить создавать объекты этого типа на стеке. Аналогично, operator new удаляют, чтобы запретить создание в куче. Но вообще это костыль, тому що при размещении в куче тоже, вообще говоря, нужен деструктор. Более православное решение - сделать его приватным, тогда operator delete не обосрется, а удалять напрямую не получится.
Аноним 21/08/16 Вск 23:12:38 #170 №824761 
>>823939
Modern C++ от Скотта Майерса
Аноним 21/08/16 Вск 23:12:38 #171 №824762 
>>824608
Эффективный и современный C++, в шапке есть.
Аноним 21/08/16 Вск 23:14:29 #172 №824765 
>>824704
На смену придет модная дрочильня в виде friend injection, вот тогда-то ты поймешь, что SFINAE это было совсем просто, лол.
Аноним 21/08/16 Вск 23:18:05 #173 №824767 
>>824726
Насколько я понимаю, его юзают только когда под суперкомпьютеры пишут код для параллельных вычислений. В обычных задачах можно прикрутить OpenCL/CUDA и получить гораздо больший относительный прирост, плюс останутся модерновые фичи, которых пока нет у Intel.
Аноним 21/08/16 Вск 23:57:28 #174 №824785 
Допустим, итераторы first и last задают диапазон элементов. Как проще всего присвоить первым k элементам в этом диапазоне некоторое значение, а оставшимся size - k элементам - другое значение, если k - целое число?

Что в STL особенно удобно для этого?
sageАноним 22/08/16 Пнд 00:20:13 #175 №824791 
>>824708
deprecated значит, что поведение или функция объявлены устаревшими Они ещё есть, но в следующей мажорной версии стандарта функция будет удалена, а поведение — изменено.
Аноним 22/08/16 Пнд 03:20:17 #176 №824826 
>>824785
std::fill
Аноним 22/08/16 Пнд 06:13:23 #177 №824853 
>>824826
fill_n же, тогда достаточно OutputIterator.
Аноним 22/08/16 Пнд 15:29:13 #178 №825051 
Я к вам с глупым вопрос. А в чём такая проблема сделать чтение исходников в два прохода, собирая все объявления в первом (выдёргивая только сигнатуры из definition'ов (какой термин по-русски, кстати, правильный?)), и избавиться от необходимости иметь декларации выше использования и прочий геморрой, возникающий при перекрёстном использовании каких-либо функций/методов, необходимости forward declaration'оа класса и т.д.
Неужели это настолько ресурсоёмко?
Аноним 22/08/16 Пнд 16:29:23 #179 №825092 
>>825051
>Неужели это настолько ресурсоёмко?
Это ебанутое наследие сишки. Причем оставлено только на глобальном уровне. Внутри класса, например, методы можно в произвольном порядке объявлять. Так же как и делать вложенные функции, объявляя локальный класс внутри функции.
Аноним 22/08/16 Пнд 16:40:03 #180 №825101 
У меня есть класс(A) в нем указатель на абстрактный класс(B), в котором могут храниться объекты разных типов, как написать конструктор копирования(для А), если я не знаю, какого типа объект мне нужно выделить?
Аноним 22/08/16 Пнд 16:47:52 #181 №825107 
>>825101
>как написать конструктор копирования(для А)
Добавь virtual A clone() = 0 в интерфейс абстрактного класса, пусть наследники сами разруливают, как им копироваться.
Аноним 22/08/16 Пнд 16:53:04 #182 №825110 
>>825101
Если у тебя там указатель, зачем копировать B? shared_ptr не подойдет?
Аноним 22/08/16 Пнд 17:33:00 #183 №825149 
>>825051
Дело не в однопроходности же, это тебе не паскаль. Грамматика все равно неразрешима, и в общем случае, с шаблонами шаблонов там такая дрочильня, что даже с ручкой и бумагой без поллитры не разберешься. Если убрать декларации, скорость компиляции нихуя не увеличится, но появятся новые проблемы. Например, неочевидно, что делать с вызовами перегруженных функций, когда нельзя предсказать декларацию по вызову, и все зависит только от порядка опережающих деклараций.
>>825092
Даже без легаси пришлось бы делать что-то подобное, я думаю. Класс это нечто целостное, там без такого можно обойтись. А единица трансляции может состоять из хэдеров от разных авторов, и не всегда можно выбрать "единственный правильный для всего файла" набор перегрузок. Жизненный пример: ты хочешь специализировать шаблонную функцию из STL (это разрешено и применяется, например, для std::hash с нестандартными типами), но в самом хэдере она уже используется. Если поместить обе декларации (твою и шаблонную) в начало файла, то код хэдера может заюзать твою версию, чего никто не ждал. А так - пока идет хэдер, юзается стандартная, а дальше уже ты делаешь что хочешь.
Аноним 22/08/16 Пнд 18:00:23 #184 №825159 
>>825110
>Если у тебя там указатель, зачем копировать B?
У него класс - владелец ресурса, похоже. При копировании хозяина надо копировать сам ресурс.
Аноним 22/08/16 Пнд 18:01:22 #185 №825160 
>>824826
>>824853
Вот кодес, который показал, что я нихуя не понимаю в итераторах. Функция сортирует бинарную последовательность.

https://ideone.com/m4cuAF

Какая сложность у вычисления разности итераторов? Я использую разность вместо вызова std::distance, который в общем случае работает за O(n), но для вектора, вроде бы, за O(1). Можно ли тут уменьшить констату в сложности сортировки?
Аноним 22/08/16 Пнд 18:06:07 #186 №825163 
>>825107
>>825110
Спасибо няши:3
Аноним 22/08/16 Пнд 20:23:01 #187 №825248 
>>825160
Для BidirectionalIterator гарантируется линейная сложность, как для distance, так и для разности. distance вообще нужно только для однородности кода, из-за того, что для однонаправленных разность недоступна.

За оптимизации сложно сказать. Формально было бы быстрее пихать единицы через emplace_back прямо в том же цикле, но фактически fill_n может использовать memset, который существенно быстрее. Можно параллелизовать fill_n, начиная с нового стандарта. Ну и возможности по байтоебству тут неисчерпаемые, от битовых полей вместр вектора до SIMD-инструкций, которые за пару тактов весь твой вектор свернут в бараний рог.
Аноним 23/08/16 Втр 00:00:09 #188 №825439 
У меня есть одна идея, приложение для морфа звука:
1. Идет постоянное считывание звука с одного из аудиоустойств
2. Этот звукобрабатывается морфером по определенному принципу
3. Создается новое аудиоустройство, которое воспроизводит полученный звук.
4. Само устройство ”подключается” только при запуске приложения.
Если кто-то подсказал бы что почитать по какому-либо пункту, я был бы крайне признателен, спасибо.
Проблемными кажутся только последние 2.
Аноним 23/08/16 Втр 00:04:52 #189 №825442 
>>825439
https://stackoverflow.com/questions/959660/how-to-implement-a-voice-changer
Аноним 23/08/16 Втр 00:07:27 #190 №825444 
>>825442
Надо было сказать что проблемы только с двумя последними пунктами.
Гуглить-то я умею
Аноним 23/08/16 Втр 00:09:11 #191 №825445 
>>825444
А.
Извиняй.
Это я в глаза долблюсь.
sageАноним 23/08/16 Втр 00:48:00 #192 №825452 
>>825439
http://askubuntu.com/questions/421947/is-there-a-way-to-modulate-my-voice-on-the-fly
Аноним 23/08/16 Втр 01:01:36 #193 №825455 
>>825452
Знаешь, я могу и морфвокс юзать, мне интересно самому написать. А именно как морфвокс создал свой виртуальный микрофон и как сделать так же.
Аноним 23/08/16 Втр 02:23:26 #194 №825474 
пара вопросов

1 Как поставить студию 2015 под вайн?
2 Кто-нибудь пробовальставить студию 2015 под вайн не веб-инсталлером, а с iso -образа?
Аноним 23/08/16 Втр 08:19:17 #195 №825542 
>>825474
ты ебанутый чтоли, это студио-уебище и на винде нинужно.
Аноним 23/08/16 Втр 13:07:36 #196 №825648 
>>825149
>Если поместить обе декларации (твою и шаблонную) в начало файла, то код хэдера может заюзать твою версию, чего никто не ждал. А так - пока идет хэдер, юзается стандартная, а дальше уже ты делаешь что хочешь.
Так если при одновременном объявлении твоего и стандартного появляется неясность, то почему эта неясность не появляется уже в твоём коде? То есть, допустим, в хедере выполнилась стандартная, потом ты заспециализировал свой темплейт и использовать функцию. Откуда сейчас компилятору знать, что использовать? В чём разница-то? То есть, если твоя функция вызывает неясность, то не так важно уже, когда она появится, компилятор всё равно должен ругаться, разве нет? Я, вероятно, не до конца понял описываемую ситуацию.
Аноним 23/08/16 Втр 15:53:03 #197 №825743 
>>825542
Ну не в notepad++ же писать
sageАноним 23/08/16 Втр 16:04:20 #198 №825759 
>>825743
Почему бы и нет?
Аноним 23/08/16 Втр 16:04:43 #199 №825761 
>>825743
Пиши в Qt Creator, поставь msvc, собирай через cmake.
Подставить в Qt Creator любое IDE
Аноним 23/08/16 Втр 17:29:06 #200 №825854 
>>825743
я в нем пишу и ебал я в рот ваши иде, хотя эклипс заебись
Аноним 23/08/16 Втр 18:44:44 #201 №825912 
>>825248
>Ну и возможности по байтоебству тут неисчерпаемые, от битовых полей вместр вектора до SIMD-инструкций, которые за пару тактов весь твой вектор свернут в бараний рог.
Можешь привести пример, как здесь применить SIMD-инструкции? Я ньюфаг в SIMD.
Аноним 23/08/16 Втр 18:47:30 #202 №825914 
>>825854
ты двойной говноед всего лишь.
Аноним 23/08/16 Втр 18:59:42 #203 №825923 
>>825914
Пишу в нано на арче, наслаждаюсь консолью и охуенными шрифтами. А вы говноеды. Не более.
Аноним 23/08/16 Втр 19:42:54 #204 №825947 
В use_factory создается shared_ptr на число, при этом счетчик ссылок на это число увеличивается. Указатель возвращается из функции, счетчик увеличивается еще раз, но уменьшается на 1 после выхода из функции use_factory. Указатель на число не сохраняется в функции main. Сколько будет ссылок на число и почему? В каком разделе стандарта об этом читать?

https://ideone.com/LuCMP8
Аноним 23/08/16 Втр 20:29:32 #205 №825994 
>>825761
Подставил Visual Studio 2015. Что дальше?
sageАноним 23/08/16 Втр 20:33:04 #206 №825995 
>>825947
Каких ещё "ссылок на число"? make_shared создаёт int на куче говна.
Аноним 23/08/16 Втр 20:38:21 #207 №825998 
>>825995
Ну указатель на память, которую аллокатор выделил под число, один хуй.
sageАноним 23/08/16 Втр 20:39:14 #208 №826000 
>>825998
И что ты хочешь от нас?
Аноним 23/08/16 Втр 22:30:10 #209 №826064 
>>826000
>Сколько будет ссылок на std::make_shared<int>(arg) и почему? В каком разделе стандарта об этом читать?
Аноним 24/08/16 Срд 01:50:47 #210 №826133 
Привет, я Кирилл, делаю 3д игру на плюсах для себя и из-за недостатка умений чувствую себя крайне неуютно. Я разбираюсь понемногу, вроде горячих вопросов у меня нет.
Но я хотел бы увидеть какие-нибудь примеры или коммьюнити тех, кто пишет подобное. Туториалы, гайды и лекции обычно или слишком общие расчитано на разработчиков другого софта с большим опытом или слишком специфичные одна фича, которую не очень понятно как аккуратно соединить с остальными.
Так вот, может у вас завалялись ссылки на исходники проектов 3d игр, созданных новичками. Лучше небольшие, грубые, недоделанные, незапускающиеся, третий год в разработке и так далее, если вы понимаете о чем я. Хотя бы просто чтобы посмотреть как другие делают. Я пытался вникнуть в коды квейк/дум, но там во-первых си, во-вторых столько оптимизации и макросов, что без гида не разобраться как это все вообще работает.
Аноним 24/08/16 Срд 02:42:18 #211 №826138 
Кто шарит, скажите, имеет ли смысл задавать выравнивание функторам? т.е если у нас такой функтор
struct Fun {
void operator()(...) { ... }
};

По-умолчанию у него размер 1 байт. Если добавить __attribute__((__aligned__(8))) то у него получается размер уже 8 байт. Имеет ли это вообще смысл по части увеличения производительности и улучшения кеширования?
Аноним 24/08/16 Срд 03:35:55 #212 №826142 
>>826138
1. зачем тебе функтор без членов? юзай функцию
2. никакого профита с выравниванием данных не будет --- у тебя же нет данных
Аноним 24/08/16 Срд 11:23:43 #213 №826246 
>>826133
В сети куча книг, как зделоть игру от и до - нет, хочу жрать чужой говнокод.
Аноним 24/08/16 Срд 12:11:19 #214 №826286 
>>826133
https://github.com/id-Software/DOOM
https://github.com/Croteam-official/Serious-Engine
Аноним 24/08/16 Срд 12:34:17 #215 №826302 
Антуаны, решил начать изучать С++ (будем считать, что с нуля), но есть небольшая проблема:
- я на вахту уезжаю на месяц, тырнетов там нет и есть только некронетбук. Есть ли какие-нибудь IDE, которые смогут поставиться на хрюшку 32 разрядную?
В гугле забанен.
Аноним 24/08/16 Срд 14:12:50 #216 №826366 
>>826246
Тебе не приходило в голову, что я параллельно читаю несколько книг, но на код все равно хочется посмотреть?
>>826286
Пробовал сам коду ид разобраться? К тому же у них не плюсы, а чисто си.
Аноним 24/08/16 Срд 14:15:53 #217 №826369 
>>826302
культя. кодеблокс, эклипс, хз, но может и clion взлетит
Аноним 24/08/16 Срд 14:23:14 #218 №826379 
14720377949300.jpg
Посоветуйте видеокурсы для вката, чтобы я одновременно качал бицуху и кресты.
sageАноним 24/08/16 Срд 14:24:21 #219 №826381 
>>826302
Ставь прыщи и вим, нахуй тебе иде.
Аноним 24/08/16 Срд 14:24:47 #220 №826382 
>>826286
Лол, дум 5 лет назад выложили, а чувство такое, что вчера об этом читал. Как же быстро я старею. Так и до появления модулей не доживу
Аноним 24/08/16 Срд 15:07:52 #221 №826424 
>>826302
msvc 6
Аноним 24/08/16 Срд 15:11:39 #222 №826430 
>>826302
notepad++ или vim, cygwin. прыщи не обязательно ставить, можешь накатить на хрюшку
Аноним 24/08/16 Срд 17:38:16 #223 №826540 
>>826430
>шиндошс
>ставь цыгвин
Лучше виртуалку с линуксом, в нем виртуалку с хп, а в ней цыгвин. Вот это тру будет ебать.
Аноним 24/08/16 Срд 17:40:24 #224 №826543 
>>826430
Я к тому, что человек вроде с языком хочет ознакомиться, а не с анальными методами прыщесборки. И авто дополнение с дебагером тут в тему будут, а нотепад можешь в жопу запихать.
Аноним 24/08/16 Срд 18:23:44 #225 №826576 
>>826540
Да хватит просто в виртуалке студию под вайном поднять.
Аноним 24/08/16 Срд 20:00:38 #226 №826603 
>>825912
Бамп вопросу. Хочу писать йоба-сортировки с использованием SIMD.
Аноним 24/08/16 Срд 23:02:42 #227 №826728 
Я в дедлоке с шаблонами.
В общем, есть шаблонная функция типа

template<typename InputIterator, typename OutputIterator
typename Foo = Bar<typename std::iterator_traits<InputIterator>::value_type>>
void my_function(InputIterator first, ..., OutputIterator out, Foo fun = Foo())
{ ... }

например я ее вызываю с аргументами по умолчанию:
my_function(v.begin(), v.end(), arr.begin());

все хорошо, но когда я хочу специлизировать параметр шаблона Foo, возникают проблемы - я не могу написать так:
my_function<MyFoo>(v.begin(), v.end(), arr.begin());
потому что первыми в шаблоне идет итераторы, но я не хочу писать специализацию к итераторам для того чтобы зада Foo
и я не могу поставить типа итераторов после Foo потому что дефолтная спецификация зависит от них.

Вопрос к знатокам: как быть?
Аноним 24/08/16 Срд 23:25:04 #228 №826760 
>>826366
Ну хуй знает. Самое современное из того, что я знаю с открытыми сырцами - UE4. Например, http://rutracker-pro.org/viewtopic.php?t=368955
Аноним 24/08/16 Срд 23:44:56 #229 №826782 
>>826728
Насколько я понял, тебе надо, чтобы одни аргументы шаблона выводились, а другие - нет? Напрямую так не сделать - если уж ты пишешь в вызове <...>, то вывод полностью отключается, и рассчитывать можно только на дефолтные параметры.

Для решения твоей задачи можно сделать так:
template<typename InputIterator, typename OutputIterator
typename Foo>
void my_function(InputIterator first, ..., OutputIterator out, Foo fun = Foo())
{ ... }
template <typename Foo>
struct MyFunctionManager
{
template <...>
void operator () (...) {return ::my_function <...> (...);}; //инлайновая обертка с идентичной сигнатурой, которая вызывает основную глобальную функцию
};
my_function(v.begin(), v.end(), arr.begin()); //в таких вызовах аргументы шаблона выводятся, поэтому дефолтные параметры вообще не нужны
MyGunctionManager <MyFoo> () (v.begin(), v.end(), arr.begin()); //а здесь получается "шаблон в шаблоне" ценой всего лишь в две лишние скобки - по производительности деградации не будет
Аноним 24/08/16 Срд 23:48:03 #230 №826785 
>>826782
Костыль уровня AbstractSingletonProxyFactoryBean, но ты молодец.
Аноним 24/08/16 Срд 23:51:53 #231 №826789 
>>826785
Если бы у тебя был шаблон класса, а не функции, то все бы решалось еще проще - просто через alias template, вложенный в шаблон с единственным параметром. Писалось бы TvoyaMamka <MyFoo>::my_function (...) без всяких дополнительных оберток. Поэтому если есть выбор, лучше всегда сделать шаблон класса и работать уже с его методами. Тогда можно делать частичную специализацию, синонимы и много другой полезной хуеты, которую нельзя с функциями.
Аноним 25/08/16 Чтв 01:02:38 #232 №826820 
>>826782
Спасибо за совет, но я уже решил это оберткой функцией в статический класс

то есть получается так:

template<typename T, typename Foo = Bar>
class A
{
public:
A() = delete;
template<typename InputIterator>
static void fun1(InputIterator first, ...);
};

вызывается все это как я и хотел: A<int, my_fun>::fun1(...)
Аноним 25/08/16 Чтв 22:18:39 #233 №827296 
Ананасы.
У меня вопрос не касательно языка, но всё же около него.
Мне нравится Qt creator (исключительно как IDE, то есть фреймворком Qt я не занимаюсь), но мне не ясна их политика лицензий.
Я так понимаю их лицензии касаются ПО в котором есть какие-то компоненты фреймворка Qt?
Аноним 25/08/16 Чтв 22:36:03 #234 №827308 
>>827296
Юзай Clion.
/thread
Аноним 25/08/16 Чтв 22:36:53 #235 №827310 
>>827308
> Юзай Clion.
640 Гб хватит всем. © JetBrains
Аноним 26/08/16 Птн 01:34:18 #236 №827454 
>>827296
Вроде да, у Qt Creator, по идее, должна быть отдельная лицензия. Если в ней не говорится о "только некоммерческом использовании", то можешь писать код без использования фреймворка, и все будет легально.
Аноним 26/08/16 Птн 01:35:24 #237 №827455 
>>827454
Отдельное EULA, в смысле.
быстрофикс
Аноним 26/08/16 Птн 06:18:26 #238 №827483 
14721815062800.jpg
Делаю N-Body симулятор под ЦПУ и ГПУ AMP не могу найти литературу по этой части, интересует как можно упростить расчеты, разбиение на ячейки и пр. Как N-body вообще переводится на русский язык?
http://pastebin.com/kgAdLp1p
sageАноним 26/08/16 Птн 06:32:24 #239 №827485 
>>827483
>N-body
многих тел
Аноним 26/08/16 Птн 06:37:45 #240 №827490 
14721826661340.jpg
14721826661371.jpg
>>827485
Аноним 26/08/16 Птн 06:40:01 #241 №827491 
>>827485
>>827490
А вот, всё.
https://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_N_%D1%82%D0%B5%D0%BB
Аноним 26/08/16 Птн 13:04:44 #242 №827665 
>>827483
Сам в юношестве делал на GPU такую симуляцию.
Вот хорошая статья https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch31.html
Аноним 26/08/16 Птн 18:24:21 #243 №827961 
Есть такое определение многомерного массива

int x[5][10];

Почему, когда я хочу передать этот массив в функцию, не важна первая размерность 5?

void VoidFunc(int arr[][10]);

Я понимаю, что запись int x[5][10] означает, что x - массив, состоящий из 510 элементов и занимающий 510sizeof(int) места. Но я никак не могу этого понять, не могу провести аналогию с простым массивом y[20] - например, мы передаем вообще указатель int, без указания вообще размеров этого массива. Но как это работает это с многомерными массивами?
Аноним 26/08/16 Птн 18:28:57 #244 №827964 
>>827961
>y[20]
а чем он от y[2][10] отличается?
Аноним 26/08/16 Птн 18:32:07 #245 №827968 
>>827964
Ну я в первом варианте не могу стукнуться к самому первому элементу вот так

y[0][0]

а во втором могу.
Это самое очевидное, что пришло в голову, а структура массива вроде бы, такая же
Аноним 26/08/16 Птн 18:41:02 #246 №827975 
Бамп вопросу
>>827961
Аноним 26/08/16 Птн 18:59:14 #247 №827988 
>>827975
Это просто разная форма описания куска памяти. Доступ y[6] превращается в y + 6, в другом случае y[6][3] превращается в y + 6*x + 3 где x одна из размерностей массива. Если x неизвестно, то хуй пойми как выполнять доступ к элементам этого массива по двум индексам. Поэтому в данном случае одну размерность при передаче в метод и надо указывать. По моему, как-то так. Для трехмерного массива наверняка надо две размерности указывать. Хотя я могу и наврать.
Аноним 26/08/16 Птн 19:16:53 #248 №828008 
>>827988
Немного не понял вот здесь:
>y[6][3] превращается в y + 6x + 3
x - это размерность вторая, типо например y есть y[10][15], тогда y[6][3] y + 615 + 3. Так. Тогда, если мы не передадим 15, действительно, неизвестно куда стукаться? Спасибо, анон, ты действительно мне помог, спасибо большое!
Аноним 26/08/16 Птн 19:19:35 #249 №828012 
>>828008
y есть y[10][15] (в определении массива), тогда y[6][3] y + 6*15 + 3.
быстрофикс
sageАноним 26/08/16 Птн 19:43:33 #250 №828042 
>>827961
Потому что массивы decay до указателей при передаче в функцию.
sageАноним 26/08/16 Птн 19:47:09 #251 №828045 
>>827961
>Но как это работает это с многомерными массивами?
Никакого отличия от одномерных. Когда у тебя массив T[D], то он передаётся как указатель на T. Т.е. int[10] передаётся как указатель на int.
В случае с т.н. многомерным массивом тип T это массив размерностью на единицу меньше. Т.е. для int[5][10] тип T это int[10]. Вот он и передаётся как указатель на int[10]

Ещё раз: никакого отличия от одномерных.
Аноним 26/08/16 Птн 19:57:44 #252 №828058 
>>828042
но тогда если decay до указателей, тогда твой ответ неверный: такой массив, например

int x[5][2];

я не смогу передать таким образом в функцию

void VoidFunc(int*);

VoidFunc(x);

sageАноним 26/08/16 Птн 20:00:40 #253 №828064 
>>828058
>тогда твой ответ неверный
Он верный, просто ты нихуя не понимаешь, как распадается многомерный массив до указателя. До указателя на ЧТО он распадается. См. мой следущий мессадж.
sageАноним 26/08/16 Птн 20:12:01 #254 №828073 
>>828058
Если тебе так трудно выучить правила чтения определения типа в C/C++, возьми и посмотри, во что std::decay превратит твой int[5][2]

И потом хорошо подумай, почему это верно. Почему это согласуется и с layout-ом массивов в памяти, и с арифметикой указателей, и с правилом array-to-pointer decay. И как правильно читать определение типа многомерного массива.
Аноним 26/08/16 Птн 20:16:43 #255 №828076 
>>828073
Ни в коем случае не хотел тебя оскорбить, если что. Сейчас допишу я вообще хуесос
Аноним 26/08/16 Птн 20:33:03 #256 №828105 
>>828042
Ты можешь сказать, КАК распадается массив до указателя. Ты написал вот что:
>Потому что массивы decay до указателей при передаче в функцию.

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

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

Все работает как сказал чувак в >>828045 посте?

Аноним 26/08/16 Птн 20:33:48 #257 №828107 
>>828105
>КАК распадается многомерный массив

фикс
sageАноним 26/08/16 Птн 20:35:08 #258 №828110 
>>828105
>Все работает как сказал чувак в >>828045 посте?
Кагбэ "чувак" это и есть я. Я же написал, читай мой следующий мессадж. Следующий за тем, на который ты ответил.
sageАноним 26/08/16 Птн 20:40:17 #259 №828116 
>>828058
http://ideone.com/yHEV1N раз
http://ideone.com/npKCcE два

Два не компилируется специально, чтобы компилятор показал тип в сообщении об ошибке.

Вот теперь подумай, какая должна быть сигнатура у функции, чтобы туда можно было передать int[5][2]
Аноним 26/08/16 Птн 20:44:47 #260 №828127 

>>828110
Еще раз хочу акцентировать внимание, если тебе показалось что я хочу тебя задеть - это не так. Спасибо, реально спасибо, что тратишь на меня время.
Аноним 26/08/16 Птн 20:45:45 #261 №828129 
>>828116
>int[5][2]
Какой же ты говноед. и лабодаун
Аноним 26/08/16 Птн 20:50:32 #262 №828140 
>>828116
ебать как там все сложно с темплейтами.

Ясен хуй, надо передавать int [][2], это я понял из ответа >>827988


Аноним 26/08/16 Птн 20:50:47 #263 №828142 
Поясните, почему если int поделить самого на себя, то получается не 1, а если double, то 1?
Аноним 26/08/16 Птн 20:51:07 #264 №828144 
>>828129
Хули тебе блядь не нравится? Скажи блядь, заебал, хули выебываешься?
sageАноним 26/08/16 Птн 20:52:04 #265 №828147 
>>828142
Так угодно Аллаху
Аноним 26/08/16 Птн 20:52:55 #266 №828148 
>>828147
Нет, ну правда?
Аноним 26/08/16 Птн 20:52:58 #267 №828149 
>>828142
Если инт поделить самого на себя то будет 1
sageАноним 26/08/16 Птн 20:53:11 #268 №828151 
>>828147
Ну здравствуй, вниманиемразь. Я тебя не забыл.
сагу сними, аутист.
sageАноним 26/08/16 Птн 20:53:34 #269 №828152 
>>828140
Суть второй ссылки была в том, что int[5][2] это кагбэ (int[2])[5]
sageАноним 26/08/16 Птн 20:54:11 #270 №828153 
>>828151
Ты, наконец, понял, что const means thread-safe?
Аноним 26/08/16 Птн 20:55:47 #271 №828156 
>>828152
ебать, блядь, я чето не успел даже разобраться пока. Нихуя себе, с хуя ли это так... пдзц
Аноним 26/08/16 Птн 20:56:40 #272 №828159 
14722342008340.png
>>828149
Вот, если инт, то почему-то выводится 100 и 99, например. А если дабл, то ок.
Аноним 26/08/16 Птн 20:58:47 #273 №828163 
>>828159
пиздец, я считаю себя дауном (это я тут ебусь насчет массивов) но ты пиздец, очевидно в строке

(i/j==1)

косяк, по выводу и так ясно, что работает это у тебя так

(i/(j==1))

В скобки деление заверни
Аноним 26/08/16 Птн 20:59:34 #274 №828165 
>>828163
или я неправ, похуй, написал через секунду после того как увидел пост
sageАноним 26/08/16 Птн 21:00:08 #275 №828166 
>>828165
>или я неправ
Тут можешь не сомневаться: не прав.
sageАноним 26/08/16 Птн 21:00:23 #276 №828167 
>>828153
Я в том параде дегенератов и не участвовал - ты меня с кем-то путаешь.



Аноним 26/08/16 Птн 21:00:36 #277 №828168 
>>828166
Поясни тут: >>828159
sageАноним 26/08/16 Птн 21:01:47 #278 №828171 
>>828167
Тогда в чём проблема, мразь? Чай будешь?
sageАноним 26/08/16 Птн 21:03:29 #279 №828172 
>>828168
Ну при целочисленном делении округляется в сторону меньшего. 100/75 = 1.(3), что есть единица в целочисленной арифметике.
Аноним 26/08/16 Птн 21:04:19 #280 №828174 
Блядь, пиздец, ало че за хуйня вот тут в первой ссылке? >>828116

Это каким хуем там 5? И вообще это законно? Как это работает? Почему темплейт схавал [5][2] как просто [5]? Это как вообще? Что почитать, чтобы перестать быть такой необразованной мразью?
Аноним 26/08/16 Птн 21:07:32 #281 №828175 
>>828172
Cпасибо, понял. Тогда юзаю дабл?
sageАноним 26/08/16 Птн 21:26:57 #282 №828198 
14722360172920.png
>>828174
Аноним 26/08/16 Птн 21:29:00 #283 №828200 
>>828198
Это не ответ. Это я и так понимаю
sageАноним 26/08/16 Птн 21:30:16 #284 №828202 
>>828200
А что "ответ"?
Аноним 26/08/16 Птн 21:37:02 #285 №828215 
>>828202
Сори, бля я тупой пиздец. Получается, если
x[5][2] - это array 5 of array 2 of int,
то в аналогии, что array N of int преобразуется при передаче в функцию как int, то
x[5][2] преобразуется как int
x[2] ? Это правильно?
Можно еще вопрос? Где это говно, прочитать из нормальных источников?

Расскажи еще о себе? Как стал таким пиздатым?в плюсах
Аноним 26/08/16 Птн 21:37:33 #286 №828216 
>>828215
разметка ебаная, в int\*!
sageАноним 26/08/16 Птн 21:39:50 #287 №828219 
>>828215
> Это правильно?
Ещё скобки нужны. int (*x)[2]
sageАноним 26/08/16 Птн 21:43:12 #288 №828222 
>>828215
>Где это говно, прочитать из нормальных источников?
http://unixwiz.net/techtips/reading-cdecl.html
Аноним 26/08/16 Птн 21:46:39 #289 №828227 
>>828219
Получается, преобразуется в массив указателей на 2 aka int (x)[2] а не указатель на массив из двух int x[2]? Почему так? Где почитать мануал об этом?
Аноним 26/08/16 Птн 21:47:29 #290 №828230 
>>828222
это я знаю, как читать типы. Разве там есть, как преобразуются типы при передачу в функции?
Аноним 26/08/16 Птн 21:47:35 #291 №828231 
>>825912
Слоуответ.
Ну, самое простое это прямо с вектором байтов (без битовых полей, чтобы на каждое число было по байту). Вот тут https://software.intel.com/sites/landingpage/IntrinsicsGuide/, например, референсы для Intel, при помощи функций с ...add... в имени можно сделать, чтобы, скажем, 16 байтов сложились в один при помощи единственной векторной инструкции. Соответственно, производительность может вырасти на порядок.
Аноним 26/08/16 Птн 21:48:38 #292 №828233 
>>828227
БЛЯДЬ СКА ВАКАБА ГДЕ МОИ ЗВЕЗДАЧКИ ПИДОООР
Аноним 26/08/16 Птн 21:49:28 #293 №828235 
>>828227
фикс, первое это указатель на массив из двух, а второе массив из двух указателей
sageАноним 26/08/16 Птн 21:49:38 #294 №828236 
>>828227
>Получается, преобразуется в
Наоборот. Но для надёжности напиши на past ebin-t
>>828230
> как преобразуются типы при передачу в функции?
ARRAY TO POINTER DECAY, сколько раз можно писать.
Аноним 26/08/16 Птн 21:51:15 #295 №828238 
>>828156
Грамматика такая. Гугли right-left rule.
Аноним 26/08/16 Птн 21:53:25 #296 №828239 
Ребята, спасибо всем, я тот уебак который заебал тут всех с массивами. Большое спасибо!
Аноним 26/08/16 Птн 21:54:01 #297 №828240 
14722376414010.jpg
>>828149
int x = 0; x/=x;
Аноним 26/08/16 Птн 21:54:10 #298 №828241 
>>828238
да блядь, это хуйня, как читать названия я знаю, как происходит "decay" съебался гуглить
Аноним 26/08/16 Птн 21:54:50 #299 №828243 
>>828240
ой блядь, ебаный в рот смищно пошутил, мое увожение
sageАноним 26/08/16 Птн 21:55:44 #300 №828244 
>>828241
> как происходит "decay" съебался гуглить
Что там гуглить. "array N of T" превращается в "pointer to T"
Аноним 26/08/16 Птн 21:57:12 #301 №828245 
>>828244
блядь, ты тред читал? А array N of array M во что превращается?
Аноним 26/08/16 Птн 21:58:06 #302 №828247 
>>828243
Из-за таких как ты, сука, потом ракеты падают, а рентгеновские аппараты убивают пациентов.
sageАноним 26/08/16 Птн 21:58:55 #303 №828249 
>>828245
> А array N of array M во что превращается?
> "array N of T" превращается в "pointer to T"
Что неясно?
Аноним 26/08/16 Птн 21:59:14 #304 №828250 
Я давно подзабросил изучение С++, но сегодня я вернулся, даже 1 задачку с учебника страуструпа по вычислению простых чисел сделал - я молодец!
Аноним 26/08/16 Птн 21:59:35 #305 №828251 
14722379752320.png
>>828249
все, я еблан, убей меня

с пика понял все
Аноним 26/08/16 Птн 22:24:36 #306 №828281 
>>828175
Тогда юзаешь оператор взятия остатка от деления.
if (i % j > 0) ...
Аноним 26/08/16 Птн 22:28:10 #307 №828284 
>>828281
> if (i % j == 0) ...
Фикс.
26/08/16 Птн 22:42:47 #308 №828297 
Хотелось бы обратить ваше внимание, что макаба написана на C++. Впрочем, не только макаба, но и вообще все сервисы, такие как капча, мобильное апи и т.д.
Любите C++, ребятки. И когда php блядь кодер вылезет кукарекнуть сказать что-нибудь про свой любимый язык, просто напомните ему его место.
(Автор этого поста был предупрежден.)
Аноним 26/08/16 Птн 22:44:32 #309 №828301 
>>828297
Ах ты пидор, ты правила не чилал? тебе нельзя появляться и что-то говорить.
Аноним 26/08/16 Птн 22:45:39 #310 №828303 
>>828297
А почему капча не на пхп?
Аноним 26/08/16 Птн 22:47:33 #311 №828306 
>>828297
> Хотелось бы обратить ваше внимание, что макаба написана на C++
Может быть стоит как-то помочь родной макабе если есть какие-то интересные задумки, м?
sageАноним 26/08/16 Птн 22:48:35 #312 №828310 
>>828297
Вот так детки, выглядит эталонная вниманиеблядь, вахтер и утенок в одном флаконе. Сути поста 0, зато плашечкой посветил.
Можешь банить, лолка, мне похуй
Аноним 26/08/16 Птн 22:49:09 #313 №828311 
>>828297
>Хотелось бы обратить ваше внимание, что макаба написана на C++
Оно и видно, кек. Твой пост звучит как "Иван Залупин окончил только колледж и создал Одноклассники.ру".
perl-monk
Аноним 26/08/16 Птн 23:14:15 #314 №828344 
>>828311
Что сказать-то хотел?
Аноним 26/08/16 Птн 23:24:36 #315 №828349 
9 лет с нуль.чика кун
Аноним 26/08/16 Птн 23:26:50 #316 №828353 
>>828250
Молодец. Когда нормально вкатишься как раз модули завезут.
Аноним 26/08/16 Птн 23:30:22 #317 №828359 
>>828349
>9 лет с нуль.чика кун
Представь ситуацию. Господа в смокингах и цилиндрах сидят в обедне и пьют чай, обсуждая катаморфизмы, анаморфизмы, параморфизмы наконец. Тут к ним вползает пьяный вдрызг кучер Ванька. Отплевывая лошадиный навоз, он ссыт под себя, одновременно блюя на пол прокисшим борщом. Затем достает задроченный томик Александреску, найденный на помойке. "Modern C++ Design - вот где мыслЯ, блеать, вот где красота и свежесть!". Смеясь, господа растегивают ширинки и мочатся быдлу в рот. Зовут дворника Ваську - местного лисп-задрота, он спускает крестохолопа с лестницы. Он делает это с удовольствием - хоть зачем-то сгодился элите. Поднимаясь за похвалой, он начинает зациклено бормотать про жидов. Господа для острастки ссут на него, после чего возвращаются к своим светским беседам.
Аноним 27/08/16 Суб 03:46:35 #318 №828476 
>>827665
Благодарствую.
Аноним 27/08/16 Суб 12:44:05 #319 №828612 
Пусть у меня в классе описаны деструктор, конструктор по умолчанию MyClassInt(int x=0), конструктор копирования, operator= копирующий, конструктор перемещения, operator= перемещения. Пусть еще описан метод
friend MyClassInt operator+(const MyClassInt&, const MyClassInt&). Рассмотрим следующий код

MyClassInt x{5};
MyClassInt y{1};
MyClassInt z = (x+y);

Я во всех описаниях сделал принты, соответственно я увидел, что тут сработают три дефолтных коструктора, хотя я ожидал увидеть:
два вызова дефолтных, + еще один вызов дефолтного (для результата оп+) и мув коструктор.
Что за хуйня? Почему так? Где прочитать как и когда вызываются конструкторы, четкие правила, когда и как вызываются конструкторы?
Аноним 27/08/16 Суб 13:47:49 #320 №828634 
Если у меня есть объект функтор
struct Functor
{
void operator()(int& i)
{
i = 0;
}
};

int main() {

while(1)
{
Functor f;
int j = 1;

f(j);
}
return 0;
}

будет ли он каждый выделять память при создании в цикле или будет просто опущено создание объекта и напрямую вызвана функция ()?
Аноним 27/08/16 Суб 14:14:54 #321 №828653 
>>828612
Это что, платиновый пост? Уже в каждом втором треде всплывает вопрос про copy elision. Неужели так сложно открыть стандарт и прочитать пункт 12.8/31?
Аноним 27/08/16 Суб 14:28:21 #322 №828664 
>>828634
В рамках описанной стандартом C++-машины каждый собственный (не являющийся объектом базового класса) объект занимает не менее одного байта в memory storage. Таким образом, у твоего функтора внутри цикла будет выделена память (и он будет иметь адрес).

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

Но это в рамках формальной модели. Для реализаций же стандарт имеет as if rule. Оно разрешает реализации делать все что угодно, если наблюдаемое поведение (грубо говоря, ввод и вывод программы) соответствует формализованному. Поэтому, например, в твоем случае все эти функторы могут находиться в одной области памяти, или вообще не иметь выделенной памяти, пока ты явно не начнешь использовать в них члены-данные, или даже весь код может удалиться, раз программа ничего не выводит. Фактически большинство компиляторов сделает ту или иную оптимизацию, в зависимости от настроек компиляции.
Аноним 27/08/16 Суб 14:49:23 #323 №828688 
>>828664
Спасибо за развернутый ответ. Я смотрел диссассемблер и действительно
>эти функторы могут находиться в одной области памяти, или вообще не иметь выделенной памяти, пока ты явно не начнешь использовать в них члены-данные

Пустой функтор не вызывает конструктора по умолчанию и ничего не делает а просто вызывается функция по статическому адрессу, а как только я добавил в структуру переменные, то конструктор функтора стал вызываться и все сопутствующие ему выделения памяти.
Аноним 27/08/16 Суб 15:01:43 #324 №828695 
>>828653
Спасибо брат, ты мне помог!
Аноним 27/08/16 Суб 16:47:37 #325 №828766 
Так у меня вопрос. Читаю concurrency in action и там говорится что std::async может сама решать выполнять тред параллельно или нет, т.е библиотека поидее должна создавать ровно столько потоков сколько доступно на железе, например на моем i7 доступно аппаратных потоков, но когда я рекурсивно запускаю std::async(f) то у меня создается дохуяища потоков (2к+) которые просто висят. При этом если я юзаю Intel TBB
parallel_invoke в той же рекурсии то все работает нормально и создается ровно 8 потоков, независимо от глубины рукурсии.

Вот и вопрос как сделать с std::async, std::future тоже самое?
Аноним 27/08/16 Суб 17:01:20 #326 №828790 
Двач, хочу немного пошалить.

Тезис: есть лабы, которые нужно сделать (а-ля имплементить бинарное дерево или что-то подобное, не суть). На сях, разумеется. Код для проверки будем отправлять своему ТА (Teacher Assistant) c указанием где и как его компилить и запускать, что он, в последствие, и будет делать (компиляция предполагается через g++). В общем, я хочу немного похакерствовать. Что-нибудь достаточно простое, например просто встроить в код доп. функцию, которая соберёт некоторое количество инфы о его системе (какая у него система, линь, винда или макось - я не знаю) и отправит мне на сервер. Ничего серьёзного и сильно подлого. Так вот, какую инфу о системе можно собрать силами С++ (без режима рута, разумеется). Или скажите, хотя бы, как в плюсах выполнить произвольный код в консоли из программы (а-ля shell_exec в php)?
Аноним 27/08/16 Суб 17:17:58 #327 №828808 
>>828766
>std::async
Просто не пользуйся этим.
Аноним 27/08/16 Суб 17:19:20 #328 №828810 
>>828790
> отправит мне на сервер
Интересно, как ты собрался это делать.
Аноним 27/08/16 Суб 17:19:53 #329 №828812 
>>828810
А в чём здесь, собсно, проблема?
Аноним 27/08/16 Суб 17:21:15 #330 №828818 
>>828812
В том, что твой код будет работать в песочнице, из которой ты не откроешь никакого соединения и даже файла.
Аноним 27/08/16 Суб 17:23:20 #331 №828821 
>>828818
Лол, с чего ты взял?
Аноним 27/08/16 Суб 17:44:14 #332 №828840 
Анон, как заксорить всю строку, чтобы залить программу с ней на вирустотал? https://ideone.com/rmveEz

Похоже, что некоторые байты этой строки рассматриваются как эскейп-последовательности.
Аноним 27/08/16 Суб 17:55:23 #333 №828847 
>>828840
Заменить единственный обратный слеш на двойной (\\).
Аноним 27/08/16 Суб 18:01:06 #334 №828850 
>>828847
Не помогает. Последовательность после ксора почти в два раза короче исходной.

https://ideone.com/UHFtNW
Аноним 27/08/16 Суб 18:16:15 #335 №828863 
>>828818
Лол, ты ебанутый?
Аноним 27/08/16 Суб 18:20:38 #336 №828869 
>>828850
Представь себе, существуют непечатаемые символы.
Аноним 27/08/16 Суб 18:30:03 #337 №828883 
>>828790
Если учитель продвинутый, то он, конечно использует песочницу, как говорит >>828818-кун. Так сделано в том же ejudge, например. Но часто препод бывает алтимейт совком, который вообще ничего не слышал про ИБ, и запустит он твой код на какой-нибудь хрюше из-под DevCpp. Так что попробовать можно.

За никсы не скажу, но на венде все предельно просто. Весь подозрительный код пихаешь в дллку, которую называешь наподобие msvc311.dll, гришь, что это рантайм от твоего компилятора. В коде дергаешь функцию оттуда с каким-нибудь неподозрительным названием, которая будет делать всю работу. Гуглишь доки к winapi, через его вызовы реализуешь скачивание (со своего или официального сервера) nir commander в какую-нибудь глубокую папку внутри appdata. Записываешь в строку прямо внутри dll текст батника с нужными командами nircmd (там их дохуя - можно грабить пароли, узнать полную инфу о системе, выдвинуть дисковод etc), который потом выводишь в .bat внутри той же папки. Запускаешь батник на исполнение в новом процессе, все. Отправить результаты назад можно прямо из батника, в nircmd есть для этого команды.
Аноним 27/08/16 Суб 18:57:25 #338 №828908 
Интересно. Удалось снизить детект антивирусов с 11 до 2. Кспермский не кукарекнул, зато мой кодес задетектили два каких-то ноунейм бича Инвинсиа и Киху.

https://ideone.com/pPRUJ0

И странно то, что несмотря на расшифровку эйкар-последовательности без применения антиэмуляции, на мою расшифровывающую программу среагировали не все антивирусы. Но на текстовик с эйкар среагировали все. С антиэмуляцией почти никто не среагировал.
Аноним 27/08/16 Суб 19:11:10 #339 №828917 
Алсо, на вирустотале могут забанить подсеть за тестирование малвари?
Аноним 27/08/16 Суб 20:03:58 #340 №828971 
Господа, как лучше писать криптор: по принципу упаковщика, который криптует секцию кода, дописывает декриптор в конец и передает ему управление при запуске, или по принципу джойнера, к которому прицепляется зашифрованный экзешник, а в лоадере джойнера используется антиэмуляция?

Думаю над второй реализацией. Лоадер расшифровывает прицепленный экзешник и запускает. Как реагирует антивирус на этот запуск? Сначала запускает экзешник на своей виртуальной машине и проверяет сигнатуры?
Аноним 27/08/16 Суб 20:48:56 #341 №828999 
>>825854
>>825854
Говно без задач и с настройками через жопу из коробки
Аноним 27/08/16 Суб 21:13:12 #342 №829007 
>>828883
Препод не сказать, что не продвинутый, но по поводу ИБ париться не будет почти точно (молодой парень преподаёт). Вообще я как-то забыл посмотреть на паре какой у него ноут, но есть не маленькая вероятность, что МакОС ибо у нас вообще у многих преподов маки.
Ну и у него точно не древняя винда. Энивей, спасибо за ответ.
Аноним 27/08/16 Суб 22:18:24 #343 №829049 
>>829007
Древняя венда отличается от недревней только тем, что в новой ты сможешь работать только в рамках прав запущенного процесса, без рута, даже если он работает под рутом. Но считать, скажем, содержимое пользовательской папки ты сможешь в любом случае, а все самое интересное как раз там.

Для других осей все примерно так же, даже еще проще из-за практически гарантированного отсутствия антивируса, который может сагриться на подобное поведение. Легче всего сделать отдельные функции для каждой системы (Windows и POSIX-совместимых), и автоматически выбирать между ними при компиляции через #ifdef и макрос OS_WINDOWS (который есть только в венде).
Аноним 27/08/16 Суб 22:27:57 #344 №829057 
>>829049
>Легче всего сделать отдельные функции для каждой системы (Windows и POSIX-совместимых), и автоматически выбирать между ними при компиляции через #ifdef и макрос OS_WINDOWS

Да, я примерно об этом и думал.
Аноним 27/08/16 Суб 22:48:58 #345 №829069 
>>822728
А зачем им брать дорогого крестовика, когда могут взять более дешевого быдлокодера?
Аноним 28/08/16 Вск 02:38:40 #346 №829162 
>>828766
>Вот и вопрос как сделать с std::async, std::future тоже самое?
Явный планировщик с пулом потоков, явный запуск задач на планировщике.
Аноним 28/08/16 Вск 15:35:18 #347 №829505 
С какими флагами надо компилировать на clang чтоб была максимальная совместимость с gnu gcc? То есть чтоб не было отсутвующих хедеров, разных type castov и т.п, чтоб можно было писать под clang и не заморачиваясь прям из коробочки билдить на gcc?
А то я столкнулся с такой проблемой написав проект на цланге, который не компилируется без костылей на гцц...
Аноним 28/08/16 Вск 15:50:09 #348 №829517 
Анон, почему этот код крашится? Что не так с освобождением памяти? Ведь нулевой указатель можно освободить.

https://ideone.com/TY2Iic
 Аноним 28/08/16 Вск 15:54:38 #349 №829525 DELETED
>>829505
Они почти полностью совместимы между собой, компилируй с обычными флагами, выбери поколение процессора, выбери -O2 и ворнинги все включи.
Аноним 28/08/16 Вск 15:55:15 #350 №829527 
>>829517
>Ведь нулевой указатель можно освободить.

Ноуп
Аноним 28/08/16 Вск 15:56:31 #351 №829530 
>>829527
Йеп.
Аноним 28/08/16 Вск 15:56:56 #352 №829531 
>>829517
Ты два раза освобождаешь. В первый раз вручную, второй раз освобождает shared_ptr
Аноним 28/08/16 Вск 16:11:27 #353 №829541 
>>829505
Я думаю, если не использовать блоки, то они полностью совместимы.

Недавно столкнулся с тем, что то, что компилируется шлангом не компилировалось g++. Оказалось, это известный language issue и шланг с g++ ведут себя по-разному, т.к. стандарт невнятно оговаривает поведение. Пришлось чуть переписать одну строку (с инициализации с помощью = на brace initialization) чтобы стало компилироваться и там, и там.
Аноним 28/08/16 Вск 16:13:07 #354 №829544 
>>829517
>>829531
Предвидя вопрос "как отобрать указатель у shared_ptr?": никак.
Аноним 28/08/16 Вск 17:58:29 #355 №829619 
Как вывести определенное количество знаков после запятой, если перед запятой оно может быть любым? setprecision в этом случае не помогает.
Аноним 28/08/16 Вск 18:12:45 #356 №829632 
>>829619
Сам спросил - сам отвечу.
cout << fixed;
cout.precision(n);
Аноним 28/08/16 Вск 18:23:15 #357 №829637 
>>829593
Не планируй, пиши браузер прямо сейчас - потом не напишешь, останешься макакой на всю жизнь.
Если напишешь наскоряк хрень с асинхронной тред-базед продгрузкой страниц и поддержкой расширений, тебя возьмут куда угодно, даже если рендерятся нормально только половина страниц.
Дерзай.
Аноним 28/08/16 Вск 18:49:41 #358 №829670 
>>829541
>известный language issue
Можно ссылочку?
Аноним 28/08/16 Вск 18:54:07 #359 №829680 
>>829670
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#325 промотай в конец, до Notes from the August, 2011 meeting. На этот случай с инициализацией мембера шаблоном я наткнулся.
Аноним 28/08/16 Вск 19:59:09 #360 №829737 
Есть куча классов, все находятся в одном .h-файле. Имя каждого класса начинается с нижнего подчеркивания.(например: _classname). После импелментации каждого класса идет тайпдеф: "typedef _classname classname;". В заголовочного файла идет подключение .inl-файла, в нем реализация этих классов. В чем фейл: Несмотря на тайпдефы, юзание classname в последующих классах не дается. intellisense тупо не распознает тип(classname). Раз тип начинается с нижнего_подчеркивания, а последующий симол в нижнем регистре, значит, класс по-умолчаню будет находится в глобальном неймспейсе? Только влияет ли оно? Пробовал переименовать classname в рандомный набор букв, ну и подставить где надо соответственно. И ошибок небыло. Что за хуйня!
Аноним 28/08/16 Вск 20:05:59 #361 №829743 
>>829737
> Раз тип начинается с нижнего_подчеркивания, а последующий симол в нижнем регистре, значит, класс по-умолчаню будет находится в глобальном неймспейсе?
Слышал звон, да нихуя не понял.
Аноним 28/08/16 Вск 20:27:11 #362 №829759 
>>829743
http://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-a-c-identifier
sageАноним 28/08/16 Вск 20:30:53 #363 №829762 
>>829759
Я тебе про это и говорю, что ты нихуя не понял.

Такие имена зарезервированы для определённых мест. Но это не значит, что если ты так назовёшь, то твои классы в эти места попадут.
Аноним 28/08/16 Вск 20:43:36 #364 №829774 
>>829762
Спасибо за инфу. А что насчет конкретно моей траблы?
sageАноним 28/08/16 Вск 22:15:59 #365 №829869 
Гутен таг гоям.

Почему если определён move-constructor,
то синтезированный copy-constructor будет deleted?
Аноним 28/08/16 Вск 22:27:30 #366 №829881 
>>829869
Потому что rule of five. Считается, что если ты кастомизируешь хотя бы одну из пяти операций (копирование, перемещение, конструктор копирования, конструктор перемещения, деструктор), то с классом нельзя работать дефолтно (например, из-за членов-дескрипторов или еще чего-то), поэтому оставшиеся операции удаляются, чтобы ты не мог выстрелить себе в ногу.
Аноним 28/08/16 Вск 22:27:57 #367 №829882 
>>829680
Спасибо, няша.
Аноним 28/08/16 Вск 22:57:52 #368 №829916 
Я не вижу логики здесь. Почему бы тогда просто не выдавать ошибку компиляции, если был определен только часть из этого набора?
Аноним 28/08/16 Вск 22:58:20 #369 №829917 
>>829881
829916
Аноним 28/08/16 Вск 23:00:32 #370 №829923 
>>829916
А что, тебе не выдаётся ошибка компиляции, когда ты пытаешься воспользоваться удалёнными методами?
Прата 28/08/16 Вск 23:11:19 #371 №829936 
14724150800660.jpg
поясните,плиз, почему в первом шаблоне аргумент - адрес (&a),а во втором - указатель (*a)? И как не запутаться?
http://ideone.com/AzHnfm
Аноним 28/08/16 Вск 23:12:02 #372 №829937 
>>829923
Раньше выдавалась, но я обновился до Windows 10, теперь всё нормально
Аноним 28/08/16 Вск 23:15:03 #373 №829940 
>>829936
>адрес
>(&a)

Кик
Зато понаписал шаблонов и оверлоадингов
Аноним 28/08/16 Вск 23:35:46 #374 №829970 
14724165471290.png
Всё, с меня хватит.
Идите на хер с вашим программированием.
неосилятор
Аноним 28/08/16 Вск 23:54:31 #375 №829974 
>>829970
Слабовато для крестотреда, местных даже http://ideone.com/uTBv1S не смущает.
Аноним 29/08/16 Пнд 01:53:33 #376 №830040 
>>829970
Сейчас бы метод класса вне его видимости не определить
Аноним 29/08/16 Пнд 05:35:43 #377 №830079 
Почему в шапке не указаны QtCreator и KDevelop, студия не нужна а под ней какая-то параша указана.
Аноним 29/08/16 Пнд 07:08:11 #378 №830085 
>>830079
Потому что в шапке работающие IDE, а не говноподелия.
Аноним 29/08/16 Пнд 08:02:22 #379 №830102 
>>830085
>говноподелия
Причём здесь Windows? Ещё Code::Blocks кстати неплох, но в первых автодополнение и организация проектов лучше. Студия зашквар, под MSVC нужно переделывать все исходники и в нормальные проекты такое не пропустят.
Аноним 29/08/16 Пнд 08:31:24 #380 №830104 
>>830102
Нахуя тебе переделывать исходники, лол? Нормальные проекты пишутся нормальными командами, с пачкой студий и TFS в комплекте. Швадобные нищепроекты пишутся на гнутых тулчейнах. Пересечения у этих экосистем практически нет, просто не нужно подменять понятия.
Аноним 29/08/16 Пнд 10:04:19 #381 №830125 
>>829970
Из какой книги скрин?
Аноним 29/08/16 Пнд 11:18:21 #382 №830169 
>>830104
Как там в нулевых?
Аноним 29/08/16 Пнд 15:57:39 #383 №830416 
>>830125
"С++ без страха".
Аноним 29/08/16 Пнд 16:07:36 #384 №830427 
>>830102
Я нюфаня, но мне code blocks тоже очень понравилась, правда сравнить могу только с code lite.
Кстати да, а почему её в шапке нет?
Аноним 29/08/16 Пнд 16:24:22 #385 №830439 
>>830169
Заебись, купил с последней зарплаты телефон с сенсорным экраном.
Аноним 29/08/16 Пнд 16:57:56 #386 №830467 
>>829974
Что это за пиздец?
Аноним 29/08/16 Пнд 19:07:22 #387 №830559 
>>830467
Это корректный в C++14 код.
Аноним 29/08/16 Пнд 20:35:43 #388 №830663 
>>830559
Ахуеть, на сколько же надо боятся легасиговна (причем такого, которое рефакторится за 10 минут в очень большом проекте 1 грепом) чтобы не зарезервировать ключевое слово языка...

Я подобные хуйню до этого видел только на хабре в срамах про добавление вывода типов в жяву: там разработчики реально трясутся что если добавить кейворд var в язык это доху всего сломает.
Аноним 29/08/16 Пнд 21:03:02 #389 №830697 
>>829974
Блядь, где об этом говне читать?
Аноним 29/08/16 Пнд 22:22:07 #390 №830823 
>>829974
Поясните что означает эта конструкция: final: final final {final};
Интересует именно херня с двоеточием
Аноним 29/08/16 Пнд 23:18:14 #391 №830859 
>>830697
Я придумал эту хуйню, когда прочитал в стандарте про идентификаторы со специальным значением.
>>830823
Помеченная меткой final локальная переменная класса final с именем final, инициализированная сама собой. using final = final нужен для большего устрашения, чтобы показать, что в контексте инициализатора имя инициализируемой переменной перекрывает имя класса, если явно не делать elaborated объявление.
Аноним 29/08/16 Пнд 23:27:36 #392 №830862 
>>830859
http://ideone.com/fsq6MA
Полная дрянь, яннп. Я одиннадцатый стандарт то не докурил, а тут ещё этот пиздец. Можно на собеседованиях показывать, лол.
Понимаешь, нахуя такой вывод происходит?
Аноним 29/08/16 Пнд 23:40:19 #393 №830869 
>>830862
Ну очевидно же. В деструкторе создается локальная переменная типа, который удаляется, вызывается ее деструктор, в котором создается локальная переменная... Получается банальное переполнение стека. Самый внешний файл ты создаешь своим конструктором, с i==0, выводится 0. Для всех остальных (которые создаются в деструкторах) юзается конструктор копирования из неинициализированного создаваемого объекта, поэтому в i мусор.
Аноним 29/08/16 Пнд 23:42:54 #394 №830871 
>>830869
>самый внешний объект
Очевидный самофикс.
Аноним 30/08/16 Втр 07:51:09 #395 №830972 
>>830859
А, бля, просто метка. Я уж было испугался, что это какая-то новая неведомая дичь
Аноним 30/08/16 Втр 09:47:49 #396 №831017 
Шел 2016 год, а лалки все не знали про дамп ast у clang'а
koshmarik uzhasny 30/08/16 Втр 11:04:58 #397 №831050 
Сап крестоносцы, гутен морган, кун 32 лвл, холост, слегка бородат. Имею вопрос по геолокации а преыстория вот в чем:
уже полгода как вкатываюсь в кресты, собрал уже библиотеку всяких Мейерсов, Страуструпов, Сидхартхи, Павловских итд. подписался и просмотрел кучу лекций на ютубе по плюсам и алгоритмам как от доморощеных хацкеров так и от лекториума. прошел пару курсов на степике и получил сертификаты. теперь суть вопроса- где в сети можно попрактиковаться в сабже? где какие курсы есть или проекы для участия начинающих имеющих цель прокачать скилы? В сторону детородных
органов прошу не посылать - сам с них пишу, другие яп прошу не предлагать - не интересуют
Аноним 30/08/16 Втр 16:51:00 #398 №831312 
Посоветуйте софт, для обнаружения cache miss-ов.
Аноним 30/08/16 Втр 17:02:54 #399 №831322 
>>831312
https://courses.cs.washington.edu/courses/cse326/05wi/valgrind-doc/cg_main.html
Аноним 30/08/16 Втр 17:28:49 #400 №831339 
>>831050
Посмотри всякие попенсорц проекты на гитхабе, найди там себе что-нибудь интересное и вкатывайся туда.
Аноним 31/08/16 Срд 01:30:34 #401 №831679 
В указателях хранятся какие-то циферки. Что они значат? Если я выведу указатель на функцию на экран, а потом введу его ручками в другую программу, то я смогу запустить эту функцию из другой программы? Проверил. Ошибка сегментации. Почему?
sageАноним 31/08/16 Срд 01:38:13 #402 №831682 
>>831679
Это платиновый пост?
Аноним 31/08/16 Срд 08:25:28 #403 №831752 
>>831679
Читай про виртуализацию памяти. Если вкратце - каждый процесс думает, что у него есть вся доступная память (и даже больше), а других процессов в системе нет. Поэтому указатель в новом процессе значит совсем другое, чем в старом (с большой вероятностью, это быдет просто нераспределенная память, поэтому ошибка сегментации).
Аноним 31/08/16 Срд 08:46:10 #404 №831757 
>>831752
> Читай про виртуализацию памяти
Чёт сложно. А где список всех этих страниц хранится? понял что в таблице страниц но что этоКак ос узнаёт какая память занята и кем? Куда она это пишет? Кстати если процессору якобы доступна вся память, то почему числа в указателях идут не от нуля и так сильно отличаются друг от друга?википедии наверно недостоточно. Что ещё почитать?
Аноним 31/08/16 Срд 12:41:43 #405 №831885 
В ебаной студии 2015 комьюнити возникло сообщение Update your trial license. Какого хуя? Я же бесплатную студию качал.

Ставил на нее английский языковой пак, если что.
Аноним 31/08/16 Срд 14:47:16 #406 №831952 
>>831679
>>831757
Съеби в ньюфаг-тред.
Аноним 31/08/16 Срд 14:55:46 #407 №831956 
>>821402 (OP)
Ньюфаня вкатывается в тред. Изучаю кресты, хотя до этого ни один язык не изучал. Мне нравится язык, но для меня он очень громоздкий совсем чуть-чуть. Планирую написать какую-нибудь серьёзную вещь, может что-то типа большого алгебраического калькулятора. Язык начал изучать месяц назад, плачу за курсы 2к рублей в месяц, их ведёт тетка, которая окончила тульский мехмат. На занятиях нам дают простенькие, на первый взгляд, задачки. Компилятор называется "Bloodshed Dev-C++". Как думаешь, анон, стоит ли писать на этом компиляторе? В данный момент только скачал изучаю книги из шапки. Может бородатые опытные дяденьки чего-нибудь посоветуют? И вообще жду от тебя советов в стиле: "вот так делай!" или "подучись немного!".
Аноним 31/08/16 Срд 14:57:49 #408 №831961 
>>831757
Таненбаум, "Операционные системы". Вообще, это в любом курсе по операционным системам есть.
>но что это
В современных процессорах есть аппаратно реализованная таблица, и процессор, опять же автоматически, при встрече команды с адресом 0x111222 ищет 111 (которое общее у всех адресов в пределах страницы) в левом столбце этой таблицы и заменяет на 333, которое находится в соответствующей ячейке правого столбца. Получается уже физический адрес 0x333222, который есть номер ячейки на плате, например. Это все делается специальной частью процессора одновременно с остальными вычислениями, поэтому дополнительные такты не требуются. На самом деле это очень упрощенная схема, там еще есть нюансы по поводу того, как наполняется и изменяется эта таблица, но в целом все так вот просто.
>Как ос узнаёт какая память занята и кем?
Никак, вообще говоря. Вот смотри, в однопроцессорной системе, если запущено несколько программ, они выполняются попеременно, кусочками. Например, программа TvoyaMamka.exe выполнялась 100мс. Каждые 10мс процессор автоматически получал прерывание от системного таймера и передавал управление ОС. ОС смотрела счетчики и говорила "не, еще рано". А спустя 100мс планировщик ОС решает (в соответствии с выбранным алгоритмом): "так, чота TvoyaMamka.exe долго выполняется, тут батя тоже хочет". Схороняет мамкину таблицу страниц в памяти, а назад загружает таблицу, которая принадлежит процессу TvoyBatya.exe. Эти таблицы хранятся вместе с process id, дескрипторами открытых процессом файлов и другой инфой, которая своя у каждого процесса. Вот, таблица перезагрузилась, и теперь те же адреса в командах (если даже они были одинаковыми у бати и мамки) будут отображаться на совсем другую область памяти, где лежат данные и код бати. После этого планировщик опять засекает время, управление передается коду бати, и все повторяется. Нюансов планирования и хранения много, а суть простая, опять же.
> почему числа в указателях идут не от нуля и так сильно отличаются друг от друга?
Даже виртуальные адреса (0x111222), которые имеются в программе, не задаются программистом, а определяются, фактически, ОС (диспетчером кучи либо загрузчиком). Соответственно, это уже вопрос логики ОС, однозначный ответ тут я дать не могу, ибо не профессиональный байтоеб. Может, она стремится по возможности делать соответствие виртуальных и физических адресов один к одному, чтобы не засорять таблицу. Программе-то все равно, с нуля адреса или нет.
Аноним 31/08/16 Срд 15:01:55 #409 №831964 
>>831956
>какую-нибудь серьёзную вещь
>что-то типа большого алгебраического калькулятора
Это примерно уровень laba2.cpp. laba1.cpp это класс матриц, laba3.cpp - интерпретатор паскаля.
Аноним 31/08/16 Срд 15:04:03 #410 №831967 
>>831964
Чому такие термины сложные? Я только-только начал. Объясни на пальцах, если не сложно
Аноним 31/08/16 Срд 17:50:06 #411 №832099 
>>831961
Спасибо
Аноним 31/08/16 Срд 19:46:21 #412 №832203 
>>831964
C лабой 3 напиздел, а так всё так
Аноним 31/08/16 Срд 21:27:19 #413 №832325 
>>832203
На ВМК было именно так, за другие вузы не скажу, но вряд ли сильно отличается.
Аноним 31/08/16 Срд 21:29:34 #414 №832330 
>>831967
Матрица это прямоугольная таблица с числами, как шахматная доска типа. Интерпретатор паскаля - программа, в которую загоняешь текст программы на паскале, и она ее выполняет. Как PascalABC, только самописный.
Аноним 31/08/16 Срд 21:58:07 #415 №832368 
>>832330
Спасибо, няша
Аноним 31/08/16 Срд 22:13:43 #416 №832386 
Я вот этот кун >>831956
Прочитал сегодня пару глав первой книги из шапки. И знаете? Мне захотелось стать программистом! Спасибо разработчикам этого раздела, спасибо Страуструпу за книгу и за язык, спасибо добрым анонам и отдельная благодарность пауку Аркадию.
Аноним 01/09/16 Чтв 14:39:31 #417 №832767 
14727299711480.jpg
>>832386
Про переводчиков все как всегда забыли.
Аноним 01/09/16 Чтв 20:37:50 #418 №833104 
>>831885
>license
Бамп.
Аноним 01/09/16 Чтв 21:09:38 #419 №833154 
Сап, программач. У меня встал вопрос: как составить план обучения? Под конец лета начал читать книгу Страуступа по c++ (Принципы и практика использования C++). Прочитал ее до 7 главы. Очень понравился с++ и хотелось бы учиться и работать в этом направлении. Учусь я на 3 курсе колледжа, который находит под управлением гос. университета (город 200 тыс. человек). Сейчас с началом обучения, нам сказали, что будут преподавать c++, ооп в нем же, бд и много чего еще. Хотелось бы знать о тонкостях языка и прочих мелких важных деталях, но я не уверен, что в колледже нам его дадут в том объеме, в котором я хочу его изучать. В добавок из-за большого количества студентов мою группу поставили во 2-ую смену, а это учеба с двух до восьми. Собственно, что делать? Стоит ли бросать читать книгу и учить только то, что дают или продолжить читать и книгу, но как тогда это совмещать?
Аноним 01/09/16 Чтв 21:35:03 #420 №833174 
стандарт с++16 будет?
Аноним 01/09/16 Чтв 21:43:52 #421 №833178 
>>833174
c++17
Аноним 01/09/16 Чтв 22:06:43 #422 №833192 
Хотеть с++32.
Как же я буду угарать над толщиной священого писания крестоебов и попрекать их ересью за незнание рандомных UB в их параше. А там и до религии недалеко.
Аноним 01/09/16 Чтв 22:42:27 #423 №833223 
>>831885
Мб зарегать свою установку надо?
Аноним 01/09/16 Чтв 22:44:30 #424 №833225 
>>832325
Привет, ВМК-кун. Какого кода выпуск?
Аноним 02/09/16 Птн 00:57:33 #425 №833303 
>>833225
2018. Много тут вмкшников, кстати, периодически всплывают в тредах. Вроде и оп был наш человек
Аноним 02/09/16 Птн 01:20:03 #426 №833310 
>>833192
Посоны, а давайте запилим в этом итт треде секту? Можно привлекать ньюфагов, охуенно же.

В начале была декларация. И была декларация в программе. И была декларация программой...
...
И сказал Он: "Да будут байтоебы исторгнуты из обители мономорфных вычислений". И создал Он шаблоны, и создали шаблоны шаблоны шаблонов. И были перечислены Его создания, и создания их, и создания тех созданий в Священном писании. И имя ему было Стандарт.
...
И сказал Его пророк: "Покайтесь, братья, ибо грядет Борщ, и грядут чистые нечестивцы. И с приходом нечестивцев неосиляторы будут лишены Его библиотеки, и оставит Он одни только S-выражения, и будут у несчастных не векторы, а в каждой паре по Карри".
Аноним 02/09/16 Птн 08:12:41 #427 №833356 
>>833303
Ясно
Удачи тебе, няша
2014-кун
Аноним 02/09/16 Птн 09:50:44 #428 №833389 
Дорогая редакция, я сейчас ёбнусь нахуй.
В обеих IDE которые я использую (code::blocks и codelite) перестали работать функции. Смотрю в дебаггер, он их просто проезжает без перехода в тело фунции. Всё правильно задекларировано. Старые функции и классы с функциями которые раньше работали тоже перестали работать.
Что за хуйня? Компилятор сломался? Линукс поехал?
Я ньюфаг, но вроде ничего не ломал.
Аноним 02/09/16 Птн 11:03:35 #429 №833417 
>>833389
Нахуя тебе эта ШВАБОДНАЯ параша?
Используй _НОРМАЛЬНУЮ_ IDE. В никсах это QtCreator или CLion. И вообще нахуй никсы, если ты ньюфаг, накати божественную студию и не еби носорога
Аноним 02/09/16 Птн 11:16:00 #430 №833425 
>>832767
Все в оригинале читают.
На самом деле нет.
Аноним 02/09/16 Птн 11:19:21 #431 №833426 
>>833417
Навернул qt, всё заработало. Спасибо добрый человек.
Аноним 02/09/16 Птн 12:23:42 #432 №833448 
>>833417
> накати божественную студию и не еби носорога
Пиздец проиграл
Аноним 02/09/16 Птн 14:45:16 #433 №833533 
14728167169400.jpg
>>832767
Переводчикам тоже спасибо! держи картинку, если расстроил
Аноним 02/09/16 Птн 14:47:34 #434 №833535 
>>833154
В начале книги Страуступ говорит, что, мол, в свободное время изучайте. Но организовывать свой распорядок будешь сам, не маленький.
Аноним 02/09/16 Птн 15:14:58 #435 №833547 
>>833448
Проигрывай сколько угодно над стандартом индустрии. Только не забывай регулярно отмечаться в "МЫ ВАМ ПЕРЕЗВОНИМ"-треде.
Аноним 02/09/16 Птн 16:41:37 #436 №833625 
14728236972660.png
Господа, помогите мне разобраться, почему вот этот код https://ideone.com/9cwhHP вычисляет правильные чек-суммы для строк, а код на пикче выводит оно и то же число MessageBox'ом?

Аноним 02/09/16 Птн 16:45:12 #437 №833626 
>>833625
Потому что ты пихаешь buf в crc вместо filename?
sageАноним 02/09/16 Птн 16:47:52 #438 №833627 
>>833626
Блять, точно. А я смотрел на этот код и не мог понять, что мне тут глаза мозолит.

Алсо,
>p = (uint8_t *)buf;
Из-за системы типов нельзя использовать без каста?
Аноним 02/09/16 Птн 18:07:29 #439 №833716 
14728288494400.png
Почему рандомный ключ печатается на идеоне,но не печатается в консоли?

https://ideone.com/ETSeKp
Аноним 02/09/16 Птн 18:15:17 #440 №833731 
>>833716
Не знаю, но сходу вижу, что вот эта строка:
> else xtea_key = 0;
никогда не выполняется.
Аноним 02/09/16 Птн 18:26:15 #441 №833738 
>>833731
Но в принципе ключ может быть меньшей длины и размер массива может быть больше длины ключа, тогда понадобится эта ветка.
Аноним 02/09/16 Птн 18:30:00 #442 №833744 
>>833738
Я говорю, что у тебя off-by-one ошибка.
https://ideone.com/tXbhTm
Аноним 02/09/16 Птн 18:43:47 #443 №833752 
>>833547
Бытиё стандартом индустрии не мешает ей быть полнейшим говном
Аноним 02/09/16 Птн 19:05:31 #444 №833774 
>>833744
>>833716
У меня какая-то хуита. Вот так объявлены переменные в хедере:
https://ideone.com/8DnoDp

Вот так написана функция main:
https://ideone.com/36m1Rz

Почему после выполнения процедуры генерации ключа в массиве xtea_key содержится просто ноль, если во время ее выполнения выводятся элементы этого массива?
Аноним 02/09/16 Птн 19:26:11 #445 №833784 
>>833774
http://stackoverflow.com/a/8317056

в хидере:
extern char xtea_key[XTEA_KEY_SIZE];

в файле где gen_xtea_key:
char xtea_key[XTEA_KEY_SIZE];
Аноним 02/09/16 Птн 21:36:49 #446 №833928 
>>833752
В чем заключается ее говнистость, гуру ты наш?
Найди мне IDE удобнее, чем студия с решарпером С++?
Аноним 03/09/16 Суб 09:33:24 #447 №834151 
>>833928
> В чем заключается ее говнистость
В том, что она работает только на виндовс
Аноним 03/09/16 Суб 10:17:21 #448 №834174 
>>834151
>я засунул банковскую карту в таксофон на деревенской почте, и он ее зажевал, маааам! банкоматы говно!
Аноним 03/09/16 Суб 10:24:09 #449 №834176 
>>833928
Весит дохуя
Системных ресурсов жрет дохуя
Компилятор говно
Аноним 03/09/16 Суб 11:33:17 #450 №834213 
>>834176
Первые два пункта - хуйня на постном масле. Ресурсов и памяти сейчас как жопой жуй, заплатить пару гигабайт за удобство никто не против.
Про компилятор отчасти согласен. Но сейчас уже встроенный clang практически прикручен, так что очень скоро аргументов против не останется.
Аноним 03/09/16 Суб 13:15:08 #451 №834306 
>>834213
>Ресурсов и памяти сейчас как жопой жуй
На десктопе. 11'' планшетик с клавой и 32Гб винтом или хромогобук сейчас обычная вещь. Студию туда не поставишь, а криэйтор встает замечательно.
Аноним 03/09/16 Суб 14:06:05 #452 №834366 
>>834306
А, ну так-то да. Но у них и задачи разные. Студия это охуенный комбайн, который ставится на рабочий десктоп и херачит гигантские проекты своим мотовилом. А на планшетах/телефонах/ультрабуках, которые все время таскаешь с собой, все равно особо не поработаешь, банально собираться будет весь день. Поэтому там ставят что-нибудь легкое, чисто чтобы проверять короткие куски кода, типа Code::Blocks, или вообще пишут в текстовом редакторе с плагинами.
Аноним 03/09/16 Суб 14:27:34 #453 №834392 
>>834366
>это охуенный комбайн
кухонный. даже на небольших проектах твоя студия отсасывает у эклипса, тормознутое гиканское уебище нинужно если конечно ты не хипстер или пидор.
Аноним 03/09/16 Суб 14:29:27 #454 №834393 
>>834306
>11'' планшетик с клавой и 32Гб
скока часов вижуалпараша у тебя загружается?
Dmitry 03/09/16 Суб 14:40:15 #455 №834400 
>>834366
Манька, студия для микропроэктов.
Для серьезных задач есть Make/Cmake
Dmitry 03/09/16 Суб 14:40:47 #456 №834402 
>>833928
Emacs
Аноним 03/09/16 Суб 14:45:07 #457 №834407 
>>833928
>решарпером
какой нахуй решайпер в спп? ваще школопидоры ебанулись
Dmitry 03/09/16 Суб 14:51:29 #458 №834413 
Антохи поясните за bitwise операторы когда их реально удобно применять? Часто это делаете?
Аноним 03/09/16 Суб 14:51:59 #459 №834415 
>>834392
>отсасывает у эклипса
>отсасывает
>у эклипса
>который ломается на исходниках буста
Ну это вообще пушка.
>>834400
Так с cmake и используют. Автодополнение тебе святой дух сделает без IDE?
Аноним 03/09/16 Суб 14:53:07 #460 №834416 
>>834407
Там есть решарпер для крестов, но это говно мамонта же. В новых студиях (после 2010) из коробки есть почти все его фичи.
Аноним 03/09/16 Суб 14:56:00 #461 №834418 
>>834413
!~x - быстрое сравнение с нулем.
Сдвиги для умножения/деления на степени двойки.
Вообще, читай Уоррена-мл., "Алгоритмические трюки до программистов", там дохуя такого.
Аноним 03/09/16 Суб 14:56:51 #462 №834420 
>>834418
>~x
Быстрофикс.
Аноним 03/09/16 Суб 14:58:52 #463 №834421 
>>834413 >>834418
+ Сравнение по битовой маске
Dmitry 03/09/16 Суб 15:06:52 #464 №834428 
>>834415
Автодополнение в Emacs есть
sageАноним 03/09/16 Суб 15:22:16 #465 №834441 
>>834415
>>который ломается на исходниках буста
Давай кейс, педрила. Ломается у него там, блядь. Даже если ты и нашел баг в парсере, это никак не сказывается на повседневном использовании - я уже 3 год на эклипсе сижу и все там заебись, так что не пизди.

Алсо, твоя говностудия может спокойно закрешится во время установки брейкпоинта в каком-нибудь хедере. Про охуенный встроенный дебагер, который в 2016 не умеет в function call, я вообще молчу.
Про необходимость в платных помидорах или решарперах, когда в еклипсе все идет из коробки, я тоже промолчу.

Про анальный формат проектов студии, закрытость дебажных символов и вообще всю сопутствующую инфраструктуру (начиная от безумно "логичных" обратных слешей в пути и заканчивая отсутствием валгринда) я даже не буду заикаться - ведь ты уже обосрался пару предложений назад.
Dmitry 03/09/16 Суб 15:26:03 #466 №834444 
>>834441
Шо то хуйня шо это хуйня.
sageАноним 03/09/16 Суб 15:27:55 #467 №834445 
>>834416
>В новых студиях (после 2010) из коробки есть почти все его фичи.
Контактирую с 2013 студией по работе. Такое же говно, как и 2010. Можешь начинать свои маневры про 15 студию.

>>834213
>так что очень скоро аргументов против не останется
А можно начать с аргументов "за"? В 2010 студии был один единственный аргумент - более стабильный дебагер, чем gdb. Но мало того, что на линуксах завезли lldb, так и gdb сейчас постабильнее. Не говоря о том, что на OS X платформе все и так работало так же стабильно, как и в VS, так еще вагон плюшек в комплекте шел.
Аноним 03/09/16 Суб 15:28:33 #468 №834447 
>>834441
Тредов десять назад было, посмотри там в архивах.
>ведь ты уже обосрался пару предложений назад
Ну ты меня просто растоптал, лол. Придется теперь ставить Eclipse, или еще какое гнутое дерьмо, чтобы все было как у людей.
Аноним 03/09/16 Суб 15:32:54 #469 №834448 
>>834447
пытаешься оправдать покупку вижулапараши кокорпорейт эдишен за пять тысяч долларов? или своровал? тогда твой хэлоуворд нелегитимный, кек
Аноним 03/09/16 Суб 15:37:47 #470 №834450 
>>834445
>Можешь начинать свои маневры про 15 студию
Не начну, 15 не сильно отличается, по большому счету.
>А можно начать с аргументов "за"?
Работающие из коробки автодополнение и визуальный дебаггер. IntelliTrace. Море плагинов, многие из которых не имеют аналогов. Удобная интеграция с мелкомягкими сервисами хотя это не всем надо. Стабильность ни одного краша за последние несколько лет.
Аноним 03/09/16 Суб 15:39:31 #471 №834451 
>>834448
Зачем своровал? Контора оплачивает софт, как и в любом цивилизованном месте.
Dmitry 03/09/16 Суб 15:42:43 #472 №834453 
>>834451
Хорошо когда софт контролирует тебя а не наоборот?
Аноним 03/09/16 Суб 15:45:02 #473 №834456 
>>834451
> Контора оплачивает софт
а, я знаю такие эффективные конторы, макаке заплатить лишние 500 рублей премии хуй, а вот какой нибудь ненужной хуиты накупить всегда пожалуйста. лол
Аноним 03/09/16 Суб 15:45:39 #474 №834457 
>>834450
>Работающие из коробки автодополнение и визуальный дебаггер. IntelliTrace
IntelliTrace - хипсторское говно, смысла не имеет. Все остальное есть в любой ide промышленного уровня.

>Море плагинов, многие из которых не имеют аналогов
Море плагинов везде есть, про неимеющие аналогов - примеры в студию.

>Стабильность ни одного краша за последние несколько лет
Словил 3 разных краша за 7 дней работы.

А вообще давай-ка начнем с размера проекта, на котором ты работаешь. А то понабежит мудаков с проектами на 2МБ, которые рассказывают как у них стабильно и быстро работает студия.
Аноним 03/09/16 Суб 15:48:06 #475 №834459 
>>834456
все просто - макака уволится и лицензия останется у конторы, а вот премию платить - она и так будет, как цена этой лицензии, так и потом макака почувствует вкус денег и в следующем месяце тоже премию попросит.
Аноним 03/09/16 Суб 15:51:16 #476 №834463 
>>834453
Блядь, сука, ты и сюда из сишного треда протек? Я ебал твои теории заговора, мне от рабочего софта требуется удобство, а в остальном пусть он хоть в жопу залезает - никакой личной информации все равно нет на устройстве.
Аноним 03/09/16 Суб 15:53:13 #477 №834465 
>>834456
Ну хуй знает. Такой эффект, конечно, тоже есть, но и эффективность работы должна быть же. Я бы нахуй съебал, если бы мне предложили прийти со своим ноутом и кодить в швабодных иде.
Аноним 03/09/16 Суб 16:00:58 #478 №834471 
>>834465
>Я бы нахуй съебал
а как такой вариант, остаешься после работы говнокодишь, переработку не оплачивают - нету денех, потом ряяя внедрили новый корпоративный почтовый сервер за $10000, с нагрузкой аж 100 писем в день. а? лол
Аноним 03/09/16 Суб 16:03:43 #479 №834474 
>>834457
>смысла не имеет
В большинстве случаев да, но меня пару раз оно здорово выручало, когда были хитрожопые баги с синхронизацией тредов. Так что я бы не назвал его критичной фичей, но иметь как дополнительный инструмент - очень неплохо.
>примеры в студию
Скажем, https://visualstudiogallery.msdn.microsoft.com/2fde2c3c-5b83-4d2a-a71e-5fdd83ce6b96 . Хотя насчет этого пункта я не настаиваю - я не особо много ковырялся с Eclipse, возможно, я просто не нашел аналог.
>Словил 3 разных краша за 7 дней работы.
Попробуй на чистую сперму ставить, с последними апдейтами. От этого сильно зависит, как показывает опыт. Кококок вот еще, ради одной IDE...
>А вообще давай-ка начнем с размера проекта, на котором ты работаешь.
Приблизительно 2кк строк, насколько я помню.
Аноним 03/09/16 Суб 16:04:37 #480 №834476 
>>834471
ВРЕТИ
Dmitry 03/09/16 Суб 16:12:40 #481 №834477 
>>834463
Хорошо у тебя горит, всем есть что скрывать, Я этих опрпвданий уже насмотрелся.
Виндовс - прошивка для слежки, ботнетов, игр, вирусов, для остального просто ненужно.
Аноним 03/09/16 Суб 16:19:19 #482 №834480 
>>834474
> Попробуй на чистую сперму ставить, с последними апдейтами. От этого сильно зависит, как показывает опыт.
Я только сменил работу, у меня новая тачка с чистой виндой сейчас.

>ArrayPlotter
Видел для gdb скриптик, который запускает gnuplot. Нормальное решение, тащемта.
Если хочется прям уж интегрированности, то у еклипса точно есть такой плагин для джавы, скорее всего есть и для c++.
Аноним 03/09/16 Суб 16:19:21 #483 №834481 
>>834477
Ну так уебывай в криптач, хуле ты здесь-то забыл? Тут серьезные дяди зарабатывают бабло, там таятся школьники с паранойей, все гармонично.
Аноним 03/09/16 Суб 16:21:37 #484 №834482 
>>834480
>у меня новая тачка с чистой виндой сейчас
Ну хуй знает тогда. Если такое происходит, то, конечно, лучше использовать какую-то другую IDE. Я бы и сам не стал кушать кактус, если бы у меня не работало идеально все.
Dmitry 03/09/16 Суб 16:48:46 #485 №834495 
>>834481
Может это хорошая прошивка для зароботка, но плохая для работы, особенно для программирования.
Dmitry 03/09/16 Суб 19:27:50 #486 №834605 
>>821422
Ты о GCC
Неосилятор 04/09/16 Вск 16:30:01 #487 №835184 
14729958013870.jpg
Как заебал этот Прата с перегрузками. Перегрузит шаблоны а потом ими погоняет или специализирует, сука. Это у всех авторов так?
Аноним 04/09/16 Вск 16:55:03 #488 №835228 
>>835184
Для тебя же стараются, дурачок. Без понимания таких вещей ты еще очень долго будешь пачкать штаны с реальным кодом.
Аноним 04/09/16 Вск 18:02:44 #489 №835331 
>>835184
а про SFINAE он уже рассказал? А про поиск зависимых имен? А про ADL? Про разложение до указателя? Про using в шаблонах?
Аноним 04/09/16 Вск 18:07:39 #490 №835335 
Возможно, платина, но я внятного ответа так и не нашёл на SO.
Как в C++11 организовать такую блокировку, чтобы читать из очереди могли сколько угодно потоков, а писать — только один? Тянуть буст ради одной фичи не хочу, 17-й стандарт тоже не могу использовать.
Аноним 04/09/16 Вск 20:55:49 #491 №835508 
>>835335
сделой shared_mutex самостоятельно или спизди его из libc++ новой
Аноним 04/09/16 Вск 21:13:43 #492 №835515 
>>835508
Тоже думал над этим. Просто спиздить и вызывать mutex.lock()/unlock() при записи и lock_shared()/unlock_shared() при чтении, как-то так?
Аноним 04/09/16 Вск 21:33:17 #493 №835534 
>>835335
Напиши RAII-обёртку вокруг pthread_rwlock_t
Аноним 04/09/16 Вск 22:20:43 #494 №835565 
>>821402 (OP)
Че все утверждают, что это дохуя сложный язык? Все основы по языку, которые спрашивают на собеседованиях можно выучить за день. Еще день на основные алгоритмы и еще день на основные библиотеки и фреймворки
3 дня вполне достаточно, чтобы пройти собеседование в яндекс/гугл
Аноним 04/09/16 Вск 22:23:20 #495 №835569 
>>835565
А чтобы научится писать код не стреляя по себе - нужно еще как минимум пара-тройка лет, в этом-то и все проблема. А потом чтобы начать писать быстрый, безопасный и тем более распределенный код - нужно еще десяток лет, потому что язык - сборище костылей.

А так сам синтасис впринцие не сложный.
Аноним 04/09/16 Вск 22:27:06 #496 №835571 
>>835569
А в чем смысл вышки по программированию, когда всю базу можно пройти за месяц после школьного выпускного и обкатать изученное, а писать нормальный код в любом случае научишься по ходу работы?
Аноним 04/09/16 Вск 22:46:18 #497 №835588 
>>835571
Чтобы на парах учить математику, а дома — практиковаться в программировании же.
Аноним 04/09/16 Вск 22:51:44 #498 №835594 
>>835588
Что нужно для программирования кроме линейки, дифуров, и матана, которые можно пройти самостоятельно за пол года в 10 классе?
Аноним 04/09/16 Вск 22:54:45 #499 №835600 
>>835594
Зависит от того, в какой сфере ты работать собрался. Где-то аналитическая геометрия нужна, где-то — дискретка и т.д.
Аноним 05/09/16 Пнд 00:29:09 #500 №835674 
>>835600
>>835588
>>835594
ваш матан нахуй никому не нужен, в погромирование темболее, смиритесь.
Аноним 05/09/16 Пнд 00:32:09 #501 №835675 
>>835674
Ну и как ты найдешь неизвестную в уравнении без матана?
Аноним 05/09/16 Пнд 00:35:33 #502 №835676 
>>835675
>неизвестную в уравнении
какое нахуй уравнение, какие неизвестные? вылезишь из лабы2 и увидешь удивительный мир.
Аноним 05/09/16 Пнд 00:37:08 #503 №835678 
>>835676
Итат быдлокодер порвался
Аноним 05/09/16 Пнд 00:42:04 #504 №835679 
>>835678
ссу матаноблядям в ротешники, заебали форсить свое говно. кудкудах интыгралы, кудкудах логарифмы, вся эта хуита не нужна.
(Автор этого поста был предупрежден.)
Аноним 05/09/16 Пнд 00:51:07 #505 №835681 
>>821402 (OP)
Значит функция берет константу. Как ее можно изменить?
Аноним 05/09/16 Пнд 01:06:35 #506 №835685 
>>835594
Дифуры и матан не нужны, а вот теоркат нужен.
Аноним 05/09/16 Пнд 14:06:44 #507 №835889 
>>835335
Вот тебе "читатели-писатели" из прошлого проекта. Тут есть нестандартный перехват ошибок ErrorMaster, но ты сам выпили его, мне лень править эту копипасту.

http://pastebin.com/05VkjJZK
Аноним 05/09/16 Пнд 14:56:24 #508 №835922 
14730765845850.png
14730765845861.png
>>835889
Лол, shared_mutex на мьютексах. Я к вам работать не пойду.

https://ideone.com/TBJ01y
Аноним 05/09/16 Пнд 16:45:46 #509 №836001 
>>835922
Так семнадцатый стандарт в то время не завезли еще, лол. А работать-то надо.
Аноним 05/09/16 Пнд 16:53:56 #510 №836009 
>>836001
Твой шаред мьютекс только на чтение работает медленнее, чем обычный мьютекс by design (потому что там 3 мьютекса внутри). Зачем использовать shared_mutex тогда?

Суть shared_mutex в том, что на чтение он работает быстрее обычного мьютекса, когда операция записи происходит редко. Атомик надо юзать.
Аноним 05/09/16 Пнд 18:18:38 #511 №836085 
>>836009
Емнип там было надо специфичное поведение (блокировка поступления читателей при наличии висящих писателей), не совсем как в shared, ну и запилили наивную реализацию, оно все равно 3.5 раза использовалось, при сериализации запросов к апи или типа того. Там ответы по полсекунды и скорость вообще не важна поэтому. А так ты прав, конечно.
Аноним 05/09/16 Пнд 20:46:43 #512 №836165 
Суть такая, анананс.
Мне нужна софтина (или некий редактор) для просмотра кода и навигация по нему.
Вимы и прочее предлагать не стоит. При навигации в проекте с десяток файлов ещё может и сойдет, но что-то большее это не учитывая виртуальные функции, автоматический вывод типов и прочая шаблонная магия нужна иде или около.
Использовал студию так-то мне больше криэйтор нравится да и работает он быстрее, но для просто навигации слишком она громоздка и тормознута.
Аноним 05/09/16 Пнд 21:10:31 #513 №836193 
>>836165
http://www.sourceinsight.com/
Аноним 05/09/16 Пнд 21:21:25 #514 №836200 
>>821402 (OP)
Так аноны, есть ли какой нибудь сайт или форум, где нюфани помогают друг другу?
Аноним 05/09/16 Пнд 21:23:00 #515 №836203 
>>836200
Харкач. Здесь все твои друзья.
Аноним 05/09/16 Пнд 21:27:01 #516 №836208 
>>836203
Не думаю, что здесь будут помогать мне разбираться с синтаксисом языка. Алсо, хотелось бы потестить свои новоприобретенные знания.
Аноним 05/09/16 Пнд 21:40:05 #517 №836216 
кек
Аноним 05/09/16 Пнд 22:26:26 #518 №836257 
Посоны, есть ли большая разница между Visual Studio Community и допустим Professional? Через вузик вроде последний можно получить, но я не ебу как, куда-то надо писать преподу или еще чего конечно спрошу потом, но все же. А тут скачал и вроде норм. Мне пока чисто лабы делать. Хватит для моего уровня? С торрентов кстати зашквар качать?
Аноним 05/09/16 Пнд 22:30:55 #519 №836260 
Кто вообще в здравом уме использует линукс? адо скомпилировать одну либу для сервера было, а я уже хочу назад к сутдии своей.
Аноним 05/09/16 Пнд 22:48:53 #520 №836276 
Сап ананасы.
В общем, устроился я крестоджуном три месяца назад. Разбирался себе потихоньку с работой с видео, кодированном в h264. Вроде, набросал код, который реализует нужный конторе функционал.
И мне дают проект, который пилился до этого несколько лет намного более прошаренным челом. Чтобы, значит, этот функционал туда прикрутить.
Глянул я код, а там ехал template через typename, этим всем погоняют typedef'ы и все это внутри typeFactory. Миллион .h и еще больше #define'ов и еще какие-то кастомные статические библиотеки. Короче, ООП и сложный для нуба код во все поля и хуй пойми, как оно все работает.
Спросить не у кого, т.к. чел, который это писал, взял и помер. Второй шаристый кодер больше по чистому C и ассемблеру, ему вся эта объектная магия тоже не шибко понятна.

Я это все к чему, мне сильно не хватает практического понимания всей этой объектной поеботы, может кто посоветовать адекватные курсы по C++ в ДС2?
Аноним 05/09/16 Пнд 22:51:37 #521 №836279 
>>836276
Тебя в гугле забанили?
Аноним 06/09/16 Втр 02:26:17 #522 №836407 
>>836276
Тяжело джуном работать?
Что конкретно делал?
Аноним 06/09/16 Втр 09:13:47 #523 №836446 
>>836407
Конкретно мне -- трудно.
Первое задание было написать некий клиент, который ищет в сетке устройства конторы, позволяет коннектится к определенной модели и смотреть, что на этом устройстве происходит и настраивать его.

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

Потом работа с IP-камерами. Типа сервер забирает поток h264 с камер, крутит кусок в памяти (секунд 20) и по запросу начинает писать его. Ну и плеер, чтобы полученное видео просматривать.

В общих чертах, так.
Аноним 06/09/16 Втр 09:14:42 #524 №836447 
>>836279
Предлагаешь изобразить дауна, который бежит на занятия по первой же ссылке из гугля, не спросив рекомендаций в специализированном месте?
Аноним 06/09/16 Втр 10:30:58 #525 №836469 
>>836257
Даже в большей части проф. разработки разницы нет. Студенту тем более. Рекомендую Resharper C++ по студенческой почте нахаляву взять
Аноним 06/09/16 Втр 10:34:16 #526 №836470 
>>836276
сколько платят?

А по вопросу - почитай любую книгу про тимплиты, и потом сверху наверни Александреску - Современное проектирование. Ты охуеешь, но потом врубишься.
Аноним 06/09/16 Втр 19:33:09 #527 №836680 
>>836470
Зряплаты хватает на еду-проезд-аренду однушки.
Планирую полгода-год поработать, а там уже смотреть на перспективы переката в более хлебное место.
Я так-то вроде понимаю в общих чертах, например фреймворк Qt, который весь из себя объектный, использую без проблем. Но вот именно тот код, который мне дали, это какое-то ебунячье нагромождение абстракций.
Про проектирование попробую читануть, спасибо. Может там как раз такой подход объяснят.
Аноним 07/09/16 Срд 12:11:59 #528 №837125 
>>836193
>>836165
Обнаружил, что в криэйтор можно импортировать проект.
Точнее папку с исходниками
Аноним 07/09/16 Срд 15:56:04 #529 №837275 
Пиздатая робота. Жаль меня туда не возьмут
https://moikrug.ru/vacancies/1000028597
Аноним 07/09/16 Срд 18:36:37 #530 №837440 
>>821402 (OP)
Выучил ваш супертрудный язык за 4 дня. Правду говорят, что мужик работающий меньше чем за 50к - неудачник.
Аноним 07/09/16 Срд 20:34:54 #531 №837590 
ПЕРЕКАТ ПИЛИТЕ
Аноним 07/09/16 Срд 20:36:02 #532 №837593 
>>837590
Оп пик найди
Аноним 07/09/16 Срд 20:40:35 #533 №837601 
14732700358250.jpg
>>837593
sageАноним 07/09/16 Срд 22:04:23 #534 №837652 
>>836260
Среди всех прекрасных умений прыщей есть одно самое важное. Оно работает хорошо, стабильно, не зависит от погоды, инвестиционного климата и дружественных усилий, предпринимаемых всякими космонавтами. Так сложилось исторически, что именно это умение, технология, легли в основу нового порядка, нового мироощущения, прыщемирка.
Суть вот в чём. Попробуйте представить себе прыщемирок. У него нет границ, которые спермачи могут увидеть, зато есть границы которые они никогда не смогут преодолеть. И вот почему. Допустим, решила какая-нибудь типичная спермоблядь проникнуть в прыщемирок — не важно, будь то пубертатный школьник с истовой жаждой самоутверждения, или завхоз с экономией на бесплатном, или просто пресытившийся анальным гнётом и интересующийся не в меру хомячок; таки или иначе всех ждёт один и тот же печальный итог.
Когда типичная спермоблядь пытается, прельстившись радостями прышемирка, проникнуть в прыщемирок через «парадный вход», гордо задрав нос, её ожидает строгий досмотр, на котором моментально выявляется уровень знаний и умений убогого. В частности, выясняется во всех продробностях та самая противоестественная поза, в которую традиционно привыкла вставать спермоблядина, чтобы её начинал использовать хозяин, выясняется, что за душой у спермоблядины никаких знаний нет, кроме этих самых привычек, связанных с облегчением анального гнёта спермогосподина. И тут, поскольку вход-то «парадный», прямо на глазах тысяч обитателей прыщемирка наступает расправа. Древний и тщательно смазанный для анахронизма карательных механизм запускает свои циклопические манипуляторы прямо в анус спермоблядины и стремительно с треском и искрами разрывает его в клочья. Это одна из самых потешных вещей для всех прыщеблядков. Это то, что делает бессмысленными все прочие развлечения, то, что не сравнится по накалу страстей и силе впечатлений ни с чем. На спермоблядские крики слетается множество зевак. Жалкий опущенец кричит, обвиняет в случившимся кого угодно, но не себя, сетует и стенает о том, что прыщемирок не пригоден для жизни, что прыщеблядям, видимо, нравится перманентный разрыв ануса; всё, что угодно будет выкрикивать — лишь бы не признать собственную убогость и надёжность её определения и её очевидность в прыщемирке. Но прыщеблядям известна истина. Она проста. Тот самый надёжнейший анахронизм вычислил хроническую спермоблядь и точно поразил её. Это делает крики спермоблядыша ещё более смехотворными.
Так бы всё и продолжалось: изредка спермобляди подбираются к границам прыщемирка, получают свой заслуженный разрыв ануса, и пройдя сквозь боль и унижение, уходят не солоно хлебавши. Но для экстенсивного увеличения количества лулзов, а, стало быть, расширения круга жертв, были открыты другие входы в прыщемирок. Например, на одном из них выдают красочную табличку с надписью «инвалид» и инвалидную самодвижущуюся коляску с обещанием доставить прямо через ограду в прыщемирок, где всё будет хорошо, бесплатно и легко. Не забывают, впрочем, предупредить, что вставать с коляски нельзя ни в коем случае. Что удивительно, коляска действительно начинает своё уверенное движение со спермоблядком на борту, однако сам спермоблядок уже очень скоро начинает смутно догадываться, что его обманули, поскольку, положение, в котором он сидит в коляске не такое уж и удобное, и до боли в анусе напоминает ему то самое положение, в которое его так часто ставил спермогосподин, а сама коляска движется с ощутимыми рывками, меняя направление, да и радостей прыщемирка не особо заметно, а окружающие прыщебляди посмеиваются и указывают на спермоблядка пальцами. И тут, спермоблядок понимает, что его разоблачили, поднимается со своей коляски и начинает грозить прыщеблядкам и кричать им, что он тоже прыщеблядь, поскольку уже проник в прыщемирок, преодолев границу. Это вызывает в прыщеблядях только смех, поскольку никакую границу спермач не преодолел — он просто катается в инвалидной коляске. А когда же спермач понимает и это, то он от досады делает неловкое движение и попадает в цепкие манипуляторы, устремившиеся к его заднице. И тут происходит разрыв на потеху всем окружающим прыщеблядям. Пожалуй, вид такой спермобляди, ещё более униженной, забавит куда больше. А собравшиеся вокруг прыщебляди тыкают палочками в агонизирующую спермоблядь, пока та изрыгает проклятья, обильно поливая собственную инвалидную коляску и землю вокруг анальной кровью. Вот в этом-то и состоит мрачная суть древней кровавой традиции прыщемирка, который не прощает и не ошибается. Так и будет: спермоблядство неизбежно должно караться в прыщемирке разрывом пердака. Вот в чём самая большая потеха: дразнить спермоблядка «бесплатным сыром», твёрдо зная, что его ждёт только бесплатный разрыв жопы.
Аноним 08/09/16 Чтв 15:57:22 #535 №838129 
>>837590
Стих придумать надо
Аноним 09/09/16 Птн 06:05:42 #536 №838744 
а как вам Microsoft VS code?
Аноним 09/09/16 Птн 08:04:35 #537 №838750 
>>838744
Как земля.
Аноним 09/09/16 Птн 18:54:45 #538 №839074 
>>836470
>Александреску
Когда мне в очередной раз припекло во время ахуевания от проекта я зашел на лурочку. В статью "умение разбираться в чужом коде". А там картинка в статье с кодом, который как раз напоминающая код проекта (правда, в более упрощенном виде). Лезу я смотреть на подпись под картинкой и точно, Александреску блять.

Кинулся в инет, качать книжку. Приступил к чтению. И тут мысль, блять, а раз проект написан по его книжке, дай-ка я гляну в шкафчик в метре у меня за спиной. Вот она, книжка бля. Забрал домой.

Правда, из этого следует немного грустный вывод. Раз мне никто про эту книжку и методику ничего не сказал, наверное, канторе особо и не нужно, чтобы я справился с задачей. Видимо, моя задача -- изображать программиста, а не приносить некую пользу. Мысленно сделал отметку "съебаться из конторы сразу же, как будет возможность".
Аноним 11/09/16 Вск 00:04:36 #539 №839794 
бамп
Аноним 11/09/16 Вск 10:55:04 #540 №839906 
добавьте в шапку лучшую иде - Code::blocks. Более лучшую, чем code lite.
Аноним 11/09/16 Вск 16:46:50 #541 №840067 
>>821402 (OP)
Вкатываюсь в геймдев, думал на дроиде ява, заебца. Таксс, движки-мейкеры, платное говно, говно, так, што тут у нас, порт с сишки. Ууу хуево.
Ладно, буду свое двигло делать. Лист двиглов на яве: говно, ..., ... ээээ, а где ява?

Эхх, походу не отвертется от крестов, это судьба.

Есть особые подводные камни? Просто скачал вижуал студио и вперед?


Аноним 12/09/16 Пнд 17:21:18 #542 №840693 
Заглянул к вам из петушиного загона, у вас всегда тут так пусто?
Аноним 12/09/16 Пнд 18:17:53 #543 №840717 
В крестах нет матриц?
Аноним 12/09/16 Пнд 18:50:29 #544 №840739 
>>840717
Вроде нет, но есть дохуя библиотек от топовых интелоских до днищенских васяновских
Аноним 12/09/16 Пнд 18:54:59 #545 №840742 
>>840739
тогда покажи красивый велосипед матриц
Аноним 12/09/16 Пнд 19:00:51 #546 №840745 
>>840742
в том же xna фрамеворке/DIRECT3D есть какая-то параша
Аноним 12/09/16 Пнд 19:01:38 #547 №840748 
>>840742
Да и что тебе мешает написать свой.
Аноним 12/09/16 Пнд 19:09:52 #548 №840758 
>>840748
То что я могу где-то сделать глупую ошибку. Или криво написать. А мне нужно только динамическая матрица и метод для её транспонирования. Проще найти какой-нибудь велосипед и удалить из него всё лишнее.
Аноним 12/09/16 Пнд 19:13:23 #549 №840763 
>>840758
Ну для этого просто пишешь один единственный шаблонный класс матрицы и метод транспозе возвращающий новую матрицу. Для проверки накидай какой-нибудь изи тест.
Аноним 12/09/16 Пнд 19:14:31 #550 №840765 
>>840763
не думаю что можно где-нибудь обосраться кроме как в выделении памяти
Аноним 12/09/16 Пнд 19:16:00 #551 №840767 
>>840763
Такая проблема возникала у многих и кто-то написал дохуя продуманный класс матриц где за каждую строчку пояснить может. Я хочу его, а не свой говнокод за 5 минут.
Аноним 12/09/16 Пнд 19:16:41 #552 №840768 
>>840758
Было бы понятно из-за чего ты искал проблему если бы тебе надо было написать всю матричную алгебру. А так если что то можно взять интеловскую либу(я есличо хз где её можно спиздить).
Аноним 12/09/16 Пнд 19:18:23 #553 №840769 
>>840767
https://software.intel.com/en-us/intel-mkl
Аноним 12/09/16 Пнд 19:20:34 #554 №840772 
>>840769
Он почту прочит. У них гитхаба нет?
Аноним 12/09/16 Пнд 19:22:46 #555 №840773 
>>840772
Нет это проприетарщина(вроде насколько я понял)
Аноним 12/09/16 Пнд 19:24:54 #556 №840775 
>>840773
Ок. Ввиду почту. Спасибо.
Аноним 12/09/16 Пнд 19:46:21 #557 №840794 
передумал скачивать. Сам напишу
> array<array<int,n>,n> m;
Как значение оп умолчанию задать? 2 цикла в конструкторе делать?
Аноним 12/09/16 Пнд 22:38:57 #558 №840924 
14737091376470.png
Бля, вы зебали!
Где перекат?
Аноним 12/09/16 Пнд 23:47:15 #559 №840966 
Совсем уже охуели, пидоры ленивые.

https://2ch.hk/pr/res/840964.html
https://2ch.hk/pr/res/840964.html
https://2ch.hk/pr/res/840964.html
comments powered by Disqus

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