2011-11-17 1 views
-6

Quelqu'un peut-il me dire ce que fait ce code?Que fait ce segment de code C++?

const boost::system::error_code& 

Je soupçonne que ce code est utilisé pour se connecter à la fonction via un pointeur, mais est-ce tout ce qu'il fait?

il y a plein code:

#include <iostream> 
#include <boost/asio.hpp> 
#include <boost/date_time/posix_time/posix_time.hpp> 

void print(const boost::system::error_code&) 
{ 
    std::cout<<"hello word\n"; 
} 
int main() 
{ 
    boost::asio::io_service io; 

    boost::asio::deadline_timer t(io, boost::posix_time::seconds(5)); 
    t.async_wait(&print); 
    io.run(); 
    return 0; 
} 
+0

Pourriez-vous montrer plus de code, de contexte, une raison pour votre question? –

+1

Il spécifie un type, mais sans le reste de l'instruction, il ne fait rien. –

+1

cela peut aider: http://stackoverflow.com/questions/2490456/how-to-use-fonction-de-fonction-unnamed-in-c-or-c – Nim

Répondre

2

Je ne sais pas boost::asio, mais je soupçonne que boost::asio::deadline_timer::async_wait() a besoin d'une fonction qui prend un seul argument du type const boost::system::error_code&. Pour appeler le async_wait(), vous devrez passer un pointeur vers une telle fonction.

void print(const boost::system::error_code&) est une telle fonction.

Si vous ne voulez pas utiliser un argument de fonction, vous pouvez le laisser sans nom. Cela empêche les avertisseurs que les compilateurs émettent généralement lorsque vous n'utilisez pas l'un des arguments de fonction fournis.