CONVERSION_Smtptr_ptr avec yasper !?
Dans le code joint dans la première partie, j'avais aucune erreur, ca passait la compilation sans warning !? par contre à l'exécution => :aie: crash ...
Avec la deuxième version plus logique du point de vue des types tout va bien ...
Ma question est-ce normal de passer la compilation dans les deux cas sans le moindre warning !? :roll:
Que se passe-t-il dans le premier cas !? :roll:
je n'ai pas encore trouvé si quelqu'un a une idée merci de la proposer :mrgreen:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
// CONVERSION_Smtptr_ptr.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "Yasper.h"
#include <set>
/////////////////// ERREUR ///////////////////
/**/
class atype;
typedef yasper::ptr<atype> aTypeSmtPtr;
class atype
{
std::set<aTypeSmtPtr> m_sspatypes;
public:
void add( atype* _other )
{
m_sspatypes.insert( _other );
};
};
void else_where(void)
{
aTypeSmtPtr typeSmtPtr0( new atype() );
aTypeSmtPtr typeSmtPtr1( new atype() );
typeSmtPtr0->add( typeSmtPtr1 );
}
/**/
////////////////// OK ///////////////////
/*
class atype;
typedef yasper::ptr<atype> aTypeSmtPtr;
class atype
{
std::set<aTypeSmtPtr> m_sspatypes;
public:
void add( aTypeSmtPtr _other )
{
m_sspatypes.insert( _other );
};
};
typedef yasper::ptr<atype> aTypeSmtPtr;
void else_where(void)
{
aTypeSmtPtr typeSmtPtr0( new atype() );
aTypeSmtPtr typeSmtPtr1( new atype() );
typeSmtPtr0->add( typeSmtPtr1 );
}
*/
///////////////////////////////////////////////////
int _tmain(int argc, _TCHAR* argv[])
{
::else_where();
return 0;
} |