The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Утверждён стандарт C++20, opennews (?), 07-Сен-20, (0) [смотреть все] +1

Сообщения [Сортировка по времени | RSS]


19. "Утверждён стандарт C++20"  +/
Сообщение от lockywolfemail (ok), 07-Сен-20, 10:24 
Он всё ещё строгое надмножестао с++? Или всё?
Ответить | Правка | Наверх | Cообщить модератору

105. "Утверждён стандарт C++20"  +/
Сообщение от anon345634758 (?), 07-Сен-20, 13:03 
Ну судя по тому что выкинули volatile, уже скорее нет.
Но мне кажется это и к лучшему
Ответить | Правка | Наверх | Cообщить модератору

187. "Утверждён стандарт C++20"  +/
Сообщение от SR_team (ok), 07-Сен-20, 19:53 
> выкинули volatile

так и не успел понять зачем он был нужен

Ответить | Правка | Наверх | Cообщить модератору

237. "Утверждён стандарт C++20"  +/
Сообщение от draw1 (?), 08-Сен-20, 03:14 
Например, чтоб "бить по рукам" оптимизатор в хитрых низкоуровневых моментах. Иногда надо чтоб код делал ровно то что написано. Буквально. Без сюрпризов и самодеятельности (а в ассемблер уходить лень ради какой-то мелочи, да и переносимость хочется).
Может для аналогичного теперь есть какая-нибудь очередная новая синтаксическая конструкция...
Ответить | Правка | Наверх | Cообщить модератору

263. "Утверждён стандарт C++20"  –2 +/
Сообщение от Webmonkey (?), 08-Сен-20, 11:18 
>"бить по рукам" оптимизатор в хитрых низкоуровневых моментах

UB-driven development?

Ответить | Правка | Наверх | Cообщить модератору

246. "Утверждён стандарт C++20"  +1 +/
Сообщение от Eddy_Em (?), 08-Сен-20, 07:37 
Для разного рода embedded'щины.
Ответить | Правка | К родителю #187 | Наверх | Cообщить модератору

347. "Утверждён стандарт C++20"  +/
Сообщение от Аноним (347), 10-Сен-20, 03:49 
Ну вот есть у нас простенький микроконтроллер, на нем куча разных прерываний вылезает, во всех переменные могут поменяться, а без volatile - компилятор, который вообще не знает про прерывания, так соптимизирует что из переменной будет читаться одно и тоже.
Ответить | Правка | К родителю #187 | Наверх | Cообщить модератору

351. "Утверждён стандарт C++20"  +/
Сообщение от Аноним (351), 10-Сен-20, 06:25 
Для того чтобы сказать компилятору что это область памяти (переменная) особенная и может измениться в любой момент и она тебе (компилятору) не подконтрольна, так что не нужно производить над ней оптимизации. Так же, компилятор, на некоторых платформах, вставляет instruction fans (компилятор - не перемешивай порядок операций над этой областью) и cpu fans (процессор - выполняй инструкции в том порядке в котором они написаны, а не перемешивай в угоду производительности ибо есть side эффекты). Применяется когда ты работаешь с регистрами CPU, внешними устройствами, многопоточность (google: Scott Meyers Singleton, как самая известная мне иллюстрация проблемы) и другой "особенной" памятью.
Ответить | Правка | К родителю #187 | Наверх | Cообщить модератору

255. "Утверждён стандарт C++20"  +2 +/
Сообщение от anonymous (??), 08-Сен-20, 09:50 
Его не выкинули, просто теперь вместо 'PORTA &= 0xF0' нужно писать 'PORTA = PORTA & 0xF0', где PORTA это '#define PORTA (*(volatile uint8_t*)(0xBEEF))'.
Смысл этого изменения в том, что некоторые люди думали что операции над volatile атомарные, и пытались использовать его вместо std::atomic, с соответствующим результатом.
А теперь явно видно, что запись и чтение volatile это разные операции.
Ответить | Правка | К родителю #105 | Наверх | Cообщить модератору

346. "Утверждён стандарт C++20"  +/
Сообщение от Аноним (-), 10-Сен-20, 03:28 
Взял и утрамбовал бифа. Люди думали - слабовато, надо так - человечество считало что volatile - это atimic, но потом я прочитал ман пагу и всех спас..
Ответить | Правка | Наверх | Cообщить модератору

296. "Утверждён стандарт C++20"  +/
Сообщение от Аноним (296), 08-Сен-20, 20:51 
Не выкинули, но настоятельно советуют его использовать только по назначению - при прямой работе с хардварью. Что правильно - для всяких там синхронизаций надо использовать средства стандартные библиотеки, а не ручками спинлоки крутить.
Ответить | Правка | К родителю #105 | Наверх | Cообщить модератору

367. "Утверждён стандарт C++20"  +/
Сообщение от Alex (??), 11-Сен-20, 12:52 
чтобы ручками спинлоки крутить есть std::atomic если надо
Ответить | Правка | Наверх | Cообщить модератору

111. "Утверждён стандарт C++20"  +2 +/
Сообщение от Аноним (87), 07-Сен-20, 13:23 
Давно нет.
Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру