`operator` of unsigned conversion overload not scoped
The operator keyword seems to fail to scope and highlight if an unsigned type is specified for a conversion overload in C++. I have included an example of an signed conversion that scopes correctly, including a screen capture showing the intellisense even correctly identifiers the conversion prototype. Extra, the token unsigned and int should be scoped as function as well for consistency. My guess, working in TextMate myself, is that an extra token between operator and <T>( isn't dealt with here.
I didn't see this mentioned in any previous issues.
Checklist
- [X] This problem exists even with the setting
"C_Cpp.enhancedColorization": "Disabled" - [X] This bug exists for C++
These are unknown...
- [ ] This bug exists for C
- [ ] This bug exists for Objective-C
- [ ] This bug exists for Objective-C++
The code with a problem is:
GitHub's colorizer is closer to the correct interpretation.
// public elements
char b1, b2, b3, b4;
operator unsigned int() { return _value; }
operator int() {return _value; }
It looks like:
(VS Code / custom theme based on Monokai Dimmed)
It should look like:
Ideally operator should appear the same on both lines, and unsigned int should appear as a function name the same as the int on the signed conversion.
There may be other unsupported multiple token types, such as long long that don't scope correctly as well.