I have the following codes:
template <typename Service = timer_impl>
class basic_timer
: public boost::asio::basic_io_object<Service> // a class derived from boost::asio::basic_io_object
{
public:
explicit basic_timer(boost::asio::io_service &io_service) //boost::asio::io_service::service
: boost::asio::basic_io_object<Service>(io_service)
{
}
sdgvdg;
void wait(std::size_t seconds)
{
return this->service.wait(this->implementation, seconds);
}
}
However, VS2013 does not complain this sdgvdg
as a compilation error but actually interprets it as basic_timer<Service>::sdgvdg
.
Just wants to understand what's going on behind this. Why the compiler won't complain it as an syntax error.
timer_impl
is just another class we have.