I'm sorry if this is not the right place to report bugs. Please let me know how/where to file the bug.
I have ran into a bug in Doxygen, where it is not correctly parsing overloaded function names, where the input type is a templated class and the template parameter is a user-defined type alias (see example below). What happens is that Doxygen sees all overloaded functions identical. When I leave the user-defined type alias out, and use build-in types as the template parameter, then Doxygen distinguishes all functions. In the example below, out of the first 3 overloads of the function, only the first one is documented, but with the documentation string for all 3. The other three overloads are documented.
// file.h
/// \brief A namespace
namespace xxx {
template< typename T >
class Array {};
using sint = int;
using uint = unsigned;
using dfloat = double;
using IntegerArray = Array< xxx::sint >;
using UnsignedArray = Array< xxx::uint >;
using FloatArray = Array< xxx::dfloat >;
using IntegerArray2 = Array< int >;
using UnsignedArray2 = Array< unsigned >;
using FloatArray2 = Array< double >;
/// \brief A function -- documented, it's different from all other functions
inline out* function( UnsignedArray const& in ) {}
/// \brief A function -- no documentation generated, Doxygen thinks it's identical to the one above
inline out* function( IntegerArray const& in ) {}
/// \brief A function -- no documentation generated, Doxygen thinks it's identical to the one above
inline out* function( FloatArray const& in ) {}
/// \brief A function -- documented, it's different from all other functions
inline out* function( UnsignedArray2 const& in ) {}
/// \brief A function -- documented, it's different from all other functions
inline out* function( IntegerArray2 const& in ) {}
/// \brief A function -- documented, it's different from all other functions
inline out* function( FloatArray2 const& in ) {}
I'm sorry if this is not the right place to report bugs. Please let me know how/where to file the bug.
I have ran into a bug in Doxygen, where it is not correctly parsing overloaded function names, where the input type is a templated class and the template parameter is a user-defined type alias (see example below). What happens is that Doxygen sees all overloaded functions identical. When I leave the user-defined type alias out, and use build-in types as the template parameter, then Doxygen distinguishes all functions. In the example below, out of the first 3 overloads of the function, only the first one is documented, but with the documentation string for all 3. The other three overloads are documented.
// file.h
/// \brief A namespace
namespace xxx {
template< typename T >
class Array {};
using sint = int;
using uint = unsigned;
using dfloat = double;
using IntegerArray = Array< xxx::sint >;
using UnsignedArray = Array< xxx::uint >;
using FloatArray = Array< xxx::dfloat >;
using IntegerArray2 = Array< int >;
using UnsignedArray2 = Array< unsigned >;
using FloatArray2 = Array< double >;
/// \brief A function -- documented, it's different from all other functions
inline out* function( UnsignedArray const& in ) {}
/// \brief A function -- no documentation generated, Doxygen thinks it's identical to the one above
inline out* function( IntegerArray const& in ) {}
/// \brief A function -- no documentation generated, Doxygen thinks it's identical to the one above
inline out* function( FloatArray const& in ) {}
/// \brief A function -- documented, it's different from all other functions
inline out* function( UnsignedArray2 const& in ) {}
/// \brief A function -- documented, it's different from all other functions
inline out* function( IntegerArray2 const& in ) {}
/// \brief A function -- documented, it's different from all other functions
inline out* function( FloatArray2 const& in ) {}
}
Doxyfile:
OUTPUT_DIRECTORY = out
EXTRACT_STATIC = YES
EXTRACT_ANON_NSPACES = YES
INPUT = .
FILE_PATTERNS = *.h