|
Размещение в контейнерах STL не копируемых объектов
|
|||
---|---|---|---|
#18+
Все равно не понимаю, чего Вы хотите. Если хотите запретить копирование объекта, то запретите вызов копирующего конструктора. Вместого него определите перемещающий конструктор. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Вывод: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 01:44 |
|
Размещение в контейнерах STL не копируемых объектов
|
|||
---|---|---|---|
#18+
AmKad, Осталось подумать... В случае по сути POD класса различаются ли семантики копирования и перемещения? Вам не кажется, что вы семантику копирования реализовали через "перемещение"? Это как различие между синтаксической и семантической константностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 02:00 |
|
Размещение в контейнерах STL не копируемых объектов
|
|||
---|---|---|---|
#18+
Допустим у нас класс содержит 99-ть полей double. Нам его не нужно копировать по логике программы. Мы ему запретили копирование, но при этом разработали перемещение, которое, по сути, приводит к копированию. Вот есть ли в этом смысл? Сомнительно... Как говорят в определённых кругах: меня терзают смутные сомнения... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 02:16 |
|
Размещение в контейнерах STL не копируемых объектов
|
|||
---|---|---|---|
#18+
petrav, Ты сам себя запутал. Мой пример вырос из твоего. Конечно, в этом случае нет смысла вкорячивать перемещение вместо копирования. Но так как ты настойчиво хотел избежать копирования, я решил, что ты хочешь добиться перемещения (ты же все-таки не зря упомянул std::string), я показал тебе, как это сделать. В конечном итоге, я не понимаю, чего ты хочешь добиться. Возможно и ты тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2020, 15:14 |
|
Размещение в контейнерах STL не копируемых объектов
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov petravМне не нужно добавлять/удалять элементы. Тогда назачем тебе вообще вектор? Код: sql 1.
Кстати, а насколько эта конструкция корректна? Будет корректно выбран оператор delete[]? Насколько я помню, когда-то в Boost был тип shared_ptr_array. Я погуглил и, вроде бы, да это корректно . ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2020, 10:51 |
|
Размещение в контейнерах STL не копируемых объектов
|
|||
---|---|---|---|
#18+
petravКстати, а насколько эта конструкция корректна? Ну, если извинить, что я забыл имя переменной и использовал инициализацию присваиванием вместо круглых скобок, что прокатывает не с каждым компилятором, то почему бы и нет? petravБудет корректно выбран оператор delete[]? У параметра темплейта есть квадратные скобки, стало быть и оператор будет использоваться с квадратными скобками. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2020, 12:30 |
|
Размещение в контейнерах STL не копируемых объектов
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov petravКстати, а насколько эта конструкция корректна? Ну, если извинить, что я забыл имя переменной и использовал инициализацию присваиванием вместо круглых скобок, что прокатывает не с каждым компилятором, то почему бы и нет? petravБудет корректно выбран оператор delete[]? У параметра темплейта есть квадратные скобки, стало быть и оператор будет использоваться с квадратными скобками. Просто я не знаю как написать такую специализацию, что бы отреагировала на квадратные скобки. :) Но раз корректно, значит пусть так и будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2020, 15:13 |
|
Размещение в контейнерах STL не копируемых объектов
|
|||
---|---|---|---|
#18+
petravя не знаю как написать такую специализацию, что бы отреагировала на квадратные скобки. Ну так посмотри как это сделано в STL. Твоя не вызывающая сочувствия IDE, безусловно, позволит сделать это в один клик. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2020, 16:35 |
|
|
start [/forum/topic.php?fid=57&msg=39981468&tid=2017380]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 137ms |
0 / 0 |