In doxygen is there any common way to specify that some C++ template parameters of function parameters are implementation details and should not be specified by the user ?
For example, a template parameter used as recursion level counter in metaprogramming technique or a SFINAE parameter in a function ?
For example :
/// \brief Do something
/// \tparam MyFlag A flag...
/// \tparam Limit Recursion limit
/// \tparam Current Recursion level counter. SHOULD NOT BE EXPLICITELY SPECIFIED !!!
template<bool MyFlag, unsigned int Limit, unsigned int Current = 0> myFunction();
Is there any doxygen normalized option equivalent to “SHOULD NOT BE EXPLICITELY SPECIFIED !!!” ?
It seems to me that the whole template is an implementation detail of a different interface:
Now it becomes easier to document:
myFunction()(and all it’s arguments) are part of the interface, which does not include the iteration counter.myFunctionImpl()is the implementation of that interface and does not need to be documented at all (or only minimally with a comment stating that it is an implementation detail and user code should not depend on it or use it directly). If you want, you can enclose the implementation in an#ifdefblock so that the doxygen preprocessor removes it and it does not appear in the generated documentation.