Как написать комментарии на С++, которые появляются в Intellisense?
Я программирую на С++, используя Visual Studio 2010 Ultimate. Я хочу документировать некоторые функции и хочу, чтобы документация отображалась в Intellisense.
Согласно MSDN, мне просто нужно поставить комментарий перед объявлением или после него в той же строке. Поэтому я попробовал это:
// This is a test.
void foo();
void bar() { foo(); }
При перемещении мыши над foo()
комментарий не появляется в подсказке. Я также пробовал:
-
///
-
<summary></summary>
теги
- Создание с
/doc
(путем установки опции "Создать файлы документации XML" в настройках проекта)
Мне пока не повезло. Кто-нибудь знает способ сделать эту работу?
Ответы
Ответ 1
Теперь это поддерживается в VS 2012!
Ранее теги XML в комментариях были прочитаны только С++/CLI, а не простой старый С++.
VS 2012 теперь приносит хотя бы часть этого в обычный С++ - он находится в What New в Visual Studio 2012 и в документах MSDN: Документация XML (Visual С++).
Я тестировал его с помощью собственного приложения в 2012 году, и я могу подтвердить, что теги summary, para и seealso вытащили отформатированные для всплывающих подсказок.
Ответ 2
Попробуйте установить Visual Assist и использовать стиль doxygen:
/**
* COMMENT DESCRIBING A CLASS
**/
class Foo
{
public:
/**
* \brief A foo method.
*
* More complete description of foo.
*
* \param i A foo parameter.
* \return An int
*
**/
int fooMethod(int i);
private:
int i; /*!< COMENT OF A MEMBER */
};
Ответ 3
Я не уверен, какая версия Visual Studio представила это, но в VS 2015 вы можете просто поставить комментарий выше function
, method
, class
, struct
, union
, enum class
, namespace
или даже отдельные переменные (локальные жители тоже), и это будет показано Intellisense. Если вы хотите документировать что-то из другого модуля, вам нужно написать комментарий в файле заголовка. Примеры:
![Переменная]()
Ответ 4
Я не использовал VS2010 слишком много лет, чтобы помнить, работает ли это там или нет. Но то, что я делал годами в разных версиях VS,...:
#pragma region foo(float)
/// <summary> .... </summary>
/// <param name="bar"> .... </param>
/// <returns> .... </returns>
int foo(float bar)
{
// stuff
}
#pragma endregion
Другими словами, вручную вставьте именно то, что Visual Studio автоматически выполнит для кода С# для вас.
Затем дайте движку Intellisense минуту или около того переписать файл. Разумеется, выполнение сборки заставило бы ее пересмотреть.
Насколько я помню, это работает в самом последнем сообществе VS2010 Express, но я не помню, работал ли он в VS2010 Ultimate.