Ычан: [d | au / b / bro / hr / l / m / mi / mu / o / r / s / sci / tran / tu / tv / vg / x | a / aa / c / fi / jp / rm / tan / to / vn]
[Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]
Ответ в нить [Последние 50 сообщений]
Имя
Animapcha image [@] [?]
Тема   ( ответ в 17934)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, MP4, OGG, OGV, PDF, PNG, PSD, RAR, SVG, SWF, TXT, WEBM, WEBP, XCF, ZIP размером до 5000 кБ.
  • Ныне 3501 unique user posts. Посмотреть каталог
  • Предельное количество бампов нити: 500
cpp_furudo_erika.png - (754.49KB, 800×800)
17934
No. 17934  
Учим C++ за 21 день всем чиочаном.
Можно показывать крутой или страшный код, просить помочь с лабами и контрольными, помогать другим, а главное - много кодить.

Пополняемый список полезностей тут: https://docs.google.com/document/d/1rPPbiViiLSR2PlPnQWpZyk9Sz6-J7ucyM7HR6wvsYKk/edit?usp=sharing
171 сообщений пропущено. Показаны 50 последних сообщений
No. 18319  
>>18318
Да, перестарался.
No. 18320  
>>18305
Нет, последний квадратик про эмбедд. Ну или про что-то, что до ОС грузится.
>>18316
> перегрузки оператора "точка".
Зачем? А остальное в близжайших стандартах должны ввести.
No. 18325  
>>18320
Ну хотя бы для того, чтобы можно было биндить заново, и чтобы можно было иметь смарт-референсы.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4173.pdf
No. 18330  
Почему std::async по умолчанию не или не всегда асинхронный? Я думаю, чего это у меня время выполнения как без async, а он лениво всё выполнял.
No. 18331  
>>18330
http://en.cppreference.com/w/cpp/thread/async
No. 18333  
15125000256810.jpg - (383.81KB, 1561×2048)
18333
>>18331
> If neither std::launch::async nor std::launch::deferred, nor any implementation-defined policy flag is set in policy, the behavior is undefined.
И почему тогда флаг необязателен?
No. 18336  
>>18333
А ты нужную перегрузку выбрал из списка?
No. 18339  
>>18336
Хм, да, но первый вариант такое же UB.
> 1) Behaves as if (2) is called with policy being std::launch::async | std::launch::deferred. In other words, f may be executed in another thread or it may be run synchronously when the resulting std::future is queried for a value.
То ли это если компилятор видит future, то откладывает до его востребования. Сипипец.
No. 18341  
>>18333
Потому что могут, очевидно же. Или дело в каких-нибудь сумасшедших трюках для самых умных, но это вряд ли.
No. 18343  
https://hastebin.com/otorurekow.cpp
Стало интересно и написал, что-то. ЧСХ, синхронный вариант быстрее из-за того, что в асинхнонном замочки юзались. Кстати говоря, почему не компилировалось, когда async вызывался как
std::async(std::launch::async, rea, ifs)
?
No. 18347  
>>18339
>UB
>If both the std::launch::async and std::launch::deferred flags are set in policy, it is up to the implementation whether to perform asynchronous execution or lazy evaluation.
Результат выполнения вэлл-дифайнд-программы не зависит от того, выполнился асинк в треде или лениво.
>И почему тогда флаг необязателен?
Видимо, потому, что авторы решили, что главное свойство асинка - не прерывать вызывающий поток, и что если флаги не указаны, то можно хоть как. Для сред выполнения с одним ядром это лучше, а остальные пусть флаг указывают.
>>18343
А параметр лист у лямбды где? Что за привычка такая - говорить, что не компилится, а дальше "ебитесь и догадывайтесь сами"? Иногда кажется, что вы специально вообще весь вывод ошибок отключаете и компилите вслепую.
http://coliru.stacked-crooked.com/a/7cef3fb3db4a115a - вот, показывай.
No. 18348  
>Для сред выполнения с одним ядром это лучше, а остальные пусть флаг указывают.
Точнее, пусть среда, знающая число ядер, сама выберет то, что лучше - ленивость для одноядерных ЦП и параллельность для многоядерных.
No. 18350  
>>18343
Может, std::ref нужен для ifs.
No. 18351  
>>18347
> А параметр лист у лямбды где?
На кой хер?
> Что за привычка такая - говорить, что не компилится.
Темплейт не дедуктится.
http://coliru.stacked-crooked.com/a/15d3b9006f4544d9 - показал.

