Skip to content
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

Change return type of named swizzles #672

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

gmlueck
Copy link
Contributor

@gmlueck gmlueck commented Dec 3, 2024

This is change 5 of 9 that fix problems with the specification of the vec class. An implementation that follows the existing specification would not accept common code patterns and would not pass the CTS. None of the existing implementations actually follow the existing specification.

This change aligns the return type of the 1-element "named" swizzles to the behavior of the existing implementations (and the CTS). This changes the specified behavior of code like this:

vec<uint8_t, 4> v4{255};
auto v = v4.x();         // Returns reference to "uint8_t" not 1-element swizzle
int i = v4.x() + 1;      // Result is 256 not 0

These changes correspond to slides 19 - 22 of the presentation that was discussed in the WG meetings.

This is change 5 of 9 that fix problems with the specification of the
`vec` class.  An implementation that follows the existing specification
would not accept common code patterns and would not pass the CTS.  None
of the existing implementations actually follow the existing
specification.

This change aligns the return type of the 1-element "named" swizzles to
the behavior of the existing implementations (and the CTS).  This
changes the specified behavior of code like this:

```
vec<uint8_t, 4> v4{255};
auto v = v4.x();         // Returns reference to "uint8_t" not 1-element swizzle
int i = v4.x() + 1;      // Result is 256 not 0
```

These changes correspond to slides 19 - 22 of the presentation that was
discussed in the WG meetings.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant