Мне было интересно, является ли вызов оператору delete
синхронным или нет. Другими словами, если я это сделаю:
delete p;
Гарантирует ли стандарт С++, что только после завершения этого вызова память освобождается? Или это асинхронный вызов и просто планирует задачу для ОС освобождать эту память, как только она решит, что это лучшее время для этого?
Если первый случай является допустимым, значит ли это, что мы должны реализовать собственный механизм асинхронного удаления отходов? Я спрашиваю, потому что я бы сказал, что большую часть времени нам (программистам) все равно, когда память освобождается точно, и поэтому мы не хотим, чтобы наш код зависал и дождался этого (скорее всего, дорогого?) системный вызов для завершения, а скорее запланировать задачу для удаления и немедленно продолжить выполнение. Предоставляет ли С++ какой-либо стандартный объект (возможно, через стандартную библиотеку?) Для этого, не изобретая колесо?