Как создать контейнер noncopyable элементов

Клиент не может знать заранее, что сервер понял бы запрос gzipped, но сервер может знать, что клиент примет тот.

6
задан Vargas 18 September 2009 в 17:15
поделиться

3 ответа

Нет, не копируемые элементы не могут быть в классах контейнеров C ++.

Согласно стандарту, параграф 3 23.1, «Тип объектов, хранящихся в этих компонентах, должен соответствовать требованиям. CopyConstructible типов (20.1.3), а также дополнительные требования присваиваемых типов. "

16
ответ дан 8 December 2019 в 02:46
поделиться

Один из вариантов - создать список указателей на элементы (предпочтительно shared_ptr). Это не совсем то, что вам нужно, но с этим можно справиться.

15
ответ дан 8 December 2019 в 02:46
поделиться

Другой вариант - использовать библиотеку контейнера указателя ускорения . Это действует так же, как и стандартный контейнер std :: auto_ptrs, если бы такое было возможно: он сохраняет исключительное право собственности на свои элементы и не может быть скопирован. Он также имеет меньше накладных расходов, чем стандартный контейнер shared_ptrs.

2
ответ дан 8 December 2019 в 02:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: