// PR c++/42447 template void* get(int); template struct unique_ptr; template struct unique_ptr<_Tp[]> { typedef int __tuple_type; void* get() const { return ::get<0>(_M_t); } __tuple_type _M_t; }; template class dynamic_dispatch; template struct dynamic_dispatch { struct entry { }; unique_ptr m_Start; template void attach_handler(void (UC::*m)(int&)) { entry* p = 0; do { } while(--p != m_Start.get()); } }; template class request_dispatcher : private dynamic_dispatch { request_dispatcher(); }; struct file_reader { void execute_command(int&); }; template <> request_dispatcher::request_dispatcher() { this->attach_handler(&file_reader::execute_command); }