How can I hide a particular function (in c++) in doxygen?

Rana picture Rana · Apr 10, 2014 · Viewed 8.4k times · Source

I have a class which has may functions and i want to hide a particular function. For example

class Test
{

   /**
    * About Function1
    *
    * @param[in]  arg1  About arg1
    * @param[in]  arg2  About arg2
    */        
    public void Function1(int arg1,char arg2);

    // Presume same documentation for this function also
    public void Function2(int,char);

    // Presume same documentation for this function also
    public void Function3(int,char);

    // Presume same documentation for this function also
    public void Function4(int,char);
} 

Suppose I want to hide say Function2 how would I do that.

Now in the current scenario it is displaying all the four functions along with its documentations.

Now, I have the following attribute set in my .doxygen rule file:

EXTRACT_ALL = YES

Can you please suggest me something by which i can hide say Function2?

Answer

Oktalist picture Oktalist · Apr 10, 2014

If you have EXTRACT_PRIVATE = NO in the config file, then you can mark any member as private to Doxygen and it will not generate documentation for that member:

/// @private
public void Function2(int, char);

Bonus question: if you wanted to use the same documentation for all four members you can do so using one of these approaches:

/**
 * About Function1,2,3,4...
 */
/// @{
public void Function1(int arg1, char arg2);
public void Function2(int arg1, char arg2);
public void Function3(int arg1, char arg2);
public void Function4(int arg1, char arg2);
/// @}

/**
 * About Function1,2,3,4...
 */
public void Function1(int arg1, char arg2);
/// @copydoc Function1
public void Function2(int arg1, char arg2);
/// @copydoc Function1
public void Function3(int arg1, char arg2);
/// @copydoc Function1
public void Function4(int arg1, char arg2);

The one using @{...@} requires the use of DISTRIBUTE_GROUP_DOC = YES in the config file.