Я никогда не использовал его ни для чего - слишком много ОС предоставляют виртуальную память и SIGSEGV или аналогичные, если они не могут предоставить ее позже, поэтому не стоит делать систему, которая полагается на устойчивость к исчерпанию памяти: это часто вне рук C ++. Тем не менее, если вы разрабатывали систему, в которой можно / нужно полагаться, я легко могу представить ситуацию, когда некоторые данные в реальном времени передавались в очередь в вашем процессе, и вы обрабатывали их и записывали / отправляли результаты. так быстро, как вы могли (например, видео аппаратное потоковое видео для повторного сжатия на диск / сеть). Если бы вы добрались до стадии, когда вы больше не могли хранить, вам просто пришлось бы бросить немного, но как вы узнали бы, когда это стало так плохо? Установка произвольного ограничения была бы глупой, особенно если ваше программное обеспечение предназначено для встроенной среды / блока, который существует только для этой задачи. И, вероятно, вам не следует использовать такую функцию случайно в системе с любым типом подкачки памяти на жестком диске, так как если вы уже находитесь в режиме подкачки, пропускная способность будет ниже. Но - после предостережений - может быть полезно отбросить пакеты на некоторое время, пока вы не наверстаете упущенное. Возможно, сброс каждого N-го кадра через буфер в очереди будет менее заметен, чем сброс фрагмента в конец или в начало очереди. Как бы то ни было, отбрасывание данных из очереди может быть нормальным использованием на уровне приложения (в отличие от подсистемы внутренней памяти) для чего-то вроде этого ...