2012-08-28 4 views
5

일부 코드를 문서화하기 위해 Doxygen을 사용하고 있습니다.기본 인수가있는 Doxygen 반복 C++ 함수

unsigned int CountColumns(const std::string&,const std::string& delim=""); 

와 같은 소스 파일에서 해당 구현 : 나는 헤더 예에 지정된 기본 인수를 사용하는 기능을 가지고

unsigned int CountColumns(const string& input,const string& delim) 
{ 
    ... 
} 

내가 생성 Doxygen을 사용할 때

unsigned int CountColumns (const string &input, const string &delim) 
unsigned int CountColumns (const std::string &, const std::string &delim="") 

이 어떻게 피할 수 있습니다 : 기본 값을 포함 하나, 그리고없이 하나 - 내 문서, CountColumns 두 가지 항목이 있습니다? 여러 함수 정의가 내 설명서를 혼란스럽게하는 것은 원하지 않습니다.

EDIT : 내가 아래에 나와있는 답변에서 언급 한 것처럼 문제는 헤더 파일에서 인수에 'std :: string'을 사용하고 소스 파일에 'std :: string '문을 사용하고 인수에'string '을 사용합니다. 함수 정의를 소스 파일에서 'std :: string'을 사용하도록 변경하면 Doxygen은 헤더에서 선언 된 것과 동일한 함수로 인식합니다.

+0

구현을 문서화하기 위해 doxygen을 실행하고 있습니까? –

+0

필자는 소스 파일을 포함하여 내 문서에서 HTML 형식의 소스 코드로 직접 링크를 가져올 수있을뿐만 아니라 다른 기능 참조를 문서화하도록 요청하고 있습니다. 이게 네가 말하는거야? (죄송합니다, 나는 여전히 doxygen 옵션을 배우고 있습니다). 그래도 "INLINE_SOURCES"옵션을 NO로 설정했습니다. – Wheels2050

답변

4

설정 파일에 BUILTIN_STL_SUPPORT ~ YES을 설정하면 doxygen이 std에 정의 된 클래스라는 것을 알고있다. 네임 스페이스.

+0

그 덕분입니다. Doxyfile에서 그 옵션을보고 싶었습니다. 완벽하게 작동합니다! – Wheels2050

0

문서에서 추가 기능을 제외하는 방법은 무엇입니까?

는 "어떻게 몇 가지 코드 조각을 무시 Doxygen을 만들 수 있으며, Doxygen을 FAQ에서입니까?

새롭고 쉬운 방법은 시작과 일에 \cond 명령을 사용하여 하나 개의 주석 블록을 추가하는 것입니다 .. 무시해야 코드의 조각의 끝에 \endcond 명령을 주석 블록은이

물론 같은 파일 내에 있어야하지만 당신은이에 대한 Doxygen을의 프리 프로세서를 사용할 수 있습니다 : 당신이

,369을 넣으면
#ifndef DOXYGEN_SHOULD_SKIP_THIS 

    /* code that must be skipped by Doxygen */ 

#endif /* DOXYGEN_SHOULD_SKIP_THIS */ 
around the blocks that should be hidden and put: 

    PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS 
in the config file then all blocks should be skipped by Doxygen as long as 

PREPROCESSING = YES. "

+0

나는 더 깨끗하고 우아한 방법이있을 것이라고 생각했다. 도움이 될 수 있다면 코드 덩어리를 수동으로 생략하지 않아도된다. – Wheels2050

+0

두 가지 방법이 있습니다. 전 처리기를 사용하거나 \ cond 및 \ endcond 명령을 사용하는 것입니다. 두 번째를 찾고 있습니다. – MimiEAM

2

문제 때문에 소스 파일은 다음 '를 사용하여 표준 : : 문자열'문을 포함하고있는 동안 헤더 파일이 인수에서 '표준 : : 문자열'을 사용한다는 사실을 것으로 보인다 '는 문자열을 사용 '인수에서. 함수 파일의'std :: string '을 사용하도록 함수 정의를 변경하면 Doxygen은 헤더에 선언 된 함수와 동일하게 인식합니다.

이상적인 것은 아니지만 해결책이 너무 어렵지 않다.