Вы видите копию треда, сохраненную 7 мая 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Кресты хулящих за нехватку фич;
Терзая код профайлером пытливо,
Рантайма эффективность увеличь.
Пусть ненамного - важно лишь стремленье,
Тобою байтов взнузданный полет;
Смотри на них со страстью, вожделеньем,
Пусть на тебя глас Бьерна снизойдет.
Храни дизайн, не став рабом паттернов,
Тестируй, не завязнув в TDD,
В давнишнем коде вдруг почуяв скверну,
Не забывай о собственном труде.
Останься тверд, когда твой храм оплеван
Статьями не осиливших глупцов;
Когда стандарт меняется, и снова
Ты должен изучать язык с основ.
Будь непреклонен с джавапетухами,
Будь равнодушен к чистоте борща,
Будь щедр с одноглазых змей рабами,
Им либу бросив с барского плеча;
Будь терпеливым к платине вопросов,
К лентяям с говнолабами будь строг.
Тогда царем ты будешь меж отбросов,
Тогда, мой сын, ты будешь Крестобог.
Старший брат: >>683573 (OP)
Предыдущий: >>702133 (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: Специально для тебя аноны /pr собрали уникальную коллекцию отборной литературы по крестам. Только лучшие книги, последние издания, без хуев! Выбирай категорию и обмазывайся:
-
Для нюфань
Учебники для начинающих. Все примерно одинаковой годноты, читать имеет смысл только какой-нибудь один, который больше приглянется:
Автор(ы) Название Год Ссылка Бьерн Страуструп Программирование. Принципы и практика использования C++ 2016 https://yadi.sk/i/Yd6KKpLBqJSUr Стэнли Липпман, Жози Лажойе и Барбара Му Язык программирования C++ 2014 https://goo.gl/kVaela Стивен Прата Язык программирования C++ 2012 https://goo.gl/z7kA8u
Другие обучающие материалы
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 |
Q: Я прочитал все вышеперечисленное, теперь я гуру! Что дальше?
A: Дальше переходишь по ссылке, пробуешь отвечать на вопросы и понимаешь, что ты пока в самом начале пути. Кроличья нора крестов практически бездонна, поэтому продолжать постигать тонкости и детали можно очень и очень долго. В то же время, на этом этапе у тебя должно быть достаточно знаний, чтобы уверенно писать неплохой код. Поэтому читай исходники открытого софта и библиотек, отправляй пулл-реквесты в них, читай книжки по предметным областям и общим методикам разработки, а дальше уже сможешь запилить свой проект или вкатиться в существующий.
Не благодари.
Vladey a mocking among macaques,
Crosses for blaspheming the lack of features;
Terzi code profiler curiously,
Runtime efficiency is increased.
Let not much - it is only important aspiration,
Thee bytes bridled flight;
Look at them with passion, lust,
Let your voice on Bjorn descend.
Keep the design, without becoming a slave to the patterns,
Tested, not zavyaznuv in a TDD,
The long-standing code suddenly sensed the filth,
Do not forget about your own work.
Stay firm when your temple spat upon
Articles do not overpower the fools;
When the standard is changed, and again
You have to learn the language with the basics.
Be adamant with dzhavapetuhami,
Be indifferent to the purity of borscht,
Be generous with the one-eyed snake slaves
They libu throwing with his master's shoulder;
Be patient platinum issues
To lazy to govnolabami be strict.
Then you'll be the king among the debris,
Then, my son, you will Krestobog.
Не благодари.
Vladey a mocking among macaques,
Crosses for blaspheming the lack of features;
Terzi code profiler curiously,
Runtime efficiency is increased.
Let not much - it is only important aspiration,
Thee bytes bridled flight;
Look at them with passion, lust,
Let your voice on Bjorn descend.
Keep the design, without becoming a slave to the patterns,
Tested, not zavyaznuv in a TDD,
The long-standing code suddenly sensed the filth,
Do not forget about your own work.
Stay firm when your temple spat upon
Articles do not overpower the fools;
When the standard is changed, and again
You have to learn the language with the basics.
Be adamant with dzhavapetuhami,
Be indifferent to the purity of borscht,
Be generous with the one-eyed snake slaves
They libu throwing with his master's shoulder;
Be patient platinum issues
To lazy to govnolabami be strict.
Then you'll be the king among the debris,
Then, my son, you will Krestobog.
И так и так можно же. Взнузданный ~ обузданный, а обузданный в отношении процесса это вполне себе часто применяемый оборот. Например, чаще говорят "обуздать гнев кого-то", чем "обуздать гневного кого-то". Хотя это уже метафора такая скорее, но энивей. В принципе, тут можно было бы и поменять, да, размер не пострадает даже, но тогда смысл чуть-чуть другой становится, не "ты обуздал полет байтов", а "ты обуздал байты и они летают себе на поводках". Крестотред - самый филологичный тред зекача, лол.
>>707594
Боюсь, что тогда получится говно. Я, конечно, могу в ангельский, но не настолько, чтобы пилить стихи уровня Лозинского на нем.
Один анон статистику собирал по грамотности, там кресты тоже победили.
>
Гайз, доброй ночи.
Вопрос чуть не в тему треда,.
но это мой любимый тред, и я надеюсь парни подскажете.
короче ищу вакансии джуна или стажера на плюсах.
но в городе где ищу - на данный момент таких вакансий не очень много.
Поэтому решил просто писать письма всем компаниям, которые выложили вакансии разработчиков c++.
>Подскажите плиз, как в сопроводительном письме правильно напроситься на стажировку\"на работу на полставки" в компанию?
знаю, что вероятность не очень большая, что прокатит.
но попробовать хочу - хуже не будет.
вот только думаю, как бы правильно оформить это дело.
:
- Анон, Что кроме лаб писал?
- никаких суперпроектиков не пилил, если ты об этом. поэтому и хочу напроситься хоть на стажировку, хоть на полставки.
Но сомневаюсь, потому что если в итоге все равно хочу свалить в девелоп, то QA ведь не особо мне поможет, верно ведь?
Ищи мелкие компании без NDA-практики, дальше просто пиши прямым текстом предложение поработать за еду. Мало кто отказывается от почти бесплатного junior junior developer.
Ну "хулить" знают все, кроме, может быть, родившихся позднее 2000.
>Боюсь, что тогда получится говно. Я, конечно, могу в ангельский, но не настолько, чтобы пилить стихи уровня Лозинского на нем.
я просто слишеом много ищю и вайпаю этим эти треды чтобы игнорить эту тему. Здесь же есть красноглазики и понимающие потоки!!!
Еда такая.
Какие-то вы путанные, товарищи крестобляди.
пойми..
живу в общаге.. и тут у меня сервак под бсд для моих целей важных хранение дцп и я надеюсь что мои коды запуска атомных ракет никто не стащит благодаря i3lock но всякие прохожие лапают пек ирл по сетке я спокоен вроде ну и я просто хочу стащить скрин с вебки того кто трогал i3lock и лил мне не e-mail. и на linux решение есть.. но в бсд нет! и надо писать! самому!
добавлю что пек для кодинга на цпп и сервак -- одна железка
А при наследовании какие конструкторы проигрываются?
Папкин и дочерний при вызове дочернего?
Этот анон задал вопрос и пропал. Ему двое ответили, а он молчал. Спасибо я вместо него сказал. Это немного не настоящий случай. Наверно он всё таки не такой тупой был.
В шапке все книги хуевые, да еще и на английском многие. Правильно, что ты на них не обратил внимания. Лучше читай Ишкову, "Изучаем C++ на задачах и примерах". В России про C++ отличные книги пишут, это все знают. Еще могу порекомендовать Белова, "Основы программирования на языке C++ Builder". Ну а если из иностранных, то самая-самая лучшая книга это Рао, "Освой самостоятельно С++ за 21 день".
Посмотрим.
ето троллинк?
Первое упражнение Лафоре С++. Оцените говнокод
Обновил, ебаная магия. Но вопрос-то стоял как "книжка для продолжающих". Нахуя мне объяснения, кто такой if, зачем нужен виртаульный деструктор, и чем ссылка от указателя отличается? А вот, например, зачем нужен nullptr, и как компилируются эти ваши шаблоны, я бы почитал. На самом деле, штрауштрупа principles and practice 2015 года скачал, все правильно сделал?
А теперь ткни МОАР под литературой для ньюфагов и узри.
В раздел заходя, первым делом ищу ваши треды, чтоб насладиться стихами, излечить раненную душу
спасибо
Это кто питона глаза лишил, рысь?
Для начала - на случай своего ухода на фриланс - насколько фриланс на С++ перспективен?
Ну и второй вопрос - джуниор с Украины с образованием по программистской специальности и двумя годами опыта но опыта не особо удачного. Подробности описывать долго... Так вот - скажите критерии по которым можно определить потяну ли я на миддла?
Хочу в общем-то съебать в Харьков(личные причины почему именно туда) из меньшего по размеру(и зарплатам программистов) города и думаю на какую зарплату я могу рассчитывать. Сейчас получаю 400 баксов, хотя не устраивает не столько зарплата сколько то что в последнее время меня перекинули разрабатывать на iOS и Objective-C из-за отсутствия проектов на С++.
>насколько фриланс на С++ перспективен?
Нинасколько.
>Так вот - скажите критерии по которым можно определить потяну ли я на миддла
Срать на образование и место жительство, ты миддл когда есть пара лет опыта и сам ты так считаешь. Подготовься к собеседованию, подучись ебать мозги - и ты уже мидл лел.
>Хочу в общем-то съебать в Харьков
Пытаться съебать без оффера - хуёвая идея, лучше сначала поищи области где есть именно подобные проекты по твоему вкусу, если тебе принципиально.
>Нинасколько.
Вот этот вопрос особенно интересует. Почему так? Мало проектов? А почему их мало?
И если уж действительно так - то что из наиболее близкого перспективно для фриланса. Та же решетка перспективна?
При создании объекта унаследованного класс сначала вызывается конструктор родителя, затем потомка. Или о чём он спросил?
Ладно, ок... Жду ответа на другой вопрос:
>И если уж действительно так - то что из наиболее близкого перспективно для фриланса?
И матерю свой родной вуз за обилие матана и недостаток изучения языков программирования.
Я даже не могу сделать std::vector<const std::string> или std::vector<const std::int>.
У меня вопрос - как оно не выругалось на "7, 481"? На всякий случай скажу что число с плавающей точкой вводится как "7.481". А оно у тебя делит на 7.
В смысле правильно что не выругалось. Есть такая операция, но тебе она сейчас не нужна.
Вектор требует копируемость и присваиваемость элементов.
Зачем тебе вектор констант? Почему не констатный вектор? Ну или array попробуй, там, вроде бы, можно константы
Нихуя в маткадах не понимаю, код там дан полностью, нужно лишь переписать под си, буду благодарен
http://study.sfu-kras.ru/DATA/docs/ProgramTheory/recurs/hp_eiler.htm
Спасибо, чет упустил
Пик забыл.
Мимо юзающий printf и перегружающий только арифметические операторы.
Ох блядь. Если бы я увидел у себя в коде cout << hui << zalupa или stringstream piska; piska << "kek " << goabaw; - убил бы нахуй вместе с мамашей и обоссал бы обоих, скинув позже с балкона, ровно как и людей с ООП головного мозга делающих геттеры и сеттеры НА КАЖДЫЙ СУКА выпук, даже когда поле полностью редактируется извне и не модерируется классом.
Люто бешено проиграл!
Твой printf - говно, в него не выведешь содержимое любого класса.
А я привык хуячить в концольку для дебага всю внутреннюю хуйню - массивы, деревья, сеты - все нахуй.
Только в cout это тоже не вывести, если не запилить заранее этот функционал.
В кудебаге то же самое (разве что кутейные типы нормально форматируются на выводе).
>>708575
Да тебе и в крестах никто не мешает на каждый выпук прописывать функцию toString в классе.
> В кудебаге то же самое (разве что кутейные типы нормально форматируются на выводе).
В кудебаге работает со всеми кутейными типами и классами, а в куте есть типы и классы на абсолютно все случаи жизни, а для своих просто перегрузишь этот стрим.
Иди ебись с мютексами при выводе через cout в несколько потоков
Совершенно очевидно, что подразумевается тормознутость и ненужность float всюду, кроме эмбеддеда с действительно маленькой памятью. Вычисления-то все равно на даблах проводятся.
>тормознутость и ненужность float
Схуяли он тормознее?
>Вычисления-то все равно на даблах проводятся
Если ты их делаешь на х87, а не на SSE с флоатами.
Прата, в шапке есть
А потом ты такой делаешь objdump и видишь, что операции даже с единственным floating point компилятор делает с помощью SSE, а не на FPU.
Да все норм, просто если бы у Лафоре был дабл а ты решил вписать флоат то это не сильно идея. Хотя флоаты конечно не стоит использовать, если нет каких-то особых причин.
Все тоже самое, только вместо стрелочки =. И в последней строке ретурн, даже если он там не указан.
Верхний это рекурсивный вызов функции Eul, средний вызов функции augement, последний - return otv.
Но QtCreator удобней!
Чем хуевый?
Я пока заметил минус, что он не показывает элементы динамически созданных массивов.
Плюсы ориентированы на производительность. Игры, бекенды, ембедед. Было есть и будет. Вопрос скорее к популярности этих областей.
мордокнига на плюсах, азаза
>>708769
Показывает ебическое нагромождение типов при шаблонах, и нужно развернуть 100500 вложений, перед тем как добраться до значения, не показывает значение переменных вне зоны видимости. Где вотч?
Там же gdb, не? Должен уметь
Десктоп или веб?
У нас на девайсах пока что связка ядра на плюсах и гуи на яве/обжц/свтфт. Но уже глядят и пробуют Qt
Olopepe к успеху пришел?
hh.ru/vacancy/14737881
Вот это помогло, спасибо.
Не могу понять на данном примере, вот если книжек 10-20 это терпимо.
А если их 100500? Создавать 100500 переменных? А если изначально не знаю сколько будет книжек? Как тогда быть?
Создаешь вектор, динамически его заполняешь, в векторе хранишь указатели на книги, если книг очень много - используешь пул.
Более того - она еще и неотрицательная.
Но нахуя?
Если дошёл уже до упражнения, где надо выводить значок фунтов, то расскажи как сделал, а то я каждый раз переключал локаль, а позднее вообще убирал русские символы из листингов.
Начнем с того, что ебаный шакал - скрипт сборки кто за тебя писать будет?
Держи http://pastebin.com/uj7jXJFf
Во вторых - символ в терминале не квадратный, а узкий-высокий, что вытекает в пиздец высокую скорость по вертикали.
Какой еще скрипт? Накой он мне? Я ж просто код просил покритиковать. Про вертикальную скорость я знаю, но пока решил так оставить.
> Я ж просто код просил покритиковать.
Как ты предлагаешь "критиковать код", не собрав эту хуиту, не поработав с ней и вообще не зная, блять а компилится ли она вообще?
1. direction надо через енум сделать. какие нахуй 0, 1, 2, 3?
2. placeFood: зачем юзаешь сяшный ранд, а, нигодяй? юзай плюсовый генератор
2.1 зачем делаешь for (auto x : snake)? ты же по значению x передаёшь, передавай по ссылке auto& x
3. .h это сяшные хэдэры. в плюсах они .hpp или .hxx
4. Game() ctor: чему не через лист инициализации заделан?
5. и зачем в мэйне создаёшь объект Game на хипе? у тебя джава головонога моска?
делай Game game{}; и обращайся к методам через точку. и тогда delete gm не нужен
> 3. .h это сяшные хэдэры. в плюсах они .hpp или .hxx
Не пизди, hpp или hxx это что-то виндовое и нераспространенное.
Везде и всюду .h В крестах
Об том и речь. Нехуй доебываться.
list поменяй на вектор. list не cache friendly. И с вектором в памяти норм одним куском будет, а не как со списком.
>>709416
http://en.cppreference.com/w/cpp/language/initializer_list
на рашкованском понятие может по другому называться.
У тебя Game() { peremenaya1 = huita; peremenaya2 = drugayaHuita; }
что лучше сделать Game() : peremenaya1{ huita }, peremenaya2{ drugayaHuita } {}
>>709389
приличные люди .h для сяшных либ используют. http://stackoverflow.com/questions/152555/h-or-hpp-for-your-class-definitions хотя каждый обмазывается тем, чем хочет
> Qt - вполне приличные люди
> boost идеален
> "единый" синтаксис инициализации через {} не сломан
начальник
НАЧАЛЬНИК
он обосрался
> "единый" синтаксис инициализации через {} не сломан
Че?
>boost идеален
Чебля? Эта наркоманская хуита, которую читать невозможно, в которой ошибки на километры туалетной бумаги из шаблонного говна - это идеален?
Да вы ебанутые.
С вектором сложнее будет же. У спика в начало впихнул, с конца выпихнул и доволен, а вектор весь переебывать придется, не?
А по тебе видно, что ты мозахист. Без шуток.
Теперь не могу стрелочками перемещаться по строкам вверх-вниз, а это окошко листает какие-то варианты.
И ещё, где решения скачать для упражнений?
И какого хуя уже во 2й главе задания не соответствуют тому, чему обучался?
Блять, и в этом треде еще предъяву кидают, что мол в ди-тред никто не заходит, а тут всегда аншлаг?
Да потому что там таких даунов нет.
>- скрипт сборки кто за тебя писать будет?
pkg-config --cflags ncurses
pkg-config --libc ncurses
*libs
Нахуй вообще в данном случае для наследования нужны виртуальные деструкторы? Один хрен ни в векторе, ни в мапе нет ни одного виртуального метода. И нахуй надо наследоваться от вектора, что бы потом его удалять через указатель?
для списка можно написать аллокатор, который будет намного дружественнее к кешу, чем однокусочный вектор, в СТЛ есть чтобы делать аллокаторы, можно даже на шаред поентерах
>написал сраную змейку
>начали пиздеть про кэш и аллокаторы
Пиздец. А автогеном гланды из задницы вырезать не пробовали?
Да походу так и сделаю.
Без пердолинга его не вывести, а Лафоре не объяснил, как это сделать, пидор старый
Указатель - переменная, которая хранит адрес другой переменной.
Указатель на int - переменная, которая хранит адрес другой переменной типа int.
>Если дошёл уже до упражнения, где надо выводить значок фунтов, то расскажи как сделал, а то я каждый раз переключал локаль, а позднее вообще убирал русские символы из листингов.
>>709608
>Только что дошел, и тоже хрен знает, как его выводить.
>Ты-то как сделал, подробнее если?
Спермопроблемы-спермопроблемушки
>Указатель на int - переменная, которая хранит адрес другой переменной типа int.
Если у меня например [code] int *ptr [/code] то какой тут >адрес другой переменной типа int?
Это петушки критикуют же, аналогично тому, как критикуют отсутствие рефлексии. Вообще, когда появляется желание взять и расширить не фреймворковый, а, сука, библиотечный класс, это сразу говорит о терминальной стадии ООП межушного ганглия и неумении в нормальные паттерны с композицией.
Ты не инициализировал указатель.
> и неумении в нормальные паттерны с композицией.
>Я знаю кунг-фу, дзюдо, карате и кучу других страшных слов
Странный ты какой-то. Это же не rocket science, а сраные основы проектирования, их все знают, кроме совсем необучаемых и ньюфагов.
Если деструктор не виртуальный и ты наследуешь от класа няша, свой класс тульпа, и работаешь с тульпой через указатель на няшу, то деструктор будет вызываться няшный. Соответственно няшный кусок тульпы удалиться, а все потомковские данные тульпы будут где-то висеть. Строго говоря, тульпа и не разрушена и не существует.
Речь о том, что они тут не к месту.
Можно эдак и на паскале процедурном писать и кукарекать, что вокруг просто все дауны и не понимают в паттерны.
Это UB, так как адрес не обязан влезать в int. На 64 битах он, в общем случае, и не влезает.
>test.cpp: In function ‘int main()’:
>test.cpp:5:18: error: cast from ‘int*’ to ‘int’ loses precision [-fpermissive]
> int a = (int)(&a);
Ну да.
Это да, но такие ошибки из другой оперы же. Если, скажем, сделать
[code lang="cpp"]void a = (void)(&a);[/code]
, то все будет заебца, ибо внутри инициализирующего выражения уже работает декларация самого имени.
> то все будет заебца, ибо внутри инициализирующего выражения уже работает декларация самого имени.
Охуеть блять, и чо, можно написать int a = a?
То, что ты говоришь - это понятно.
Вопрос в том - нахуя работать с тульпой через указатель на няшу, если у няши вообще ни одного виртуального метода нет?
Например, вот внезапно захотелось сделать вектор::пуш_бэк_эррей( массив& ), хуй с ним отнаследовались, добавили метод май_мега_вектор::пуш_бэк_эррей. Нахуя нам вообще указатель на стд::вектор, если в нём нет нового метода?
Благодарочка от ньюфага
>Говноеды, поясните по-хардкору, почему СТЛ критикуют за то, что нельзя от контейнеров унаследоваться, мол деструкторы невиртуальные?
Идиоты какие-то критикуют. Наследование он контейнеров не нужно.
Я точно не уверен насчет того, будет ли это ошибкой/UB, но как минимум unspecified будет точно. А в случае с инициализацией адресом все абсолютно точно норм, адрес известен уже на этапе линковки.
Не пизди. Довольно годная вещь. Единственная ее проблема - это многословность.
Го-в-но.
Годная вещь - это Qt или phobos, последний вообще мечта.
А многословность - это огромный минус, на самом деле. Суть эволюции языков - уход от многословности, потому что ну блять - читать нереально, ни самому (когда вернешься переписывать через пару месяцев и уже нихера не помнишь), ни другим, кто твой код читать будет.
Выводы у тебя не верные. Используя какой-нибудь адаптер, ты все равно логически расширяешь библиотечный класс. Тут суть в методах: хочешь ли ты делать это в рантайме и таскать RTTI со всеми объектами или ты хочешь хуячить максимально оптимизированный код. Тащемта рефлексия в C++ тоже будет.
Не может быть без варнинга. Это access к неинициализированной переменной.
>Таки компилится, без единого варнинга.
>>709782
>Не может быть без варнинга.
Ну вот, я же говорил:
prog.cc: In function 'int main()':
prog.cc:1:22: warning: 'a' is used uninitialized in this function [-Wuninitialized]
int main() { int a = a; }
Это ты тот даун, который любит ковыряться в говне, лишь крошечная часть которого в консоли ошибок будет выглядеть навроде 1> A=std::allocator<std::pair<const boost::interprocess::ipcdetail::sync_id const ,boost::unordered::iterator_detail::iterator<boost::unordered::detail::ptr_node<std::pair<const boost::interprocess::ipcdetail::sync_id,void >>>>>
?
Энивей - у меня компилит без варнинга, сам видишь.
Алсо - в результате 0, вроде компилер не должен инициализировать переменные, но видать на практике таки инициализирует?
Насколько я помню, в прошлый раз ты сполна напился моей живительной урины. Почитай предыдущее обсуждение. Сейчас мне даже комментить лень.
У вас segmentation fault, бери вилку и чисти говно.
Нахрена ее проверять? Просто вводи правильно.
Вот есть у меня два окна, получаем main.qml + main.qml.ui и foo.qml + foo.qml.ui
Как мне из main.qml вызвать окно, описанное в foo.qml.ui ? Обращаюсь по айди, пишет undefined reference. Использую loader, так оно просто встраивает окно в main.qml, а не создаёт отдельно.
Рефлексии не будет. Никогда. Будут только опциональные костыли, напижженные из полустандартных библиотек, ядро в этом плане никак не изменят. Можете скринить.
Он имеет право инициализировать, но не обязан. Unspecified behaviour же.
import QtQuick 2.5
import QtQuick.Window 2.2
Window {
width: 800
height: 600
visible: true
title: 'window1'
Window {
title: 'window2'
width: 100
height: 100
visible: true
}
}
Алсо странно, раньше окном становился любой корневой Item - Rectangle, да что угодно. А сейчас у меня получилось что-то увидеть только с корневым Window. В последних версиях Qt чего-то ужесточили?
Ну диалог вроде не от окна наследуется
>>710438
Да, это работает, но как сделать то же самое, при условии что в одном файле нужно создать экземпляр окна, объявленного в другом файле?
> Да, это работает, но как сделать то же самое, при условии что в одном файле нужно создать экземпляр окна, объявленного в другом файле?
Ну ты свой "экземпляр в другом файле" от Window унаследуй главное, а из какого он там файла - какая разница?
Имеется 22 lvl, студент 4 курс до конца обучения еще 1 год специалист, устроен в одну контору где программирую, но нормальная работа начнется только в июлю, а сейчас просто хожу раз-два в неделю сижу за пекой и делаю тоже самое, что и дома разрабатываю графический интерфейс на Qt для баз данных.
Что хочу: стать первоклассным специалистом по C++. И вот возник вопрос как лучше этого достичь?
1. Читать книги, одновременно программировать проги?
2. Не читать книги, а постигать тонкости языка через разбор чужого кода?
3. Прочитать Струструппа, а потом двигаться по варианту 2?
В конторе, к слову, предложили вариант 2 аргументируя, что не стоит книгами забивать пока свою голову и лучше научится практическим умениям, а потом только уже копаться в тонкостях языка.
Ты хочешь по нажатию кнопки открыть еще одно окно, причем из другого qml файла, верно?
Книгу Майерса "Effective modern c++" однозначно нужно прочитать, а остальное смотреть по мере необходимости.
>Mastering CMake
Я хуею. "Мастеринг системы сборки". Не говорит ли это о том, что инструмент переосложнен? Так же как и гит. Охуели совсем по книге на каждую ссаку выпускать. Скоро будет "мастеринг линакс консол".
>Скоро будет "мастеринг линакс консол"
Ну привет, манька. Консоль - это просто интерфейс к системе, такая книга есть и дает знание всего линукса в деталях.
>Так же как и гит
Алсо книга довольно простая и разделы о интерфейсе пользователя занимают страниц 15. Вся остальная книга описывает внутренности гита и всякие фишечки про продвинутой настройке.
Спасибо.
>>711141
Да, сработало, благодарю.
Удобная вещь этот QML в теории, но, чувствую, я ещё поебусь с ним.
Когда пришлось писать на виджетах после QML - я проклял все.
QML уменьшает количество кода и ебли раз в 10, без преувеличения.
Ещё вопрос подъехал:
Хочу чтобы окно при закрытии не уничтожалось, а просто становилось невидимым. Типа:
onClose{
visible = false
}
Как в этом случае сказать системе, чтобы она проигнорировала onClose, после того как я его обработал?
Лично у меня из QML onClose никогда не работал, я всегда в крестах класс, унаследованный от QQuickWindow там событие отлавливал. Для другой цели, правда - чтобы выдать что-то вроде диалога "вы действительно хотите выйти".
О как, неплохо. И хорошо что можно через лоадер обращаться напрямую к членам компонента, а то я уж думал сигнал придётся пилить.
Ты даун. А QML работает из крестов, целый модуль Quick называется.
И двигло жабаскриптовое это крестовый QQmlEngine
Ну тык, qml это одна из лучших вещей которые были созданы за последнее время. Жалко конечно, что Qt сделаны на базе крестов. Думаю, за 5-10 лет они непременно с них спрыгнут.
Да хоть на ту же дишку. Многие вещи тогда из Qt можно будет выкинуть нахер, вроде строк, контейнеров, сети, QVariant, xml - кучу всего.
И тащить можно будет гораздо меньше модулей.
Плюс нахрен не нужен будет moc, свой QObject, сигналы и слоты...
Прикинь, браузерные движки жса тоже в основном на плюсах все написаны. И виртуалка явы, ровно как и дотнета. Но они здесь не обсуждаются.
Всё понял, спасибо.
Ты что то хотел?
Пошли помогать создавать новый проект в студии нюфагам. Зато 30 перекатов, не то что в ди треде.
1. учишься, читая чужой legacy-говнокод
2. становишься первоклассным специалистом по C++
3. ???
4. PROFIT!
плюсы это всего лишь язык. а прикладная область у тебя какая будет, манька?
мимо-мидл-21лвл
Кроме того, создание видеоигр и нас самих делает счастливыми. Я не думаю, что написание компилятора может сделать кого-нибудь счастливым человеком. (с) Андре Ламот
Разбираюсь с исходниками эмулятора WoW 2.4.3, помимо всего прочего очень много кода на бусте, приходится очень много гуглить, каждый гуглёж заканчивается новым, всё нарастает снежным комом.
Это уже в процессе.
Можешь дать ссылку на сырцы эмулятора?
Спасибо за ответ.
Связанная с техникой. Скорее всего создание интерфейса для радиоэлектронных устройств. К слову - это прибыльно на поприще программистов или есть более профитные области?
В идеале хотелось бы уехать из своей мухосрани после окончания вузика, имея год работы в конторе, в ДС и там в течении пяти лет заработать на квартиру. Потом свалить обратно в свою мухосрань и работать удалено. Как думаешь реализуемо?
Всё таки есть вопрос: если без установленного вижуала на компе запустить .ехе, скомпилированный с вижуала, компьютер требует вижуальыне библиотеки. А как сделать так, чтобы ростенький С++ код в .ехе запускался без них?
очевидно, что не юзать вцредист зависимые либа, а стандартную СИ библиотеку и нативный винапи
Я, вроде бы, не юзаю. Я в этом не мастер, но я подключил только:
#include <iostream>
И там у меня код на 10 строчек.
Visual studio > 6 автоматом линкует с новыми версиями Си билиотек, можешь попробовать статическую линковку, но там может быть проблема с динамическими библиотеками которые потом захочется подключить.
Либо юзать 6 вижуал студию она вроде нативный мсвцрт.длл юзает. Или какой-нить простой IDE и MinGW
А без этих программ никак не скомпилировать программу?
Я себе простенькую сделал для хапоминания и генерации паролей, и еще хотел бы её на линукс сделать.
Если программа простенькая, то проще не морочиться , а просто линкануть статически с VC рантайм библиотекой из твоей студии.
MinGW provides a complete Open Source programming tool set which is suitable for the development of native MS-Windows applications, and which do not depend on any 3rd-party C-Runtime DLLs. (It does depend on a number of DLLs provided by Microsoft themselves, as components of the operating system; most notable among these is MSVCRT.DLL, the Microsoft C runtime library. Additionally, threaded applications must ship with a freely distributable thread support DLL, provided as part of MinGW itself).
вижу, что минигв бандл либы только для мултитред приложений.
Я Qtшные проги компилил, возможно что они всегда мультитред.
Но чужие либы оно однозначно тянет.
#include <iostream>
int main()
{
std::cout << "Hello, world!\n";
}
Что я делаю не так. Всего две зависимости?
Помогайте, посоны. Когда ввожу строку в нем, например:
http://pastebin.com/yREBsUX0
Так вот, ясно видно там, как выстрелила строчка
> background: #
Как сделать, чтобы этот хуев придурок не вытягивал их туда?!
Трипл не пиздит.
Честно говоря, тоже так думаю. Вот все надеялся, что что-то новое выйдет, а за год сильно ничего и не поменялось.
Видать, пока что лучше использовать VS с решарпером.
>>Насчет nullptr, я так понял что что-то с компилятором и надо что-то там подключить.
У тебя там auto эио c++11 стандарт, наверно в настройках компиляции старый выбран
Буст -- это набор совершенно разных библиотек. Нет смысла учить его целиком, разбирайся в тех модулях, что используются
QChar/
Зря. В крестах это не работает. Кресты без библиотек не умеют в юникод.
Тебе нужен Qt, его QString и QChar - умеют.
> u8
http://en.cppreference.com/w/cpp/language/character_literal
http://en.cppreference.com/w/cpp/language/string_literal
Что не нравиться новичкам и профи?
Уже написал, что нет сетевого модуля, в алгоритм нельзя передать контейнер одним аргументом и про избыточность интерфейса аллокаторов.
Не нравится все, не могли как в phobos зделоть...
А вообще, сравни к примеру операции над QSet и std::set.
STL выглядит как издевательство.
Сегодня попробую изучить, что такое отладка.
Но сначала хочу узнать, что это за хрень на моем пике? Что за файлы не может найти? Программа ведь запускается и работает.
Я уже понял, спасибо.
Например:
.............................................................................................................................
// первый пиксель, который считываем, пусть будет закодирован цветами = 255, 255 , 255
int pixel_count = 1 // сколько пикселей считать
int mas = new int[pixel_count];
for (int i = 0; i < 3; i++) {
mas = new int [pixel_count];
}
mas = some_function_fromIMGlib(fname, pixel_count);
std::cout << mas[0][0] << " | " << mas[0][1] << " | " << mas[0][2] << std::endl;
...............................................................................................................................
Вывод будет:
255 | 255 | 255
Указатели макака съела.
Поправку сделаю и надеюсь, что он ничего не скушает:
int '//' mas = new int'/*'[pixel_count];
for (int i = 0; i < pixel_count; i++) {
mas = new int [3];
}
mas['i'] кушает, да и кушает.
А тебе они не нужны целиком, тебе только QtCore, ну и какие там модули от openCV нужны.
Посмотри Simd либу, на сорсфорже лежит
спасибо
Отладочные символы для подключаемых dll. Означает, что дебажить программу внутри dll придётся вслепую.
Когда ты собираешь программу с отладочной информацией, компилятор кладёт (в данном случае, в .pdb = program database) имена функций, типы, структуры, имена и расположение переменных и прочую информацию. Называется это все symbolic debugging information или просто символы. Когда отладчик студии стартует, он пытается подгрузить .pdb для всех .dll и .exe, чтобы их можно было отлаживать с комфортом. Для системных .dll (ведь их собирал не ты) можно настроить подгрузку .pdb с сервера Microsoft, но у тебя она либо не настроена возможно, стоит погуглить _NT_SYMBOL_PATH, либо что-то просто пошло не так.
Ему тупо нужно скачать Windows Debugging Tools.
> проигрывания музыки из консоли
Эээ, а какая разница откуда музыку проигрывать, лол?
А концолька - это ncurses
> А как вообще написать программу которая проигрывает музыку?
Самое простое - QSound::play("C:\muzyaka\Zapahlo Vesnoy.mp3")
Сначала выводи много раз маленькие строки в cerr. Потом выводи тоже самое в cout. Сравни время. Длина строки 100 символов, а выводить 100000 раз. Перенаправь вывод в файл, но не в программе. Замерь время и сравни.
А тебе не нужен Qt целиком, бака. Только QtCore + QtMultimedia.
Всего 2 модуля, из 30+. Гуй не нужен, все остальное тоже.
Советовали выше по треду. Спасибо.
Нет. Это чисто для звука. Тогда бери qt.
Никогда им не пользовался и не хочу учить. Как это делать?
Погуглил. Mpv Вроде ffmpeg использует. Другие консольные плееры так и не понял что используют, но у них есть файл alsa.h. Можно что-то из этого использовать?
Ввожу в консолях размер матрицы nxm и предлагаю выбрать вводить матрицу самостоятельно или срандомить ее.
Как защитить программу от долбоебов да-да, лабодрочер с преподом тестировщиком так, чтобы:
матрица вводилась минимум 2х2 и выше, при выборе рандома и ввода (единицы и нуля соответственно) нельзя было вводить ничего кроме, иначе хуй
всякая хуйня типа ЕСЛИ ВВЕЛИ ЕДИНИЦУ ТО работает вроде заебись, но вводя всякие символы типа !"№;% и тд ошибки не получаю
И местные еще че-то гнали на Ди-тред, мол там никого нет...
Ну проверяй поток ввода на ошибки.
Тогда безразлично, очевидно же. Вон посмотри на вики статью с критикой C++, там много всего про STL.
Всегда думал, что можно, ведь мы мы просто используем адрес экземпляра класса, но пишет какую-то странную ошибку.
Простите, если непонятно написал.
Есть класс Triangle и TriangleMesh. В конструкторе Triangle я указываю родитель TriangleMesh и использую некоторые его паблик данные.
Есть конструктор(опускаю остальные аргументы).
[code]
Triangle(TriangleMesh m){
mesh = m;
}
TriangleMesh &mesh;
[/code]
Ошибки:
error: use of deleted function 'TriangleMesh& TriangleMesh::operator=(const TriangleMesh&)'
error: uninitialized reference member 'Triangle::mesh' [-fpermissive]
Не понятно.
Не знаю почему, но получилось починить, используя список инициализации.
Ссылки константные, объявив первый раз ссылку на объект ты не можешь "перенаправить" ее на другой объект. Можно заменить объект на который указывает ссылка другим объектом (для чего нужен конструктор присваивания). Ссылку можно инициализировать в конструкторе, в том числе из указателя. https://ideone.com/dDw6wG
Но для обычных виртуальных функций не обязательно писать свои реализации?
Обязательно писать вроде только те, которые = 0.
Ты не можешь создать объект класса, у которого остался хоть один чисто абстрактный метод.
>>712279
Ладно, тогда такой вопрос:
Есть Vector<ParentClass>.
ParentClass - абстрактный, то-есть, имеет чисто виртуальные методы.
И есть ChildClass - унаследованный от ParentClass, в котором все виртуальные функции реализованы.
Могу я сделать push_back в этот вектор экземпляром ChildClass?
У меня чёт не выходит. Экземпляр класса создается, а вот при push_back пишет: cannot allocate an object of abstract type 'ParentClass'.
Может я должен какой-то хитрый каст сделать?
Вектор не хранит элементы полиморфно же, а просто по значению. Виртуальность вообще не используется. В твоем случае при любой операции копирования/перемещения внутри вектора все элементы, которые есть в дочернем, но отсутствуют в базовом, срежутся. >>712303 не решит проблему, все равно будут дичайшие ошибки, и твое счастье, что тебе написало о попытке аллокации объекта ParentClass и копирования того, что пушится, во вновь созданный объект. А могло не повезти так, и просто срезать члены молча, порождая трудноуловимые баги.
Тебе нужно использовать unique_ptr или другую оберттку (ref, голые указатели, shared_ptr, самописные велосипеды...), чтобы задействовать полиморфизм, тогда все будет норм.
Забавно, а в дишечке с этим все норм.
abstract class AbstractTest {
void test();
}
class Test : AbstractTest {
override {
void test() {
writeln("lol, test!");
}
}
}
class Test2 : AbstractTest {
override {
void test() {
writeln("test again");
}
}
}
.......
AbstractTest[] tests;
tests ~= new Test();
tests ~= new Test2();
tests[0].test();
tests[1].test();
Забавно, а в дишечке с этим все норм.
abstract class AbstractTest {
void test();
}
class Test : AbstractTest {
override {
void test() {
writeln("lol, test!");
}
}
}
class Test2 : AbstractTest {
override {
void test() {
writeln("test again");
}
}
}
.......
AbstractTest[] tests;
tests ~= new Test();
tests ~= new Test2();
tests[0].test();
tests[1].test();
Нет, только если ты собираешься использовать родные методы дочернего класса, отсутствующие в родителе.
>курсовик
>недостатки STL
>отсутствие сетевой библиотеки
Шел бы ты отсюда, исследователь
>>711893
Традиционно обоссал STL-хейтера.
> 2016
> только завозят filesystem
> только завозят Parallelism
> нет networking
> нет graphics
> есть сферические гармоники и гипергеометрические функции
std::cout << std::top_kek() << std::endl; // Experimental feature `std::top_kek()`
>2016
>маньки до сих пор путают STL со стандартной библиотекой
>маньки нихуя не участвуют в работе комитета, но при этом требуют внедрения фич, как от майкрософта
Не то, чтобы это была только STL, просто от комитета подгорело
> 2016
> комитет состоящий из старперов
> решает что имплементировать в следующем стандарте
> ебля с шаблонами, или ебля с шаблонами
> 2527 год
> концептов нет
> модулей нет и не видятся
> нам нужна обратная совместимость
Манюсь, ты хоть один пропосал читал самостоятельно? Уровень проработки вопросов просто космический и, самое главное, никто не мешает тебе, дохуя критику, отправлять свои охуительные пропосалы и критику на обсуждение.
Еще раз: фичи стандарта по сути пилят до 5 человек каждую. Обычно вообще по одному. Т.е. ranges один человек пилит в свободное от работы время, concepts - еще один, и т.д. и т.п. А ты просто слишком туп и ленив, чтобы участвовать в таком serious shit.
Уровень проработки "бля, пасаны, а может ну нахуй это говно, 30 лет без него жили спокойно, а ещё обратную совместимость поломает, и добавит в язык 1,5 конструкций вместо 5к строк шаблонной ебли и падения компилятора с аут оф мемори и логов в 3 гб, ну нахуй".
Сколько они там не пропиздят ничего не изменится — контракты с концептам будут как везде если появятся, модель корутин как в шарпе не станет неправильной, а шаблоны будт с экспортом макросов по-умолчанию ради обратной совместимости.
Лучше вспомни сколько обсуждали вывод типов и что ихменилось. Зато 10 лет писали итераторные простыни на 5 строк кода.
> Уровень проработки вопросов просто космический
То есть реализация модулей от Шланга и Мелкомягких это дохуя юмор? Или там <= 5 человек? Бери и имплементируй, обратной совместимости все равно нет. Ах да, забыли про макросы, ну чтож, отложим на следующее десятилетие.
Пропосалы по моим вопросам уже до меня выслали. И на реддите все обсосали. Я не первый и не последний кого удивляет особая упоротость комитета.
И твоя кстати. Ах да, модно же быть нетаким как фсе, и ты со своим опытом компиляции lab4.c сидишь тут и затираешь мне про работу комитета.
> А ты просто слишком туп и ленив, чтобы участвовать в таком serious shit.
Сперва добейся? Ну давай тогда ты похвастайся своим участием в жизни языка.
Запускай из консоли.
Используй gеtchar для debug-версии.
Погугли, в студии вроде была возможность.
Спасибо, приятель.
Помню много лет назад не смог сдать какую-то лабу, так как преподаватель использовал линукс для компиляции лаб и system ("pause") не прокатила. Так я познакомился с кроссплатформенным программированием
Есть хеддер библиотеки, в котором используется майкрософтский unsigned _int64
Хотелось бы не править хеддер руками, а либо средствами языка, либо средствами cmake сделать его равным uint64_t.
Можно сделать #define _int64 long long, но хотелось бы что-то более кроссплатформенное.
Потому что в контексте задачи нужно только хранить значения, а указатели позволяют хранить нули и вообще мусор.
Это для char (и вообще непонятно зачем, приписано, что только basic latin можно совать. Чем тогда от обычного char отличается?)
В строках — с С++11.
Как мне проитерироваться по строке "I am ероха", прочитав ее из текстового файла в UTF, и получить length=10, а не 15, и чтобы были 'е', 'р', 'о', 'х', 'а', а не мусор с кракозябрами?
Использование указателей на базовый класс для указания на производные и виртуальные функции — это, собственно, вся суть ООП в C++. By design, так сказать.
Но в твоём манямире это называется "стрелять в ногу".
> By design, так сказать.
Щито поделать, если by design пользователи вынуждены стрелять в ногу
У меня крашится компилятор, хотя на онлайн ресурсах все работает. Компилятор dev c++
Где-то видел, что у MinGW бывают проблемы на Win8+.
Возможно, это относилось к старым версиям MinGW.
У тебя версия?
>"мастеринг линакс консол".
Смотря что понимать под этим. Если по стандартным консольным утилитам — то там можно и книги писать по их использованию.
>Поясните за буферизацию данных для вывода
http://stackoverflow.com/questions/2530663/printf-anomaly-after-fork
http://stackoverflow.com/questions/17454610/fork-in-c-using-printf
Ну смотри, Dev-C++ - это просто навороченный блокнот, у которого в настройках прописаны пути к компилятору. А компилятор лежит где-то недалеко от Dev-C++.
Есть два варианта:
1. Качаешь отсюда http://tdm-gcc.tdragon.net/download версию поновее, устанавливаешь и перепрописываешь пути к компилятору в настройках dev-c++ (или компилируешь руками в консоли)
2. Лучше не стоит. (руками заменить TDM-Gcc из dev-c++ на тот что с сайта выше)
И подумай о том, чтобы перейти хотя бы на code;blocks.
>-std=c++11 включена?
Вроде компилятор должен сообщать о том, что не может понять код, а не валиться как срань лажёвая.
Мне нужно свое дерьмо как то преподу показать, чтобы допуск выставил. А он проверяет все это на этой херне.
Скажи преподу, что это его проблемы.
Ты код написал, и он работает. (если конечно ты написал и он работает)
Вроде как код норм (ну, за исключеним того, что findmax пустые списки не может), проблема в компиляторе.
Вот, находится http://stackoverflow.com/questions/12811762/dev-c-in-windows-8-gcc-internal-error
Разве не так?:
uint64_t P[300]; // массив пятых степеней, сам заполнишь
int n[5] = {0};
int• Eu(int be, int en, uint64_t &S, int •n, int j)
for (int i = be; i < en; ++i) //а может надо <=
{
if (n[4] == 0) return n;
S = S + P; n[j] = i;
if (i < 3)
n = Eu(i, en, S, n, j + 1);
else {
size_t k = std::lround(pow(S, 0.2));
if (P[k] == S) n[4] = k;
}
S = S - P;
}
return n;
}
можешь объяснить за else? что после него, какие значения мы считаем в пов и зачем?
Ты на перле когда-нибудь писал? Там есть постфиксный if:
a = 6 if b == 0 else 7;
По сути эквивалено a = (b==0 ? 6 : 7);
Тут та же фигня по всей видимости.
Или это в питоне? В общем, хуй помнит, но в какой-то скриптопараше такое есть.
По-моему, и в perl, и в python, и в ruby
[Error] invalid conversion from 'uint64_t {aka long long unsigned int}' to 'uint64_t {aka long long unsigned int}' [-fpermissive]
вот такую хуйню словил
>в питоне
Кстати там такой бред. После пары часов бросил учить это говно. Инт всегда длинный. Табуляция вместо begin/end операторов. Тип переменные меняют во время работы программы.
>Кстати там такой бред. Инт всегда длинный. Табуляция вместо begin/end операторов. Тип переменные меняют во время работы программы.
Поздравляю с синдромом утёнка.
> S = S + P[ i ]; n[j] = i;
> S = S - P[ i ];
Забыл про макабу.
>>712746
Поправь что я указал выше.
Ты еще не дошел до того момента, когда обьект класса при создании может в итоге оказатся объектом не того класса, который ты указал. Один пиздец. Проходи мимо.
> Ты еще не дошел до того момента, когда обьект класса при создании может в итоге оказатся объектом не того класса, который ты указал
> Тип переменные меняют во время работы программы.
Не оно?
Нет, я про мета классы говорю.
Там не надо ничего присваивать, автоматом неоднозначная хуйня присвоится.
Там S вместо P должна быть. Сравни код со своим скрином, я один в один переписывал.
не понимаю только почему у функции стоит указатель. Из-за этого вывести результат не могу
сорри за тупые вопросы
Функция возвращает указатель на массив n. А учитывая, что массив остаётся на месте, можно и просто void сделать и из n результат читать.
http://study.sfu-kras.ru/DATA/docs/ProgramTheory/recurs/hp_eiler.htm
переписал с помощью тебя отсюда и получил это, но в ответе одни нули. Где я проебался?
http://ideone.com/4nJiFu
Пофиксил - P[N] надо в ноль сбрасывать. И n[4] проверять на неравенство нулю. И костыль пришлось добавить в 32 строке, раз ты S в самом массиве хранишь.
http://ideone.com/vsWkWU
Аноны, где есть годный гайд по нейросетям/компьютерному зрению на плюсах и/или Си?
Сам недавно искал. Проверил ШАД и курсер. Там про плюсы нет. Только теория. И через пару лекция она становиться непонятной.
На входе дается число N, которое представляет собой число строк, которое последует после.
Каждая строка представляет из себя ФИО кандидата, всего кандидатов 6. Каждый раз, когда встречается ФИО кандидата, ему добавляется голос. Нужно вывести голоса всех участников.
Например
Ввод:
3
Хуй
Пидор
Пидор
Вывод:
Хуй 1
Пидор 2
Задача очень простая. Но как ее решить если имена кандидатов нельзя сохранять в массиве? При этом все строки считываются только 1 раз.
std::map
> Типо неэффективно по памяти.
Чебля?
Кмк, ты бред городишь. Никак, сука.
Можешь не сохранять в МАССИВЕ, можешь сохранить в MAP.
И да, можешь не сохранять - просто этих пидоров на вход подавай уже отсортированными.
Вот решение http://inf.ege.sdamgia.ru/problem?id=6472. Я эти паскали хуескали не понимаю, но в пояснение написано что в массив не сохраняется, это единственная проблема, которую я хз как решить. Думаю вообще нельзя никакие контейнеры юзать.
>>713087
Че бля не так? Сказали без массива? Че делать? Я пробовал рекусию написать, так вроде получилось, но я делал файл.
Там есть массивы? Я эти языки не знаю, даже не пытался. Если что, простите.
>но в пояснение написано что в массив не сохраняется
Входные данные все в массив не сохраняются. То есть у тебя не будет массива строк
Меньшиков Олег
Миронов Евгений
Меньшиков Олег
Машков Владимир
Меньшиков Олег
А будет один с тремя именами и второй с голосами.
Какая разница что говнокод, если это говнозадача?
Такую хуйню вообще надо делать однострочником на юниксовых утилитах.
Нет. Бросил на четвёртом уроке. Или лекции не помню как там у них это называется. На курсере это недели. Не нашёл связь с крестами и перестал понимать что там объясняют.
Они по 6 элементов. Можно и без них.
Потому что из-за сезонного набега лабодаунов, уважаемые господа вроде меня, брезгуют ведением полемики в таком питомнике.
ребят.. есть видео поток не в лине. как его заюзать в моей крестопрограмме не меняя ос естесна пните в нужную сторону то!
Как ты заебал...
Порылся тут в гугле. /dev/video0 в FreeBSD, как я понял, создаёт демон webcamd. Который является портом драйверов video4linux в BSD (в юзерспейс).
Значит, твой /dev/video0 является video4linux(2)-устройством.
>>713539
https://wiki.freebsd.org/WebcamCompat вот тебе список веб-камер и их интерфейсов. У большинства V4L/V4L2. У которых unknown, в столбце программ, умеющих с ними работать висит pwcview. Лезь в сорцы.
BTW, у https://www.freshports.org/multimedia/pwcview/ в зависимостях хидеры для Video4Linux-совместимых устройств.
рили?
про вебкамд знал, а о совместимости нет..
>>713541
буду работать теерь. больще не вайпаю этим
>про вебкамд знал, а о совместимости нет..
http://www.selasky.org/hans_petter/video4bsd/
> Webcamd is a small daemon that enables about 1500 different USB based webcam, DVB and remote control USB devices under the FreeBSD-8.0 and later operating system. The webcam daemon is basically an application which is a port of Video4Linux USB drivers into userspace on FreeBSD.
Насколько раком нужно быть, чтобы скулить месяц, если мимокрокодил нагуглил всё, что нужно (в том числе примеры кода) и разобрася (концептуально) минут за 10-15?
Кайся ещё.
примеры были же не под webcamd и благодаря тому что я слишком часто вижу отсутствие совместимости линя с бсд, открыл для себя с++ тред.
где не умеют делать лабы но гуглят точне меня мои друзья аноны.
каюсь. я рачье
>примеры были же не под webcamd
Примеры могут быть под webcamd?
webcamd это кусок сорцев ядра linux: драйвера для web-камер, тюнеров и ещё чего-то + реализация в userspace необходимых для этих драйверов функций ядра linux + вываливание получившегося v4l(2)-девайса с помощью CUSE в виде /dev/videoX.
Примеры работают с /dev/videoX, символьным устройством, и им пофиг на то, кто и как обслуживает это устройство, лишь бы оно предоставляло ожидаемый интерфейс.
Кайся ещё.
>>712646
Испольхуйте std::shared_ptr или std::unique_ptr в качестве элементов вектора. В Сее++ _уже_ не нужно ручное управление памятью!
Да, а есле препод будет упираться, то нужно собрать несколько человек, которые подтвердят, что на новом Дев-С++ всё работает.
Имеется в виду второй х нахдится в новой области видимости. Но не еби голову, такое редко необходимо, хотя можно попонтоваться перед коллегами.
Ещё, например, в инициализации for цикла можно объявлять не только переменные, но и задавать новые типы.
Но самая самая пушка - это выброс исключений из конструкторов и особенно из деструкторов, зная все подводные камнни - устроишься на любую работу! Так в делегирующем конструкторе можно бросить исключение, а в вызывающем его обработать, смотриться реально круто.
> Существует швабодный кроссплатформенный фреймворк-надмножество C++ под названием Qt.
> Qt
> швабодный
Давно у нас запрет на коммерческую разработку называется швабодой?
Мань, погугли условия GPL и LGPL прежде чем квохтать. Ограничения связаны с исходниками и объектными файлами, а не с запретом коммерческой разработки.
У тебя устаревшие данные, Qt уже много лет как под LGPL доступен.
> запрет на коммерческую разработку
Закрытость кода ортогональна коммерчности разработки, коммерческий код можно и под GPL писать.
Код написан, код работает, но, в случае, если N и M не равны, происходят косяки, а именно поиск ведется неправильно и только по первым N элементам. Как пофиксить?
И самый интересный вопрос для меня
Как запихать это дерьмо в классы, чтобы все было красиво и заебись работало? В главной должна остаться только функция бектрекинга
http://ideone.com/EHCgMN
http://ideone.com/8jgUgD
http://ideone.com/zwgO65 (условие задачи)
public:
void test() {
cout << "aaaa";
_getch();
}
};
class B:public A
{
public:
test();
};
не могу понять почему не работает такая конструкция
>test();
>не указан тип возвращаемого параметра
>в родительском классе не указано, что метод виртуальный
Virtual ставить вроде не обязательно, но будет не очевидно работать и вряд ли так, как ты планировал.
Есть у меня код, который парсит запросы. Запросы поступают в формате JSON в виде QString.
Когда я достаю из JSON-а тело сообщения, в нём не ищутся русские символы, то есть.
item.value("body").toString().contains("слово")
Всегда выдает отсутствие этого самого слова.
Как с этим бороться?
Кутишный JSON может создать объект только из utf8, возможно в этом проблема, но что с этим можно сделать?
А, всё нормально, убрал русский текст, преобразовал и опять его вставил, заработало.
Спасибо, анон!
Только не забудь что теперь ты не можешь напрямую (по индексам) редактировать захардкодженые строки с кирилицей, так как у них будут разные длины у разных символов, например "слово" 13 байт занимает, без учета нулевого https://ideone.com/4kNJ4z
Ввести строку символов. Напечатать гласные русские буквы в алфавитном порядке с указанием числа их появления в строке. Отдельно напечатать отсутствующие гласные
Ее сам решу, подскажите только по поводу множеств.
Множества это std::set если на элементах можно задать отношение порядка и std::unordered_set если нет (или не важно).
>указанием числа их появления
А нахуй множество? Тебе map нужен или даже тупо массив и switch.
очень часто в проектах вижу, что используют cmake, но он настолько всратый в плане синтаскиса, что иногда хочется вскрыть своей соседке вены.
И есть по соседству qbs, который, в общем-то, даже как-то по-проще и логично выглядит, почему его не гоняют так, как cmake?
Алсо, IntelliJ выпустила свое недоделанное отродье - CLion, так вот, там тоже используется cmake.
Почему, черт подери, это старое говно мамонта не заменят на что-то более вменяемое?
Потому что крестоёбы не могут без ебли в жопу. Предложи им выкинуть анальное шипованное дилдо, и использовать что-то нормальное, так их тут же обморок хватит.
Не, qbs не совсем полноценен, нужен еще qmake. Вроде только к Qt6 собирались полностью доделать.
Я вот сейчас буду пердолиться и переустанавливать ШИНДОВСлинупс, 16.04 еще не вышедший - потому что этот ебучий qbs тут сука не работает, в 15.10 версия 1.4.2+dfsg-3, а эту ебань пофиксили в 1.4.2+dfsg-8, и разумеется - в репы нихуя не попало.
Всем хорош этот qbs, и синтаксис, и плюшки, кроме одного - не работает, блять!
>714155
>Я вот сейчас буду пердолиться и переустанавливать ШИНДОВСлинупс, 16.04 еще не вышедший - потому что этот ебучий qbs тут сука не работает, в 15.10 версия 1.4.2+dfsg-3, а эту ебань пофиксили в 1.4.2+dfsg-8, и разумеется - в репы нихуя не попало.
>Всем хорош этот qbs, и синтаксис, и плюшки, кроме одного - не работает, блять!
Ну и долбоеб. Нет чтобы из сорцов собрать, так лучше систему переустановить. Да еще и убунту нестабильную. Ну ты блять просто рафинированная qt-макака.
Все равно через полторы недели релиз. А этот 15.10 корявый меня уже вконец заебал.
Делать мне нехуй, как собирать из сорцов и потом ебаться как это втиснуть в систему, и шоб не конфликтовало.
И потом - а может быть, там Qt 5.6 искаропки будет, на что я очень надеюсь.
И баг в долфине с крашем по "create new folder" задрал, нет слов. Сука, чтобы создать папку - я как аутист ебошу "mkdir" в терминале.
>А этот 15.10 корявый меня уже вконец заебал.
>Думает, что 16.04 внезапно станет дохуя стабильным.
>Не знает, как установить собранный пакет в систему
>Предпочитает переустановить систему, вместо того, чтобы разобраться.
Какой феерический долбоеб, ужас просто. Это не ты возмущался, что STL - говно, случайно?
>А 16.04 это ж LTS, епта, на хуй путешествуй.
Охохо бля. Дите, твой LTS в убунте в лучшем случае testing из debian. В лучшем. 14.04, например, стала юзабельной только через полгода после релиза. Лучше послушай серьезного дядю и не выебывайся:
ubuntu в любом проявлении не является эталоном стабильности. Вместо того, чтобы по системам скакать, лучше поставь debian stable или аналог. А хочешь свежий opensource - собирай самостоятельно.
По крайней мере Джесси, Визи был вполне норм, а с джесси я охуел - не то слово.
class A
{
public:
A(const color & c = color(1, 1, 1)) : _c(c){}
protected:
color _c;
}
и класс B
class B : public A
{
public:
B(const color & c = color(1, 1, 1)) : A(c) {}
void changeC(){_c = color(0, 0, 0);}
}
Почему я не могу поменять значение _с? Пишет, что _c const.
Блин я тупой. Не в том методе менял цвет. Менял в константном.
прости, о несовместимости /dev/video* спрашивал же 3 треда назад, аноны сказали платформозависимые они. Вот и рыл не туда!
В линуксе нет буфера обмена. Он предоставляется иксами и следовательно способ его использования зависит от конкретной оконной системы которую ты используешь. Читай документацию для своей оконной системы. Или лучше найди библиотеку (Qt) или утилиту (xclip, например).
А утилиты вроде xsel/xclip каким образом всегда получают доступ к буферу обмена, независимо от DE/WM? Мой оконный менеджер не предоставляет никаких средств для работы с буфером обмена.
Вообще, я хотел экстеншон под PHP написать (он не умеет работать с буфером обмена, а, к примеру, Python умеет), поэтому xsel/xclip не подходят.
Ставь арч. Минимум пакетов, проблем нет, или гуглятся быстро, свежий софт в репах или в aur, работает пошустрее убунты и конпелять ничего не надо.
> работает пошустрее убунты
Ну пошли-поехали сказочки.
Если че, на скорость работы убунты нареканий у меня никогда не было. И суть убунты - никогда не ебаться с софтом или чем угодно, потому что убунта - дефолтный линупс, под нее есть ВСЕ и официально.
Когда я захочу поиграться в роллинг - я опять поставлю опенсусю, она куда лучше этого школьного поделия.
Единственное что, мне нравится его вики. Но она просто вики по линупсу, без привязки к этому рачу.
Сделай на пайтоне.
Является ли это коммерческим использованием, что нужно сделать чтобы этим легально заниматься, есть ли какие-то лазейки вроде старых версий и статических сборок?
прочитай текст лицензии - а
там есть комерческие версии - б
GNU GPL ебанутая лицензия.. мимо каюсь за /dev/videoX иши для фриланса и отсутствия трабл с лицензиями BSD лицензию или что-то стороннее как в эклипсе, которое не обязават тебя писать писать лицензию
ps: http://www.gnu.org/licenses/gpl-faq.ru.html
Я и не думал, что с этим вопросом все настолько сложно
Я во всем этом совершенно ничего не понимаю, никогда не пилил ничего платного. Можно немного проще, есть ли в qt способы написать коммерческий проект не покупая ничего? Если нет, то что лучше использовать для этих целей? Нет никаких гарантий, что эти вложения окупятся пока.. нужно же с чего-то начать?
если тебе говорт -- напиши лабу то пиши в qt т.к. писать лабу это можно за денеФФку ивписываешься в лицензию.
...
ты можешь написать на свободном qt всё и в триал версии все продавать думал, лайфхак.. но не думаю что новые владельцы qt (не нокия же уже?) тупые чтобы делать такую херню..
...
не так то просто всё с юристами..
Я же говорю, я пробую себя на разных биржах
Я уже понял, что можно провести не одно бессонную ночь, разбираясь с лицензиями
Мне не сложно отвалит 30 баксов за любимый кьют, чтобы ко мне не доебывались потом
В чем можно писать, чтобы не разбираться этим вопросом лицензий. студия? кодблокс? Я уже не знаю куда тыкнуть
А как передать проект? Закинуть дополнительно 800 мб длл?
eclipse
там другая лицуха..
и запретить в открытом Qt писать тебе нельзя.
..
собственно я не уверен о динасической линковки длл для обхода лицензии я не слышал, но в теории код qt тогда не скрыт.. только твои прога к ним подсасывается и забирает либы. нов рашке за лицухи фрилансеров не ебут, не парся если нет 30$ на лицензию.. тебя не будут искать с оФФчарками по мухосрани. ты неуловимый Джо
Собираю я его
g++ --std=gnu++11 -Wall -O2 sundram.cpp
time ./a.out 100000000 > /dev/null
real0m9.817s
user0m8.588s
sys0m1.236s
Однако, если заменить i=i+1, j=j+1 на i=i+2, j=j+2, что, по логике, должно ускорить код за счёт пропусков чётных чисел, получается вот что:
time ./a.out 100000000 > /dev/null
real0m18.101s
user0m10.980s
sys0m7.132s
Помогите, а то ЯННП.
>int a = new int [n];
>memset(a, 0, sizeof(int) n);
>delete [] a;
>using namespace std;
>int a = atoi(argv[1]);
>спрашивает алгоритмы в C++ треде.
Да ты, блядь, гонишь.
Во-первых, нахуй тебе C++? Пиздуй в C тред.
Во-вторых, пиздуй в алгоритмы-тред.
В-третьих, твое предположение про двойной инкремент - бред, ты нихуя не понял этот алгоритм.
В-четвертых, как следствие неправильной работы алгоритма - у тебя получается больше значений, в stdout выводится больше значений, отсюда разница во времени.
>В-четвертых, как следствие неправильной работы алгоритма - у тебя получается больше значений, в stdout выводится больше значений, отсюда разница во времени.
Видимо, так. Отсюда и дохрена времени в sys. Сам попробовал посмотреть генерируемый компилером код. Принципиальной разницы нет, просто константы в инструкциях удваиваются.
Я тебе рекомендую почитать Кормена. Начни с "Введение в алгоритмы". Твоя манера разбора алгоритма немного охуительная. В плохом смысле.
Есть сабж:
auto ptr = std::make_unique<int>(10);
auto lambda1 = [] { qDebug() << "lol timeout 2000"; };
auto lambda2 = [value = std::move(ptr)] { qDebug() << "lol timeout 2000"; };
connect(timer, &QTimer::timeout, lambda1);
//connect(timer, &QTimer::timeout, lambda2); не компилится сцкпздц
С какого хуя я не могу подсунуть лямбду с захватом по move никуда, какого черта?
Блять, да там целая тонна.
Малость перефразирую - почему я не могу сделать так:
auto ptr = std::make_unique<int>(10);
std::function<void()> lambda = [value = std::move(ptr)] {
qDebug() << "lol timeout 3000";
};
Я конечно ща залью ошибку на пастебин, но там пиздец.
Ну, ругается на отсутствие конструктора копий у unique_ptr.
Не совсем из той лапши понятно, кому он нужен.
(Возможно, класс, генерируемый из лямбда-функции, пытается обзавестись конструктором копий, но так как у него есть поле value с удалённым конструктором копий, он обламывается.)
Я сейчас коннект и весь кутешный дроч вообще закомментил.
Оно может создать такую лямбду (как auto), но стоит заменить auto на std::function<void()> - начинается потеха.
Где-то он пытается вызвать конструктор копий у объекта, полученного из лямбды. Конструктор копий пытается скопировать свои поля, а у value удалённый конструктор копий.
Я это могу объяснить так.
Я не понимаю, почему это не работает.
Функции можно присвоить лямбду? Можно. Так какого хрена лямбда не превращается в функцию?
> Так какого хрена лямбда не превращается в функцию?
http://en.cppreference.com/w/cpp/utility/functional/function/function
Я подозреваю, что вызывается 5-й конструктор:
template< class F >
function( F f );
Initializes the target with a copy of f.
Да забей ты на коннект, нет его - он тут вообще не существенен.
Я уже нагуглил. http://stackoverflow.com/questions/25421346/how-to-create-an-stdfunction-from-a-move-capturing-lambda-expression
Нельзя обернуть лямбду в функцию еслю у нее ТОЛЬКО мув без копии.
Ебучий СтраусТруп, гори в аду со своим костыльным блядским поделием, сука!
>Ебучий СтраусТруп, гори в аду со своим костыльным блядским поделием, сука!
Который тред ты уже бомбишь?
Ну и нахрена они выкатывали эту херню в с++14, если на практике ей пользоваться нельзя?
"Мы дадим вам возможность захватывать контекст в лямбды без копирования! Только без копирования все равно нихуя не работает"
>Ну и нахрена они выкатывали эту херню в с++14, если на практике ей пользоваться нельзя?
А когда на практике были классы с конструкторами копий, у которых есть некопируемые поля?
> без копирования все равно нихуя не работает
Если ты избавишься от аддикции от std::function, всё заработает.
Это ты неосиливший почитать документацию рак. Еще и жалуется пытясь прицепить то, чего не знает, к qt-шному говноподелию. Иди нахуй.
крестобляди обосрались, не знают что делать в этом случае и маневрирут?
> выстрел в ногу
Школьники услышали где-то термин, но не поняли его смысла и суют теперь где попало. Это как с GOTO в своё время.
Это ты даун.
Тебе сказали - как переместить лямбду в функцию? А ты только мычишь животное и на qt стрелки мечешь.
Я за пару минут на stackoverflow раз в 100 больше по делу узнал, чем тут промычали.
> А ты только мычишь животное и на qt стрелки мечешь.
> //connect(timer, &QTimer::timeout, lambda2); не компилится сцкпздц
>Я за пару минут на stackoverflow раз в 100 больше по делу узнал, чем тут промычали.
Я тебе правильно ответил ещё до того, как ты SO открыл.
Мне не нужен комментарий по поводу чего эта сука ругается.
Вопрос был в том, какого хуя и можно ли обойти.
На SO есть простыня кода чтобы обойти эту парашу, и я ее сейчас пробую.
А тут только кукарекать горазды.
Ты тупорылый даун, который пытается использовать move-only тип как copy-constructable. Это логически не корректная конструкция. Свои кукареку засунь себе в жопу и иди дальше делай свою лабу.
>Был вопрос - что с этим делать.
Пикрил
>Пока ты кукарекал и крыльями размахивал - я уже нашел как решить проблему.
Додумался подсунуть Copyable объект в connect? Вот это ты решала.
При чем тут коннект? Суть вопроса как сделать функцию из лямбды с захватом.
Я нашел, как сделать перемещаемую лямбду.
>Пикрил
Ну это надо быть эпическим дауном, чтобы не понять, что "какого хуя не работает" эквивалентно "как сделать чтоб работало".
На нем написан Qt и qml.
Я хотел взять не цепепе, но там херовый биндинг к qml, конкретно в QVariant не реализованы QVariantMap и QVariantList - то, что часто юзается чтобы внутрь контекста данные пробрасывать.
Есть QAbstractListMode, но с ним много ебли.
Короче, было два стула - ебаться с гуем или ебаться с крестами.
>Я нашел, как сделать перемещаемую лямбду.
Чувак, у тебя и так была перемещаемая лямбда. Ты пытался поместить объект, который можно только перемещать, в объект, который можно копировать. Очевидно, что это нельзя сделать никаким образом, но если ты знаешь, что твоя лямбда будет храниться строго в одном экземпляре, то можно сделать хак, написав copyable-обертку и выполнять move в конструкторе копирования. Но что тут сложного, я так и не понял.
>Ну это надо быть эпическим дауном, чтобы не понять, что "какого хуя не работает" эквивалентно "как сделать чтоб работало".
Каким же надо быть эпическим дауном, чтобы не понять, что если хочешь получить вопрос на А, то нужно и спрашивать А.
> то можно сделать хак, написав copyable-обертку и выполнять move в конструкторе копирования. Но что тут сложного, я так и не понял.
Собсно, это я и сделал.
>Каким же надо быть эпическим дауном, чтобы не понять, что если хочешь получить вопрос на А, то нужно и спрашивать А.
Еще раз - очевидно, что суть вопроса была "как обойти".
Изнутри qml абсолютно все - QVariant, додик.
Короче, судя по стилю твоего письма, ты весьма малоумный студент третьего курса максимум.
За 5 минут общения с тобой я понял следующее:
- Ты не читаешь документацию
- Ты агришься и обвиняешь всех вокруг в том, что не знаешь того, что написано в документации
- Ты не умеешь ясно формулировать свои мысли и вопросы
- Ты начал работать с инструментом (С++), не изучив его на должном уровне. Я полагаю, что это скорее тенденция, нежели единичный случай, и поэтому твоя жизнь будет довольно сложной и нервной до тех пор, пока ты не поймешь этот простой факт.
Удачи.
Ничего не понимаю
>If you are an individual working on your own applications to sell or for any other purpose, you may use the software to develop and test those applications.
Раз я пишу сам, я могу использовать для разработки и отладки, окей
А скомпилировать\продать?
Ну хорошо, скомпилировать прогроамму для коммерческого использования я могу
А монетизировать? Может, нужно завяление написать куда-то или еще что, я не хочу чтобы меня потом мс у меян два ляма отсудил
Может, есть хорошая статеечка где-нибудь, поясняющая за лицензии и коммерческое использование компиляторов и иде?
>Если вы являетесь физическим лицом, разрабатывающим собственные приложения для продажи или с какой-либо другой целью, вы можете использовать данное программное обеспечение для разработки и тестирования таких приложений.
Я только начал изучать c++, написал в консоле калькулятор.
В функции main весь код калькулятора. Как сделать её многоразовой? Калькулятор просчитывает одно действие, выдаёт ответ, а затем работа функции завершается.
По ссылке текст кода, если кому интересно.
http://pastebin.com/pR9X0YFS
Вы видите копию треда, сохраненную 7 мая 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.