Kezdőoldal » Számítástechnika » Programozás » Move/copy constructor nélkül...

Move/copy constructor nélkül is működik, pedig egy std containerben tárolom?

Figyelt kérdés

Van egy osztályom, aminek a default copy ctr/assign-ját töröltem, nem definiáltam move ctr/assign-et, és nem is lehet implicit move-ja, mert definiáltam neki egy destruktort. (Cppreference szerint ebben az esetben nem lehet neki)


Egy std::vectorban tárolom, emplace-el helyezem el benne, így nem kellenek hozzáadáshoz copy/move konstruktorok.


De ezek a tárolók időben változó mérettel rendelkeznek, és ha nagyobb tároló kell, akkor a régiből át kell move-olni az újba az elemeket.


Ebből azt a következtetést vonom le, hogy kellene neki copy/move konstruktor.

De ahogy előbb leírtam: nincs neki. Mégis hibátlanul fut.


Vagy csak runtime dobna errort? Kipróbáltam 2 elem egymás utáni hozzáadásával, és ott se volt probléma. (Bár lehet hogy csak nem volt átméretezés valamilyen oknál fogva.)


Vagy a virtuális destruktor még engedélyezi az implicit move létrehozását?



Valaki magyarázza meg, hogy ez hogy lehet.


Előre is köszönöm!


2016. dec. 26. 11:30
 1/4 anonim ***** válasza:

Dobj fel kódot valahova, mert így nem teljesen világos mit csináltál pontosan.

Miként törölted pl a default copy-t?


Amúfy a növekedés nem lineáris a vectornál, simán lehet, hogy nem nőtt.

2016. dec. 26. 13:19
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:

+ itt írnak pár érdekes infót a vector belső működéséről:

[link]

2016. dec. 26. 13:20
Hasznos számodra ez a válasz?
 3/4 A kérdező kommentje:

Most nem tudom felrakni, de tényleg semmiség. Van egy osztály, aminek törölve van a default copy & assign, van egy desktruktora, és ennek az osztálynak a példányait rakom be emplace()-el egy vectorba.


A(const A&) = delete;

2016. dec. 26. 13:22
 4/4 A kérdező kommentje:
Közben kiderült, hogy a vectornak mégis kell, de az unordered_map-nek nem.
2016. dec. 26. 13:42

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!