// objective: test argument matching in particular for unnamed types
// check: struct_foo.xml
/** @brief Foo */
struct Foo {
    void foo(float value);
    void foo(unsigned value);
    void foo(unsigned long);
    void foo(signed long);
    void foo(const struct Foo);
    void foo(const char * const, const double param2);
};

/** @brief Float */
void Foo::foo(float) {}

/** @brief Unsigned int */
void Foo::foo(unsigned value) {}

/** @brief Unnamed unsigned long */
void Foo::foo(unsigned long) {}

/** @brief Unnamed signed long */
void Foo::foo(signed long) {}

/** @brief Unnamed struct foo */
void Foo::foo(const struct Foo) {}

/** @brief Unnamed const pointer */
void Foo::foo(const char * const, const double param2);

