Dear all, I am trying to modify my program in a way such that certain quantities are only updated if the underlying triangulation object changes during runtime (due to adaptivity). I want to call a specific member function of my Main Class 'Solid' if this happens. (Solid is the class which calls the typical functions like make_grid(), system_setup(),...) The Triangulation<dim,spacedim> class offers a interface to the boost::signals2 library. I guess that is predestinated for my purpose.
Here is a snippet of my code: //constructor of 'Solid' : dof_handler(triangulation), /*many_more*/ qf_cell(degree+1), n_q_points(qf_cell.size()) { pointer_M = boost::make_shared<AnotherClass<dim>>(/*constructor of AnotherClass */); boost::signals2::connection tria_signal = triangulation.signals.post_refinement.connect( boost::signals2::signal<void()>::slot_type(& *AnotherClass<dim>::mark_for_update*, pointer_M .get()).track( pointer_M ) ); } So the constructor of Solid initializes "pointer_M" which points to an object of "AnotherClass". The variable "tria_signal" in the line below is the one which causes the call of the member function & *AnotherClass<dim>::mark_for_update. * The above code compiles and actually calls *mark_for_update* from *AnotherClass<dim>* . But what I'd like to achieve is that the signal triggers a member function of 'Solid', i.e. something like &*Solid<dim>::call_this_function. *So a naive approach is to simply replace &*AnotherClass<dim>::mark_for_update* by &*Solid<dim>::call_this_function* . (Both functions take no parameters and return void). Unfortunately this change produces two error messages. (i) error: pointer to member type ‘void (Solid<2>::)()’ incompatible with object type ‘AnotherClass<2>’ (ii) error: return-statement with a value, in function returning 'void' [-fpermissive] My understanding of the error message is that only member functions of 'AnotherClass' can be connected to the signal. Is this true? And can I modify the parameters of the connect function somehow to actually connect a member function of Solid? As always, any input is appreciated! :-) Best Simon -- The deal.II project is located at http://www.dealii.org/ For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en --- You received this message because you are subscribed to the Google Groups "deal.II User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to dealii+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/05d5ff07-e70a-412a-963e-83ab99efb11an%40googlegroups.com.