/// @brief visit an object (non-const) /// /// @param b /// /// This function is called upon visitation. /// /// It extracts the correct thunk from the vtable and calls it result_type operator() ( base_type & b ) { // fetch thunk func_type thunk = (*_vtable)[ b.tag() ]; // call thunk: pointer to member function syntac return ( this->*thunk ) ( b ); }