Okay, here's another problem due to ref not being a type constructor.<div>If I have some function that receives an argument by ref, and then I take parameterTypeTuple! of that functions parameter list, the ref bits are gone from the typetuple.</div>
<div>If I give that tuple as a template arg, then the template parameters no longer match the function it's wrapping...<br><div><br></div><div>I'm still thinking more and more that there's no solution to all the problems with ref, other than changing it to use the syntax: ref(type), and be a type constructor, like const/immutable/shared/etc...</div>
</div><div>I have problems with ref almost every day. If not in templates, in function/delegate definitions, and the prior issues previously discussed.</div><div><br></div><div>No matter how I look at it, 'ref' really should be a type constructor. The use of 'ref' fundamentally changes the variable from T to T*, that's a critical difference, and can't just be lost when taking the typeof something.</div>