Подтвердить что ты не робот

Как написать комментарии на С++, которые появляются в Intellisense?

Я программирую на С++, используя Visual Studio 2010 Ultimate. Я хочу документировать некоторые функции и хочу, чтобы документация отображалась в Intellisense.

Согласно MSDN, мне просто нужно поставить комментарий перед объявлением или после него в той же строке. Поэтому я попробовал это:

// This is a test.
void foo();
void bar() { foo(); }

При перемещении мыши над foo() комментарий не появляется в подсказке. Я также пробовал:

  • ///
  • <summary></summary> теги
  • Создание с /doc (путем установки опции "Создать файлы документации XML" в настройках проекта)

Мне пока не повезло. Кто-нибудь знает способ сделать эту работу?

4b9b3361

Ответ 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.