From 453491b78dfc3573d0da09514e070c31a29c0ac4 Mon Sep 17 00:00:00 2001 From: p-zach Date: Wed, 23 Apr 2025 13:59:10 -0400 Subject: [PATCH] Document param match requirement --- DEVELOP.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/DEVELOP.md b/DEVELOP.md index fdfb4a340..307407385 100644 --- a/DEVELOP.md +++ b/DEVELOP.md @@ -1,13 +1,21 @@ # Information for Developers -### Coding Conventions +## Coding Conventions * Classes are Uppercase, methods and functions lowerMixedCase. * Apart from those naming conventions, we adopt Google C++ style. * Use meaningful variable names, e.g. `measurement` not `msm`, avoid abbreviations. +### Header-Wrapper Parameter Name Matching -### Windows +If you add a C++ function to a `.i` file to expose it to the wrapper, you must ensure that the parameter names match exactly between the declaration in the header file and the declaration in the `.i`. Similarly, if you change any parameter names in a wrapped function in a header file, or change any parameter names in a `.i` file, you must change the corresponding function in the other file to reflect those changes. + +> [!IMPORTANT] +> The Doxygen documentation from the C++ will not carry over into the Python docstring if the parameter names do not match exactly! + +If you encounter any functions that do not meet this criterion, please submit a PR to make them match. + +## Windows On Windows it is necessary to explicitly export all functions from the library which should be externally accessible. To do this, include the macro `GTSAM_EXPORT` in your class or function definition.