-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[C++] Ensure consistent non-specialization template argument representation, rebased and updated #10729
[C++] Ensure consistent non-specialization template argument representation, rebased and updated #10729
Conversation
df8d5b0
to
9ac4df0
Compare
…tation Previously, in certain cases the template arguments of non-specializations were retained, leading to incorrect merging of symbols.
Specifically 'template<int (X::*)(bool)...>'
9ac4df0
to
44ecc13
Compare
44ecc13
to
f5c21a1
Compare
Thanks! |
Per the TODO entry in my original PR you added support for parsing:
However, that does not appear to be valid C++ syntax. I believe the correct syntax is:
|
It depends on which location. In the test it was as a non-type template parameter: struct X {};
template<int (X::*)(bool)...>
void f() {} i.e., a pack of member function pointers. The addition was to make that parse in Sphinx. |
Ah, thanks for the clarification. |
Rebased and updated version of #10257.
In addition the parameter pack parsing is fixed for one of the noted cases, while the other case is not valid C++ code anyway.