comme le titre le dit,
dans le module serialization de boost je ne comprends pas cette syntaxe :
::new(t)T();
merci de votre aide
comme le titre le dit,
dans le module serialization de boost je ne comprends pas cette syntaxe :
::new(t)T();
merci de votre aide
C'est pour construire un objet à une adresse mémoire t donnée où on considère que la mémoire aura déjà été allouée.
On appelle ça "placement new".
On l'utiliser par exemple quand on veut allouer beaucoup de mémoire d'un coup et ensuite construire des objets dans cette mémoire déjà toute prete. C'est souvent pour des raisons de performances parceque l'allocation mémoire prends un temps qui peut être considérable parfois.
c'est pas bizarre comme syntaxe ?
fonction()constructeur() ? pour moi il manquait un ;. Il y a de la doc qui traine sur ça svp ?
edit : trouver dans la doc
Merci de ta réponse trés rapide![]()
Ce n'est pas une fonction normale, c'est directement lié au language.
Je te conseil de lire la FAQ sur ce point: http://cpp.developpez.com/faq/cpp/?p...sse_specifique
Normalement new c'est :
Là l'instruction new va d'abord allouer la mémoire, puis construire l'objet, le tout "ensemble.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Type* objet = new Type( paramattres, de, construction);
Avec placement new tu as:
buffer_memoire étant là où on va construire l'objet, mais new ne ferra pas d'allocation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 char* buffer_memoire = new char*[ assez_de_memoire ]; // allouer la mémoire Type* objet = new (buffer_memoire) Type( paramattres, de, construction);
et pour le delete, comment cela se passe, il existe un delete de placement ?
Raymond
Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi
CafuroCafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
e-verbeUn logiciel de conjugaison des verbes de la langue française.
Ma page personnelle sur DVP.
Non mais faut appeler explicitement le destructeur. (c'est l'exception qui confirme la règle :p)
Pour plus d'info :
http://www.research.att.com/~bs/bs_f...acement-delete
Partager