Doxygen은 C/C++을 사용할 때 주석으로 이용해 자동으로 문서를 생성하는 도구이다.
C/C++ 기본 여러 줄 주석이 /*
로 시작해 */
로 끝나며, 그 안에 있는 라인에는 별도의 기호를 표시하지 않는 것과 달리, Doxygen 주석은 /**
로 시작해 */
로 끝나며, 그 안에 있는 라인은 *
기호로 시작한다.
또, 주석을 설명하기 위한 다양한 태그를 지원한다. (@로 시작)
/**
* Simple Text
* @return description about return
*/
Doxygen은 이런 형식의 주석을 인식하여 알아서 클래스와 함수에 대한 document를 생성해준다.
참고로 Visual Studio IDE는 자체적으로 Doxygen이 깔려있는 건 아니지만, Doxygen과 호환을 위해 Doxygen 주석과 태그를 기본적으로 지원하며, IntelliSense에 주석 영역을 구분해준다.
클래스용 태그
/**
* @brief 간단한 설명
* @details 자세한 설명
* @author 작성자/저작권자
* @date 날짜
* @version 버전
*/
Doxygen으로 문서를 생성하면 이런 모양이 된다.
메서드용 주석
/**
* @brief 간단한 설명
* @details 자세한 설명
* @param 인자에 대한 설명
* @param (일반적으로 줄마다 인자 하나씩 적는다.)
* @return 반환에 대한 설명
* @throws 발생 예외에 대한 설명
*/
기타(공용) 태그
/**
* @todo 해야 할 일 기록용
* @bug 버그에 대한 설명
* @see 비고란. See also.
* @n 주석 내에서 개행
*/
특수 태그
Doxygen 문서에 표 만들기
/**
* First Header | Second Header
* ------------- | -------------
* Content Cell | Content Cell
* Content Cell | Content Cell
*/
리스트 만들기
/**
* @li element1
* @li element2
*/
하이퍼링크 만들기
/**
* [텍스트][링크주소]
*/
코드 블록
/**
* @code{.cpp}
* printf("Hello, World!");
* @endcode
*/
클래스 참조 링크 (Doxygen으로 문서화된 클래스여야 링크 주소 생성됨)
/**
* @ref 클래스이름 (네임스페이스 아래에 있는 경우 네임스페이스.클래스명)
* @ref Util.Structure.Vector3
*/