-
- Не-не вопросов меньше не стало. Т.е. это особый тип функции,
поддержка которых осуществляется на уровне компилятора, а не
библиотеки? А может стек всё же используется, но данные с него
копируются в динамическую память, выделяемую "на лету"? Каковы
накладные переключения корутин? Растут ли они с ростом локальных
данных? Как это вообще выглядит в ассемблере? - =AlexD=(01.10.2024 14:49)
- просьба почитать маериалы -я в первом сообщении накидал, это тремя
словами не выразишь. потом разжую детали. например то что компиллер
это делает все и как - это не либа, это алгоримы кодогенерации в самам компиляторе. наиболее обще
нужно понимать так - есть такие обхекты языка как переменные,
функции, классы и тд, и у них есть поведение согласно стандарту
С++, а теперь есть еще и co_routine. С++20 для поддержки этых
механизмов добавляет ключевые слова языка : klen(28 знак., 01.10.2024 15:05)
- Глянул одним глазком. Ну точно, состояние сопрограммы сохраняется в
куче, размер фрейма должен быть известен на момент компиляции, что
из этого следует - хз, вероятно рекурсии запрещены, может ещё чо. - =AlexD=(01.10.2024 15:54)
- Не обязательно в куче. Могу этот пример с корутинами накидать для
тривиальная прилагуха где нет malloc и new. В promise я опредеояю
где и как выделять фрейм для корутины. Это педаль для настройки. Я
всетаки реализую кучу чтоб юзать всю мощь STL... хотя и его можно
без кучи юзать переопределив аллокатрры на свои. - klen(01.10.2024 16:04)
- Дык какая польза от своих аллокаторов? Только если ты знаешь что и
когда выделяется и подсунуть статические массивы. А таг только
возня лишняя. - =AlexD=(01.10.2024 16:08)
- Я постиг смысл использовать перегрузку new, когда делал свои визуальные классы. Экземпляров визуальных классов много, а работает в данный момент времени всегда только один. Поэтому - выделил статичный буфер памяти, чтобы влезал экземпляр максимального размера (через union {}). Ну и перегрузил new в базовом визуальном классе - чтобы возвращался всегда адрес буфера. il-2(264 знак., 01.10.2024 17:08)
- Раз ты такой въедливый - нааа... все ответы тут, реализация внутренней механики в gcc klen(119 знак., 01.10.2024 16:25, ссылка, ссылка)
- Ты не знаешь, компилятор знает и спускает аллокатору размер фрейма. Откуда он знает? Он есть построитель дерева и его анализатор. Прежде чем ты от него получишь целевой асм, он на виртуальной машине его эмулирует и смотрит что по чем и куда. - klen(01.10.2024 16:13)
- Дык какая польза от своих аллокаторов? Только если ты знаешь что и
когда выделяется и подсунуть статические массивы. А таг только
возня лишняя. - =AlexD=(01.10.2024 16:08)
- Не обязательно в куче. Могу этот пример с корутинами накидать для
тривиальная прилагуха где нет malloc и new. В promise я опредеояю
где и как выделять фрейм для корутины. Это педаль для настройки. Я
всетаки реализую кучу чтоб юзать всю мощь STL... хотя и его можно
без кучи юзать переопределив аллокатрры на свои. - klen(01.10.2024 16:04)
- Глянул одним глазком. Ну точно, состояние сопрограммы сохраняется в
куче, размер фрейма должен быть известен на момент компиляции, что
из этого следует - хз, вероятно рекурсии запрещены, может ещё чо. - =AlexD=(01.10.2024 15:54)
- да на хабре про корутины нормально расписано в ряде статей.. а что
не расписано - то и знать ни к чему прогеру - POV(01.10.2024 14:51)
- нее - знать обязательно нужно, чтоб прально использовать и
перепиливать если чтото размыслил лучше. - klen(01.10.2024 14:56)
- Всё равно эти новые плюсы - процесс, а не цель и средство.
Задротство в общем... POV(284 знак., 01.10.2024 23:28)
- Я не высокоплачиваймый С++ кодер... я так для души.. чтоб было
всеобщее благоденствие и благодать. - klen(01.10.2024 23:32)
- Конвоир-поляк держался аристократом: он ни на кого не обращал
внимания и забавлялся тем, что сморкался на пол, очень ловко
пользуясь большим пальцем правой руки, потом он задумчиво растирал
сопли прикладом ружья, а загаженный приклад благовоспитанно вытирал
о свои штаны, неустанно бормоча при этом: "Святая дева". ETM(444 знак., 02.10.2024 03:33)
- Это вы еще не знаете в какую компанию я вчера вечером попал! Спектр
одаренности, мера несоответствия возрасту и степень ее
альтернатмвности были столь широки что не влазили в круги моих
понятий. Богомерский виски, усугубив типовое несоответствие
желаемых психологических реакций со стороны
репициентов-собутыльников почти довел до драки 40...50 летних
мужиков. И ладно если б изза баб, нет - обсуждались концепты С++. А
Вы Дева Мария, Дева Мария.. пытаюсь понять что за klen(20 знак., 02.10.2024 10:25)
- Виски богомерзки исключительно из-за несоответствия нашему менталитету геометрии тары потребления. Вроде наливаешь на донышко. Но площадь дна стакана губит перспективу благостности общения. Даже по C++ тематике. Про баб - вообще молчу... - ETM(02.10.2024 10:52)
- Надо соблюдать тематическую дозировку, она должна соответствовать... ну, дозировке :-) il-2(1 знак., 02.10.2024 10:47, картинка)
- Это вы еще не знаете в какую компанию я вчера вечером попал! Спектр
одаренности, мера несоответствия возрасту и степень ее
альтернатмвности были столь широки что не влазили в круги моих
понятий. Богомерский виски, усугубив типовое несоответствие
желаемых психологических реакций со стороны
репициентов-собутыльников почти довел до драки 40...50 летних
мужиков. И ладно если б изза баб, нет - обсуждались концепты С++. А
Вы Дева Мария, Дева Мария.. пытаюсь понять что за klen(20 знак., 02.10.2024 10:25)
- Конвоир-поляк держался аристократом: он ни на кого не обращал
внимания и забавлялся тем, что сморкался на пол, очень ловко
пользуясь большим пальцем правой руки, потом он задумчиво растирал
сопли прикладом ружья, а загаженный приклад благовоспитанно вытирал
о свои штаны, неустанно бормоча при этом: "Святая дева". ETM(444 знак., 02.10.2024 03:33)
- Я не высокоплачиваймый С++ кодер... я так для души.. чтоб было
всеобщее благоденствие и благодать. - klen(01.10.2024 23:32)
- Всё равно эти новые плюсы - процесс, а не цель и средство.
Задротство в общем... POV(284 знак., 01.10.2024 23:28)
- нее - знать обязательно нужно, чтоб прально использовать и
перепиливать если чтото размыслил лучше. - klen(01.10.2024 14:56)
- просьба почитать маериалы -я в первом сообщении накидал, это тремя
словами не выразишь. потом разжую детали. например то что компиллер
это делает все и как - это не либа, это алгоримы кодогенерации в самам компиляторе. наиболее обще
нужно понимать так - есть такие обхекты языка как переменные,
функции, классы и тд, и у них есть поведение согласно стандарту
С++, а теперь есть еще и co_routine. С++20 для поддержки этых
механизмов добавляет ключевые слова языка : klen(28 знак., 01.10.2024 15:05)
- Не-не вопросов меньше не стало. Т.е. это особый тип функции,
поддержка которых осуществляется на уровне компилятора, а не
библиотеки? А может стек всё же используется, но данные с него
копируются в динамическую память, выделяемую "на лету"? Каковы
накладные переключения корутин? Растут ли они с ростом локальных
данных? Как это вообще выглядит в ассемблере? - =AlexD=(01.10.2024 14:49)