Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cand te ajunge trecutul

Autobuz in gta-uri

Intrebari despre autism

Imprimare coperta carcasa DVD.
 La ce risc ma supun?Suplimente mu...

Tinerete fara batranete si viata ...

Ursula Sandner-Puterea ta interio...

Vi se pare normala pedeapsa primi...
 Cactusii, hrana pentru oamenii de...

The New Colleague - BRomania

Este necesara procura de la celel...

Repartizare camere la hotel
 Autoturism SH 4500E

Casa Brutale

Melodii, solouri pt. chitara acus...

Site romanesc care vinde (si) pro...
 

Right and left reference

- - - - -
  • Please log in to reply
2 replies to this topic

#1
TheOriginals

TheOriginals

    Junior

  • Grup: Junior Members
  • Posts: 49
  • Înscris: 30.05.2016
Salut..
Incerc sa ma lamuresc putin cum e cu right and left ref (asta am inteles) problema mea e ca nu reusesc sa-mi dau seama din ce gasesc pe net(fiecare cu o versiune, mai sunt si care bat) despre modul in care se creeaza obiectele temporare (cate si cum) si cum sunt transferate.

Am un exemplu simplu:
#include<iostream>
#include<vector>
using namespace std;
class boVector {
private:
int size;
public:
boVector() {};
boVector(const boVector& rhs) { cout << "copy Ctor."<<endl; }
boVector(boVector&& rhs) { cout << "move Ctor." << endl; }
};
void foo(boVector v) {}
boVector createBoVector() { return boVector(); }
int main()
{
//copy
boVector reausable = createBoVector();
foo(reausable);
//move
foo(std::move(createBoVector()));
return 0;
}



Am incercat sa fac si o imagine dar cand am inceput sa o desenez mi-am dat seama ca nu stiu prea bine ce se intampla..
[ https://preview.ibb.co/gwPB6m/F_r_titlu.png - Pentru incarcare in pagina (embed) Click aici ]

Ceva intrebari rusioase Posted Image
  • Ce se intamplă când se alocă un obiect temporar?

  • Cand este distrus ? (tot timpul la finalul acoladelor)

  • Cum se realizează transferul în cadrul rRef (cate obiecte se generează în cele din urmă)?

  • Dacă obiectul meu este temporar și eu copii o referință către el atunci cand este distrus iar eu inca folosesc o referinta catre el asta nu ar trebui sa conducă în undefined behavier?

  • Cum se realizează transferul unei variabile rValue nu neapărat referință?
Mulțumesc Posted Image

#2
TheOriginals

TheOriginals

    Junior

  • Grup: Junior Members
  • Posts: 49
  • Înscris: 30.05.2016
Nu ma ajuta nimeni cu o idee? :D
Am tot cautat pe net dar nimeni nu a reusit sa ma lumineze cum ne salveaza move Ctor si cum reuseste sa tina adresa si sa o folosesasca a unei variabile temporare. :(

#3
dani.user

dani.user

    Guru Member

  • Grup: Moderators
  • Posts: 23,647
  • Înscris: 24.02.2007
E prea complexa tema pentru a o rezuma aici.

Cand returnezi ceva vezi ca mai ai copy-ellision, ce a devenit garantata in noul standard (si era aplicata de unele compilatoare si inainte, ca o optimizare).

Anunturi


Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate