You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
template<class T>
class MyTemplateClass
{
....
};
typedef unsigned int MyInt;
typedef ::MyTemplateClass<char> MyCharClass;
typedef ::MyTemplateClass<::MyInt> MyMyIntClass;
class MyTestClass
{
void TestMethod1(::MyInt param);
void TestMethod2(::MyCharClass& param);
void TestMethod3(::MyMyIntClass& param);
};
When I parse this, I get the following parameter information for the methods:
TestMethod1 -> param type is unsigned int
TestMethod2 -> param type is MyTemplateClass (wihtout the template arguments!)
TestMethod3 -> param type is MyTemplateClass (wihtout the template arguments!)
When I look at the C interface of clang, it seems that this is solved by using the canonical types, where the original (non-expanded type) is the actual type and holds a pointer to the underlying expanded type (not tested as I am writing C# code using this library).
However using this library, I am not able to get the original type as it is declared in the method signature.
I would like to know the original parameter type as it is written in the code and not the already expanded typedef. My parse configuration is as follows:
This library was not meant to support C++ and templates, also because libclang is sometimes not exposing everything, which is bringing more complications because we need to re-parse things CppAst.
But PR welcome if you find a way to expose this properly.
Let's say I have the following code
When I parse this, I get the following parameter information for the methods:
TestMethod1 -> param type is
unsigned int
TestMethod2 -> param type is
MyTemplateClass
(wihtout the template arguments!)TestMethod3 -> param type is
MyTemplateClass
(wihtout the template arguments!)When I look at the C interface of clang, it seems that this is solved by using the canonical types, where the original (non-expanded type) is the actual type and holds a pointer to the underlying expanded type (not tested as I am writing C# code using this library).
However using this library, I am not able to get the original type as it is declared in the method signature.
I would like to know the original parameter type as it is written in the code and not the already expanded typedef. My parse configuration is as follows:
The text was updated successfully, but these errors were encountered: