Как писать комментарии на C ++, которые отображаются в Intellisense? - PullRequest
49 голосов
/ 23 декабря 2011

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

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

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

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

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

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

Ответы [ 4 ]

15 голосов
/ 15 мая 2013

Это теперь поддерживается в VS 2012!

Раньше XML-теги в комментариях считывались только C ++ / CLI, а не простым старым C ++. VS 2012 теперь приносит по крайней мере часть этого в обычный C ++ - это в Что нового в Visual Studio 2012 и в документах MSDN: Документация XML (Visual C ++) .

Я протестировал его с моим собственным приложением в 2012 году, и я могу подтвердить, что все теги summary, para и seealso извлечены в формате для всплывающих подсказок.

9 голосов
/ 07 января 2017

Я не уверен, какая версия Visual Studio представила это, но в VS 2015 вы можете просто поместить комментарий выше function, method, class, struct, union, enum class, namespace или даже отдельные переменные (тоже локальные), и это будет показано Intellisense. Если вы хотите документировать что-то из другого модуля, вы должны написать комментарий в заголовочном файле. Примеры: Function Class Variable

8 голосов
/ 23 декабря 2011

Попробуйте установить Visual Assist и использовать doxygen style:

/**
* 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 */

};
4 голосов
/ 22 августа 2015

Я не использовал VS2010 слишком много лет, чтобы вспомнить, сработало ли это там или нет.Но то, что я делал годами во многих различных версиях VS, было ...:

#pragma region foo(float)
/// <summary> .... </summary>
/// <param name="bar"> .... </param>
/// <returns> .... </returns>
int foo(float bar)
{
    // stuff
}
#pragma endregion

Другими словами, вручную вставляя именно то, что Visual Studio будет автоматически вставлять для кода C # для вас.

Затем дайте механизму Intellisense минуту или около того, чтобы проанализировать файл.Разумеется, выполнение сборки приведет к повторному анализу.

Насколько я помню, это работает в самом последнем сообществе VS2010 Express, но я не помню, работало ли оно в VS2010 Ultimate.

...