Hello Mailinglist,

 

I want to expand macro function in my code. If I use a global setting, its works correct, but if I want to do macro expansion only for individual macros it don't expand correct.

 

I added an example code to test it with the following settings (Doxy Wizard – Preprocessor tab):

 

Working case

===========================================================

ENABLE_PREPROCESSING - set

MACRO_EXPANSION - not set

EXPAND_ONLY_PREDEF - not set

SEARCH_INCLUDE - set

 

INCLUDE_PATH

-empty

 

INCLUDE_FILE_PATTERNS

-empty

 

PREDEFINED

-empty

 

EXPAND_AS_DEFINED

-empty

 

SKIP_FUNCTION_AS_DEFINED - set

 

Not working case

===========================================================

ENABLE_PREPROCESSING - set

MACRO_EXPANSION - not set

EXPAND_ONLY_PREDEF - not set

SEARCH_INCLUDE - set

 

INCLUDE_PATH

-empty

 

INCLUDE_FILE_PATTERNS

-empty

 

PREDEFINED

-empty

 

EXPAND_AS_DEFINED

- EVENTTYPE_TABLE

- ENTRY

 

SKIP_FUNCTION_AS_DEFINED - set

 

 

 

Additional comment

===========================================================

It's only documentated what happen if EXPAND_AS_DEFINED has entries and PREDEFINED and EXPAND_AS_DEFINED is set. It's not defined what happen if only one is set.

It seems that Macro's are skiped if EXPAND_AS_DEFINED has entries and is not set.

 

I hope some one has an idea whats going work. Is it a still a bug in doxygen or it is my fault.

Best regrads

Torsten

 

MacroTest.h

===========================================================

 

/** For an overview of the mappings of these events to the handling methods in

MacroTest, see @ref MacroTest.

@file MacroTest.h

*/

 

/// This is a documentation comment

enum TypeType_t

{

bla1,

bla2,

 

PROGRAM_INTERNAL_ET = INT_MAX ///< Do not touch this. Required for ensuring consistent enum type size across libraries.

};

 

 

/** For an overview of the mappings of these events to the handling methods in

MacroTest, see @ref MacroTest.

@file MacroTest.h

*/

 

/** @brief Program event types.

*/

 

#define EVENTTYPE_TABLE \

/** A key was pressed down. */ \

ENTRY(ET_KEYDOWN) \

/** A key was released. */ \

ENTRY(ET_KEYUP) \

/** A character key was pressed. */ \

ENTRY(ET_CHAR) \

/** The mouse was moved while a button was pressed. */ \

ENTRY(DEPRECATED_ET_MOUSEDRAG) \

/** The mouse was moved while all buttons were released. */ \

ENTRY(ET_MOUSEMOVE) \

/** The mousewheel was used. */ \

ENTRY(ET_MOUSEWHEEL) \

/** The left mouse button was released. */ \

ENTRY(ET_LBUTTONUP) \

/** The left mouse button was pressed. */ \

ENTRY(ET_LBUTTONDOWN) \

/** The left mouse button was double clicked. @ref CGUIEventHandler::GetDoubleClickTime() */ \

ENTRY(DEPRECATED_ET_LBUTTONDBLCLK) \

/** The right mouse button was released. */ \

ENTRY(ET_RBUTTONUP) \

/** The right mouse button was pressed. */ \

ENTRY(ET_RBUTTONDOWN) \

/** The left mouse button was pressed longer than @ref CGUIEventHandler::GetLongClickTime(). */ \

ENTRY(DEPRECATED_ET_LBUTTONLONGCLICK) \

/** A hot key was pressed (used on e.g. smart phones)*/ \

ENTRY(ET_HOTKEYDOWN) \

/** A hot key was released (used on e.g. smart phones)*/ \

ENTRY(ET_HOTKEYUP)

 

/// This is a documentation comment

enum EventType_t

{

#define ENTRY(a) a,

EVENTTYPE_TABLE

#undef ENTRY

PROGRAM_INTERNAL_ET = INT_MAX ///< Do not touch this. Required for ensuring consistent enum type size across libraries.

};

 

 

/// MacroTest special doc

/// Special comment bla bla bla

/// bla bla bla

/// bla bla bla

/// bla bla bla

 

class MacroTest

{

public:

/// Constructor

MacroTest();

/// Destructor

~MacroTest();

/// Getter

/// bla bla bla

/// @param i The param to get

/// @return Pointer to MacroTest.

MacroTest *GetMacro(int i ) {return this;};

 

/// Setter

/// bla bla bla

/// @param i The param to get

void SetMacro(int i ) {MacroTest i = 0;};

 

/// Super duper member

int m_i;

/// BLABLA

EventType_t m_EventType;

/// Blabla

TypeType_t m_TypeType;

}

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
Doxygen-users mailing list
Doxygen-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/doxygen-users

Reply via email to