standardese/cppast

`unexposed_t` type when template parameters are omitted.

deadlocklogic opened this issue · 1 comments

  • cppast version: latest one
  • parser: libclang_parser
  • clang version: 13.0.0

Explanation of the error.

Input:

template <typename T>
class Test {
public:
    Test(const Test&) = delete;
};

The parameter's cpp_reference_type.referee()->kind() is giving unexposed_t.

Adding explicit template parameters solves the issue.

template <typename T>
class Test {
public:
    Test(const Test<T>&) = delete;
};

Possible bug? Or limitation?

This is a libclang limitation, unfortunately. I think it's related to #4.