Нет стандарта для документирования кода (Java, C или C++). Существуют инструменты, которые делают документацию из исходного кода , и у них может быть действующий стандарт.
Вот стиль, который я адаптированный на протяжении веков:
//! This class represents a fraction: xx nn/dd.
/*! Where xx is the whole number, nn is the numerator, dd is the denominator.
* \author Thomas Matthews
*/
class Fraction
: public boost::equality_comparable<Fraction>,
public boost::less_than_comparable<Fraction>,
public boost::addable<Fraction>,
public boost::subtractable<Fraction>,
public boost::multipliable<Fraction>,
public boost::dividable<Fraction>
{
//---------------------------------------------------------------------
// Friends
//---------------------------------------------------------------------
//---------------------------------------------------------------------
// Public fraction
//---------------------------------------------------------------------
public:
//---------------------------------------------------------------------
// Public Constructors and Destructors
//---------------------------------------------------------------------
public:
//! Constructor -- string
Fraction(const std::string& fraction_text);
//! Constructor -- whole, numerator, denominator as integers
Fraction(const int& denomenator = 1,
const int& numerator = 0,
const int& whole = 0);
//! Constructor -- floating point
Fraction(const double& floating_point);
//! Copy constructor
Fraction(const Fraction& rc);
//! Destructor
virtual ~Fraction();
//---------------------------------------------------------------------
// Public Overloaded Operators
//---------------------------------------------------------------------
public:
Fraction& operator= (const Fraction& f);
bool operator==(const Fraction& f) const;
bool operator==(const double& d) const;
bool operator< (const double& d) const;
bool operator< (const Fraction& f) const;
Fraction& operator+=(const Fraction& f);
Fraction& operator-=(const Fraction& f);
Fraction& operator*=(const Fraction& f);
Fraction& operator/=(const Fraction& f);
Fraction& operator*=(const unsigned int scalar_value);
Fraction& operator/=(const unsigned int scalar_value);
operator double(void) const;
//---------------------------------------------------------------------
// Public Methods
//---------------------------------------------------------------------
public:
//! Returns the fraction as a string.
std::string get_value_as_string(void) const;
//! Sets the value from a string.
void set_value(const std::string& fraction_string);
//! Sets the value from a floating point value.
void set_value(const double& value);
//! Simplifies the fraction by reducing the denominator & numerator.
void simplify(void);
//---------------------------------------------------------------------
// Public Members
//---------------------------------------------------------------------
public:
//---------------------------------------------------------------------
// Protected Methods
//---------------------------------------------------------------------
protected:
//---------------------------------------------------------------------
// Protected Members
//---------------------------------------------------------------------
protected:
//---------------------------------------------------------------------
// Private Methods
//---------------------------------------------------------------------
private:
//---------------------------------------------------------------------
// Private Members
//---------------------------------------------------------------------
private:
unsigned int m_whole;
int m_numerator;
unsigned int m_denomenator;
};
//-------------------------------------------------------------------------
// Fraction Exceptions
//-------------------------------------------------------------------------
//-------------------------------------------------------------------------
// Fraction Fraction
//-------------------------------------------------------------------------
//typedef boost::shared_ptr<Fraction> Ptr_Fraction;
//typedef boost::shared_ptr<const Fraction> Ptr_Const_Fraction;
//-------------------------------------------------------------------------
// Inlined Fraction Constructors and Destructors
//-------------------------------------------------------------------------
//-------------------------------------------------------------------------
// Inlined Fraction Overloaded Operators
//-------------------------------------------------------------------------
//-------------------------------------------------------------------------
// Inlined Fraction Methods in alphabetical order
//-------------------------------------------------------------------------
В свое время я имел Eclipse, поставив это в новые файлы, которые я создал.
Я храню это в файле трафарета и копирую файл перед написанием нового кода. Трафарет не будет иметь декларации метода или строки наследования.
Это звучит здорово! Есть ли файл конфигурации, который вы можете предоставить, или можете ли вы разместить свои шаблоны здесь? –
В CDT уже запрограммированы шаблоны по умолчанию, которые вы можете изменить. Однако вам нужно активировать стиль документации для doxygen. Это в вариантах CDT. – David