[WT] [Архив]  [Поиск] Главная Управление
[Совместно с Ычаном]
[Назад] [Вся нить] [Последние 50 сообщений]
Ответ в нить [Последние 50 сообщений]
Имя
Animapcha image [@] [?]
Тема   ( ответ в 17934)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, OGG, PDF, PNG, PSD, RAR, SVG, SWF, TXT, XCF, ZIP размером до 10000 кБ.
  • Ныне 2770 unique user posts. Посмотреть каталог
  • Максимальное количество бампов нити: 500
151195732963.png-(754.49KB, 800×800, cpp_furudo_erika.png)
17934
No. 17934 watch    
Учим C++ за 21 день всем чиочаном.
Можно показывать крутой или страшный код, просить помочь с лабами и контрольными, помогать другим, а главное - много кодить.

Пополняемый список полезностей тут: https://docs.google.com/document/d/1rPPbiViiLSR2PlPnQWpZyk9Sz6-J7ucyM7HR6wvsYKk/edit?usp=sharing
17 сообщений пропущено. Показаны 50 последних сообщений Развернуть все изображения
No. 18139    
15132581808.jpg-(205.26KB, 1685×1332, 1512926094814.jpg)
18139
キタ━━━(゚∀゚)━━━!!
No. 18149    
https://www.viva64.com/ru/b/0391/
No. 18217    
http://www.iecc.com/linker/
Нашёл неплохую книжечку про линкеры.
No. 18228    
>>18217
Зачем это вообще нужно знать?
No. 18230    
>>18228
Для общего развития. Ну или чтоб знать, как либы работают, например.
No. 18236    
Начинаю копать старьё:
https://hastebin.com/axosiwuciq.cpp
No. 18237    
>>18236
Спасибо, не поняла.
No. 18242    
>>18237
Просто функция, которая вызывает функцию, которая вызывает функцию.
No. 18254    
https://hastebin.com/mekaqurojo.cpp
Тут какие-то игрушки с компайл-таймом.
No. 18274    
>>18254
Хастбин перестал что-то отображать у меня. Пробовал другие ссылки и с другого браузера.
No. 18300    
>>18139
Последнее - какое-то гонево в любой ОС с защитой памяти. Писать, конечно, можно попытаться куда угодно, но оно либо сразу свалится с access violation, либо умрет вместе с процессом рано или поздно.
No. 18304    
>>18300
Там скорее всего про эмбед.
No. 18305    
>>18304
За смарт-пойнтеры в эмбеде по рукам-то вам настучат сразу.
No. 18309    
>>17968
> А чем тебе позиксные треды не угодили?
Непереносимо.
No. 18316    
>>17944
вэриадик тимплитс - лучше, чем вэрарг
инишиалайзер_лист - лучше, чем пушить по-одному из С-массива
иф констэкспр - лучше, чем сфинае-лапша и ифдефы
дидакшн гайдлайнз стало больше
стало больше полезных перегрузок для STL
инлайн стэтик мэмбэрз
лэмбда-экспрешнз рулят, использую их много где

Лично мне не хватает модулей, консептся ар эджективс, рэнджес ТС и перегрузки оператора "точка".
No. 18318    
>>18316

> тимплитс
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    
151458163663.jpg-(383.81KB, 1561×2048, 15125000256810.jpg)
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    
151523827912.png-(91.83KB, 1350×634, a.png)
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    
Бампну ради великого правосудия.
Удалить сообщение []
Пароль  
[Mod]