Bonjour la communaut�,

Pour utiliser le module r�seau de SFML j'ai besoin de b�cher (h�las) les pointeurs.
Apr�s quelques t�tonnements (et beaucoup d'aide de Laurent du forum SFML), j'arrive au code suivant qui compile ET qui fonctionne !
C++
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
... // lancement du listener serveur : allo
 
std::vector <sf::TcpSocket*> V_client;
bool tousPresents(false);
 
while(!tousPresents)
    {
        // déclaration d'un socket à affecter au prochain client qui le demande
        sf::TcpSocket *joueur = new sf::TcpSocket();
        if (allo.accept(*joueur) == sf::Socket::Done)
        {
            selecteur.add(*joueur);
            V_client.push_back(joueur);
        }
        if (V_client.size() == nbJoueurs) tousPresents=true;
    }
sauf que :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
std::vector <sf::TcpSocket*> V_client;
c'est mal, ai-je lu par ici... Il semblerait qu'on ne code plus en C++ avec des pointeurs nus mais avec des pointeurs intelligents (le mieux, � mon sens, serait de coder sans pointeur du tout mais bon).
D�butant mais disciplin�, je tente donc de remplacer le pointeur nu par un pointeur unique_ptr. cela donne ceci (<memory> est inclus) et le compilo est r�gl� pour accepter c++11:

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
    std::vector <std::unique_ptr<sf::TcpSocket>> V_joueur;
    bool tousPresents(false);
 
    while(!tousPresents)
        {
            // déclaration d'un socket à affecter au prochain client qui le demande
            std::unique_ptr<sf::TcpSocket> joueur(new sf::TcpSocket); // <= ça le compilo n'aime pas ! :/
 
            if (allo.accept(*joueur) == sf::Socket::Done)
            {
                selecteur.add(*joueur);
                V_joueur.push_back(joueur);
            }
            if (V_joueur.size() == nbJoueurs) tousPresents=true;
        }
Comme indiqu� en commentaire, le compilo ouvre "new_allocator.h" et fini sur une erreur :
error: use of deleted function 'std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_ptr<_Tp, _Dp>&) [with _Tp = sf::TcpSocket; _Dp = std::default_delete<sf::TcpSocket>]'|
Erreur �videmment incompr�hensible � mon niveau.

Par ailleurs, je me suis aussi laiss� dire que push_back et unique_ptr, ce n'�tait pas compatible...

Quelques pistes, conseils et indications de la syntaxe correcte serait donc TRES bienvenus.
Merci de m'avoir lu.

Rick.