Документирование Doxygen вне линии для операторов класса C ++ - PullRequest
3 голосов
/ 24 января 2011

Если у меня есть класс в файле, который я не могу изменить, но мне нужно документировать в doxygen, как лучше всего это сделать?Я знаю, что было бы лучше документировать в фактическом файле .h или .cpp, но в данном конкретном случае это невозможно.

Я выяснил, как документировать некоторые элементы, но я не могу документировать операторынадежным способом.Позвольте мне привести пример.Вот пример класса с членом, который вызвал проблемы, и тот, который работал нормально:

class Foo
{
public:
    int Bar();
    bool operator!() const;
};

В другом файле, который просматривает doxygen, я поместил следующее:

/// @fn Foo::Bar
/// @brief Some info about the constructor
/// @return Some stuff about what bar returns

Документация для конструктора работает, но это не так:

/// @fn Foo::operator!
/// @brief Some info about the operator
/// @return Some stuff about what the operator! returns

также не работает:

/// @fn operator!
/// @memberof Foo
/// @brief Some info about the operator
/// @return Some stuff about what the operator! returns

Я также пытался экранировать различные части с помощью% и.Таким образом, это выглядело как "/// @fn% operator!", "/// @fn operator%!"или "/// @fn оператор!"но ничего подобного это не помогло.

Информация об операторе никогда не появляется.Несколько раз я пытался вставить уникальное значение в комментарии оператора doxygen и подбирать его в выводе doxygen, и я получал пустое значение.Что я делаю не так?

1 Ответ

6 голосов
/ 24 января 2011

Если вы посмотрите на ваш вывод кислорода, должно появиться предупреждение

/path/to/Documentation: warning: no matching class member found for
  Foo::operator!()
Possible candidates:
  bool Foo::operator!() const

, в этом случае измените вашу документацию на

/// @fn Foo::operator!() const
/// @brief Some info about the operator
/// @return Some stuff about what the operator! returns

обратите внимание на дополнительные () const, добавленные к@fn идентификатор.

...