-
Notifications
You must be signed in to change notification settings - Fork 265
feat: allow template specialization #598
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
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
MaxSagebaum
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, but I have doubts about the choice of the type keyword.
I had problems with the newest version of gcc.
0f4436c to
eb04fb1
Compare
eb04fb1 to
3aa3929
Compare
3aa3929 to
16174b3
Compare
16174b3 to
dc850fa
Compare
7dd5d76 to
955a8ec
Compare
e01a933 to
d7cc82a
Compare
3d0c7a2 to
3bfd904
Compare
3bfd904 to
12ad062
Compare
The syntax is `specialize<specialization_arguments>`
after the optional template parameter list.
Some examples from the tests:
```Cpp2
std: namespace = {
common_type: @struct @print specialize<outer, outer> type = {
type: type == outer;
}
}
v: <T> const i32 = 1;
v: <> specialize<void> const i32 = 2;
v: specialize<i64> const i32 = 3;
v: <T> specialize<* T> std::optional<int> == 6;
```
b8dc740 to
32d1ebd
Compare
|
Hi! Sorry it took me so long to get to this one... but this looks like it might still be current. Is this up to date, and would you like me to review it? |
|
Yes, and yes, please do. |
Resolves #467.
Partially addresses #387 (#387 (comment)).