It seems to me that Doxygen is by default optimized for C++. From what I can tell, C++ was the first language that Doxygen was designed to be used with; it was supported as far back as the "Change Log" goes. Java support, on the other hand, was not added until version 1.2.5. The OPTIMIZE_OUTPUT_FOR_C
option was also not added until 1.2.5, indicating that prior to 1.2.5, Doxygen was intended to be used more for C++, and less for C.
Without enabling any of the other OPTIMIZE_FOR_<X>
options, Doxygen's output uses C++-style naming in the output. For instance, it will create a group header named "Classes" for listing all classes and structs. On the other hand, if OPTIMIZE_OUTPUT_FOR_C
is turned on, that group header's name is changed to "Data Structures" (this makes sense since C doesn't have "classes").
So, if you want to optimize output for C++, I think the answer is just use the default optimization settings (i.e. don't turn on OPTIMIZE_OUTPUT_FOR_C
or any of the other such options).