2011-11-30 10 views
7

मैं दो वर्ग गणनाओं को दस्तावेज करने की कोशिश कर रहा हूं जिसमें डोक्सिजन के साथ कुछ समान मूल्य शामिल हैं। लेकिन यह एक ही नाम के साथ प्रत्येक फ़ील्ड के लिए डुप्लीकेट पाठ उत्पन्न करता है।डॉक्सिजन के साथ समान नाम के साथ गणना मूल्यों को कैसे दस्तावेज़ित करें?

/*! 
* \enum OperandType 
* \brief A type of operand. Represents the location of the operand. 
*/ 
enum class OperandType : unsigned int { 
    IMMEDIATE,   /**< An immediate operand */ 
    REGISTER,   /**< An operand in a register */ 
    STACK,    /**< An operand on the stack */ 
    GLOBAL    /**< A global operand */ 
}; 
/*! 
* \enum PositionType 
* \brief A type of position for a variable 
*/ 
enum class PositionType : unsigned int { 
    STACK,   /**< A variable on the stack */ 
    PARAMETER,  /**< A parameter */ 
    GLOBAL,   /**< A global variable */ 
    CONST   /**< A const variable.*/ 
}; 

प्रत्येक गणना के ढेर सदस्य के लिए विवरण दोनों विवरण के संयोजन है और वहाँ ग्लोबल के लिए एक ही समस्या है:

यहाँ मेरी दो enumerations हैं।

ढेर के वर्णन है:

ढेर

ढेर

वहाँ विशेष रूप से उनमें से प्रत्येक दस्तावेज़ के लिए एक रास्ता है पर एक संकार्य पर एक चर?

+4

डॉक्सिजन सी ++ 11 के लिए बहुत खराब समर्थन है। – Pubby

+1

क्या यह काम करता है यदि आप एक एनम्स को नेमस्पेस में डालते हैं और उसके बाद पैरेंट नेमस्पेस में enum आयात करते हैं? मुझे लगता है कि एक कम बदसूरत तरीका है लेकिन मुझे डॉक्सिजन अच्छी तरह से नहीं पता है। उम्मीद है कि इसका सी ++ 11 समर्थन जल्दी से सुधारता है – bames53

उत्तर

2

वर्कअराउंड इसे नामस्थान में रखना और using इसे बाहर निकालना है।

/*! 
* enum class 
*/ 
namespace enum_class { 
    /*! 
    * \enum OperandType 
    * \brief A type of operand. Represents the location of the operand. 
    * Ok 
    */ 
    enum class OperandType : unsigned int { 
     IMMEDIATE,   /**< An immediate operand */ 
      REGISTER,   /**< An operand in a register */ 
     STACK,    /**< An operand on the stack */ 
     GLOBAL    /**< A global operand */ 
    }; 
} 
using enum_class::OperandType; 
/*! 
* \enum PositionType 
* \brief A type of position for a variable 
*/ 
enum class PositionType : unsigned int { 
    STACK,   /**< A variable on the stack */ 
    PARAMETER,  /**< A parameter */ 
    GLOBAL,   /**< A global variable */ 
    CONST   /**< A const variable.*/ 
}; 

आप एक अलग नाम स्थान (enumeration) में PositionType, इसलिए यदि आपका जुदाई पसंद नहीं है सकते हैं।

+0

यह काम करता है लेकिन फिर गणना enum_class के तहत प्रलेखित है और मेरे नामस्थान के तहत नहीं। मुझे लगता है कि यह आदर्श नहीं है क्योंकि इस enum का उपयोग करने वाले व्यक्ति रूट नेमस्पेस में दस्तावेज़ों को खोजेंगे। क्या उपयोग करने के लिए दस्तावेज उत्पन्न करने के लिए डॉक्सीजन को बताने का कोई तरीका है? –

संबंधित मुद्दे