>>18350
И правда. Спасибо, почему-то в голову самому не пришло.
No. 18360  
>>18351
>На кой хер?
Теперь понял.

Объясните мне теперь, что это за ошибка такая?
>/usr/local/include/c++/7.2.0/future:1712:5: error: no type named 'type' in 'class std::result_of<std::__cxx11::basic_string<char> (*(std::basic_ifstream<char>))(std::basic_ifstream<char>&)>'

Это функция, от стринга, возвращающая указатель на функцию, принимающую референс и возвращающую стринг. Хули он её дедуснуть не может?
http://coliru.stacked-crooked.com/a/4e17247cd426fe88
Какое отношение ссылки в аргументах имеют к result_of?
No. 18361  
>>18360
http://www.cplusplus.com/reference/fstream/ifstream/ifstream/
> (3) copy constructor (deleted)
fstream объекты не поддерживают копирование.
No. 18362  
>>18361
Копирование - это как раз без &.
No. 18365  
>>18362
Да, не посмотрел, где ошибка. Тогда так. http://coliru.stacked-crooked.com/a/b8887c7f9859e0c5 Но ты это и так знал и вопрос в том, почему так? На самом деле, понятия не имею, что это и что ты делаешь.
No. 18366  
>If the deferred flag is set (i.e. (policy & std::launch::deferred) != 0), then async converts f and args... the same way as by std::thread constructor, but does not spawn a new thread of execution. Instead, lazy evaluation is performed: the first call to a non-timed wait function on the std::future that async returned to the caller will cause the copy of f to be invoked (as an rvalue) with the copies of args...
Так, теперь понятно, почему оно не должно работать - флаг рантаймный, а в одном из вариантов происходит копирование (или в обоих).
>>18351
Да. Осталось только понять, как тип возрващаемого указателя влияет на вычислимость возвращаемого типа. Обрати внимание - я не меняю тип аргумента функции, я меняю тип аргумента функции, указатель на который возвращает функция.
>>18362
Дык там функция принимает ifstream по значению, а возвращает указатель на функцию, которая принимает по ссылке.
No. 18367  
>>18365
Не я делаю. Он берёт вывод из >>18351 и пытается понять, где ошибка. Не ясно пока, почему работает WAT3.
No. 18368  
>>18365
Он не я. Спасибо тебе огромное, до меня допёрло. То есть, аргумент для result_of - это и тип Callable и список желамых параметров в одном.
http://coliru.stacked-crooked.com/a/093a22237891f112
Тогда ещё вопрос: почему как мне сделать то же самое с, например, функцией от инт, возвращающей инт? Мне нужно написать int(int)(int), но это оказывается функцией, возвращающей функцию.
No. 18369  
Я так понимаю, что сделать это без имени типа или иного усложнения не получится.
No. 18370  
>>18368
> Мне нужно написать int(int)(int)
Нет, нужно написать int(int). Но result_of не для этого.
No. 18371  
>>18370
Так я уже пробовал до того, как допёр, и это не компилится по названой причине - должен быть коллэбл-тип и скобки со списком араетров.
No. 18434  
>>18399
Оценил.
No. 18457  
a.png - (91.83KB, 1350×634)
18457
>>18399
Mistake # 21: Showing any weakness to std::async
No. 18529  
>>18457
Is it about shared_future or what? Looks perfectly normal considering RAII and absence of thread isolation.
No. 18530  
>>18529
Мне не нужен был возвращаемый результат, передаваемая функция была void, поэтому я вызывал async без future. А потом удивился, обнаружив последовательное выполнение.
No. 18532  
>>18530
Вот не вижу ничего удивительного в этом, ведь завершение async-функции - это тоже результат. Если тебе нужен detached thread, то тебе нужен detached thread.
No. 18635  
>>18457
В первом параграфе говорится о shared_future? Как могут несколько future относится к одному shared state?
No. 18636  
https://hastebin.com/conuvaxiyi.cpp
Попросили сделать реализацию алгоритма Прима. Вроде даже не совсем говнокод.
No. 18761  
Бампну ради великого правосудия.
No. 18836  
https://solarianprogrammer.com/2017/12/27/cpp-17-constexpr-everything-as-much-as-the-compiler-can/
Что-то я не понимаю этого. Зачем именно everything? Это же вредит читаемости кода. Почему нельзя констэксприть только очень важные для производительности части кода?
No. 18837  
>>18836
Как вредит? Вредить разве что компайл тайму может.
No. 18843  
>>18837
Вредит таким образом, что нужно код переписывать в соответствии с требованиями constexpr.
No. 18844  
>>18843
Н-е совсем. Скоро сделают, что можно будет действительно везде приписывать, как инлайн, например, а компилятор будет решать. Ну, а если тебе вправду нужно, чтоб функция на компайл тайме считалась, то перепишешь. Компилятор умный, так что это совсем не сложно.
Вообще, не очень понял твоё высказывание. Никто же тебя не заставляет переносить всё в компайл тайм, ну.
No. 18853  
>>18844
>Никто же тебя не заставляет переносить всё в компайл тайм, ну.
Я уже в нескольких местах видел такое предложение. Ясен хер, меня не заставляют, но мотивы этих людей мне непонятны (они шутят?).
No. 19004  
Поясните за скрипты линкера. Кто-то писал?
No. 19017  
>>19004
Пояснился. Осознал, что ничего не знаю, стал плакать в подушку.
No. 20339  
1531910919139-b.jpg - (128.20KB, 1366×768)
20339
Посоветуйте плиз, чем профилировать выделение памяти и потребление cpu софтинки на плюсах, собранной под mingw.
No. 20371  
Если что - помог Intel VTune. Триалка месяц, для разового ресёрча хватило.
No. 26517  
Какой забавный спам приходит.
No. 26518  
>>26517
А неплохо.
No. 26973  
По мотивам треда для новичков.
No. 26974  
>>26973
Более смешной вариант.
No. 26978  
>>26974
Еще более смешной
No. 26997  
>>26976
Вчера, кстати, пришлось погрустить из-за того, что мапа действительно не умеет сортироваться "автоматически". Мне хотелось иметь контейнер для N объектов, каждый из которых содержит в себе свой поток, живущий отдельной жизнью и в произвольные моменты времени меняющий состояние объекта - причем я планировал периодически находить самый "старый" (давно не менявший состояние) из объектов и заменять другим.

Конечно, рефлекторным порывом было определить оператор сравнения для объектов по дате изменения и складывать их в std::set - но сразу стало ясно, что оно не будет так работать.

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

https://onlinegdb.com/vfSmqJ6kqO
No. 26998  
А еще в нагрузку дали девочку-студентку (не лоли, крупную и потрепанную). Три месяца назад ей дали амбициозное задание сделать свой кастомный видеоплеер для подглядывания за идущими в нейросеть данными. Девочка молодец и многое сделала, но небыстрыми темпами - и я типа должен помочь ей побыстрее закончить.

Теперь она впиливает новые кнопочки и фичи, а я лазаю за ней по коду, исправляя новые сегфолты и утечки памяти. Чувствую себя очень глупо.
Удалить сообщение []
Пароль  
[Mod]