Bonjour,

Le tuto n'offre pas de solutions pour réaliser des singletons en passant par des smart pointer.
Comment peut-on s'y prendre?

Actuellement mes tests donne:

.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
class Ressources_Manager : boost::noncopyable{
public:
	static boost::shared_ptr<Ressources_Manager> Instance();
	virtual ~Ressources_Manager();
 
 
private:
//	boost::shared_ptr<Ressources_Manager> operator= (const boost::shared_ptr<Ressources_Manager>){}
	Ressources_Manager();
	Ressources_Manager (const Ressources_Manager&);
 
	static boost::weak_ptr<Ressources_Manager>  m_instance;
 
	sf::Texture H_Sp_Prairie;
	sf::Image   Img_H_Prairie;
 
	void Load_Textures();
	void Load_Images();
};


.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
	boost::shared_ptr<Ressources_Manager> Ressources_Manager_ptr = Ressources_Manager::Instance();
//	Ressources_Manager Ressources_Manager::m_instance=Ressources_Manager();
 
		Ressources_Manager::Ressources_Manager() {
 
			Load_Images();
			Load_Textures();
		}
 
		Ressources_Manager::~Ressources_Manager() {
 
		}
 
		boost::shared_ptr<Ressources_Manager> Ressources_Manager::Instance()
		{
 
			  boost::shared_ptr<Ressources_Manager> instance = m_instance.lock();
			  if (!instance) {
			    instance.reset(new Ressources_Manager());
			    m_instance = instance;
			  }
			return instance;
		}
 
		void Ressources_Manager::Load_Images()
		{
			Img_H_Prairie.loadFromFile("Image/HexaTestSize.bmp");
			Img_H_Prairie.createMaskFromColor(sf::Color(255,255,255));
		}
 
		void Ressources_Manager::Load_Textures()
		{
			H_Sp_Prairie.loadFromImage(Img_H_Prairie);
		}

Erreur affichée:
../RessourcesManager.cpp:29: undefined reference to `itpro::ress::Ressources_Manager::m_instance'