Я пытаюсь выучить Doxygen.
У меня почти все предупреждения и ошибки найдены. Однако есть два, которые я не могу понять.
Мой код выглядит примерно так:
namespace SE{
//! Description etc
template <typename _T>
class MyClass{
public:
MyClass(int, int);
private:
std::vector<std::vector<_T>> data;
double X; //< Description
}
//! Description etc
template <typename T>
MyClass<T>::MyClass(int rows, int cols){
data.resize(rows, std::vector<T>(cols));
}
} /* End of namespace SE*/
Когда я пытаюсь обработать его с помощью кислорода, я получаю предупреждение:
warning: Member resize(rows, std::vector< T >(cols)) (function) of namespace SE is not documented
Похоже, он думает, что это моя собственная функция. Как мне сказать Doxygen, что он из std :: vector?
У меня также есть другая функция-член, определенная вне тела функции, которая имеет значение для l oop, и я получаю
warning: Member for(auto i=0;i< n;++i) (function) of namespace SE is not documented.
У меня также была другая функция, где у меня была переменная-член X, и когда я писал эту функцию вне тела определения класса, он сказал, что X не задокументирован.
//! Description etc.
void MyClass::myfunc(){
X=2.0; // Doxygen complained here
}
Я смог "исправить" это, выполнив
void MyClass::myfunc(){
MyClass::X=2.0; // Doxygen warning suppressed
}
или
void MyClass::myfunc(){
this->X=2.0; // Doxygen warning suppressed
}
Нужно ли мне это делать?
РЕДАКТИРОВАТЬ: У меня также есть проблема, которая в документации У меня есть:
Functions
SE::for (auto i=0;i< n;++i)
data SE::resize (n, std::vector< T >(m))
в сгенерированной документации