At the time I'm writing, Doxygen will perform full-blown file inclusion if several conditions are met. From the Doxygen documentation documentation :
... the preprocessor parses, but doesn’t actually include the code when it encounters #include (with the exception of #include found inside {...})
Another undocumented, but intuitive precondition that I found through experimentation is that any {...} block #include must itself be documented. For example, running Doxygen in the following test file using Boost.Preprocessor will generate entries for the structures FOO::A , FOO::B and FOO::C , provided that MACRO_EXPANSION included in the configuration file, the required extraction mode is set to " All objects ", and the acceleration folder is correctly set to INCLUDE_PATH :
#include <boost/preprocessor/iteration/local.hpp> #include <boost/preprocessor/tuple/elem.hpp> #define STRUCTS (A, B, C) namespace FOO { #define BOOST_PP_LOCAL_MACRO(n) struct BOOST_PP_TUPLE_ELEM(3,n, STRUCTS) {}; #define BOOST_PP_LOCAL_LIMITS (0,2) #include BOOST_PP_LOCAL_ITERATE() }
However, removing FOO to place structures in an anonymous namespace will result in a lack of documentation. So, if you can port #include "generator.h" to an explicit namespace, it will work.
spyderfreek
source share