Hi:

Ok, I’m trying to use boost::asio::io_service::run as follows.

At the top of a .hpp file I have:

typedef boost::asio::io_service FolderMonitoringService;

I can pass this to a constructor requiring an io_service as follows:

boost::asio::dir_monitor dm(FolderMonitoringService);    

however when I try to do:

               FolderMonitoringService.run();

I get 2 c2143 errors.

     1>d:\work\access for everyone\sibelius access\sibeliusaccessserver\utility.cpp(127): error C2143: syntax error : missing ';' before '.'

     1>d:\work\access for everyone\sibelius access\sibeliusaccessserver\utility.cpp(127): error C2143: syntax error : missing ';' before '.'

If I remove the typedef previously shown, this line:

               FolderMonitoringService.run();

Compiles fine, but the line:

boost::asio::dir_monitor dm(FolderMonitoringService);    

will not compile giving c2061, solved with the typedef—thanks igor!

I’ve tried boost.ref, with know success.

The function signature of the dir_monitor’s constructor is:

    explicit basic_dir_monitor(boost::asio::io_service &io_service)

Dir_Monitor is typedef’d to be basic_dir_monitor.

Can anybody please tell me why the run function is causing an issue and how to fix this issue.

Regards

Sean.