| 9bcc50f1 | 20-Jan-2024 |
Barry Smith <bsmith@mcs.anl.gov> |
add typedef for functions passed to SNESSetFunction() etc to match approach in TS
I never liked Jed's use of typedef for function prototypes for a couple of reasons
1) you don't see immediately tha
add typedef for functions passed to SNESSetFunction() etc to match approach in TS
I never liked Jed's use of typedef for function prototypes for a couple of reasons
1) you don't see immediately that the argument to the function is a function pointer instead of standard variable when looking at source 2) you don't see at the exact location in the code the prototype of the function being passed in
but there is something to say for using these typedefs so
I've prototyped the change for SNES but slightly differently than what Jed did for TS
1) I append the typedef with _Ftn to mark that it is a function (helping to relieve the problem 1 above) 2) I made the typedef to be for a function, not a function pointer so it can also be used directly for things like
PETSC_EXTERN SNESJacobian_Ftn SNESComputeJacobianDefault;
I think the TS usage could be switched to this style without user code breakage, and deprecate the current TS typedef
Thoughts?
Just do SNES the same way as TS and live with less clarity?
show more ...
|