J'essaie le code suivant:erreur: ISO C++ interdit de prendre l'adresse d'une fonction de membre non-statique non qualifié ou parenthésée pour former un pointeur vers une fonction membre
std::thread t(&(Transmitter::sender), this, some_variables);
où l'expéditeur est une fonction membre de la même classe de la méthode de laquelle la ligne ci-dessus est appelée.
Je reçois l'avertissement:
Transmitter.h: In member function 'int Transmitter::transmit_streams(std::vector<std::vector<single_stream_record> >, int, Receiver&)':
Transmitter.h:81:44: error: ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say '&Transmitter::sender' [-fpermissive]
bien qu'il compile et fonctionne très bien. Comment puis-je supprimer cet avertissement.
Mon g ++ est 4.6.3 et je compile le code avec -std = C++ 0x.
Oui, votre code semble fonctionner. Bien qu'étant nouveau en C++, je ne peux pas comprendre pourquoi. Je veux dire, la différence entre le vôtre et le mien est seulement que le tien manque de parenthèse autour de Transmitter :: sender. – AbbasFaisal
@AbbasFaisal Parce que l'ISO C++ l'a dit, voir mon edit – Danh