<div dir="ltr">Observing strange behaviour, just want to know if it's correct...<div><br></div><div><div>struct VertexBuffer(VertexDataType = void) {}</div></div><div><br></div><div>VertexBuffer x;<br></div><div>  Error: struct VertexBuffer(VertexDataType = void) is used as a type<br>
</div><div><br></div><div>auto y = VertexBuffer();</div><div>  Error: struct VertexBuffer(VertexDataType = void) cannot deduce template function from argument types !()()<br></div><div><br></div><div>But this works:</div>
<div>VertexBuffer!() z;</div><div><br><br></div><div>Why should I need to supply an empty argument list? This defeats the purpose of the default arg, and obscures my code in the common case.</div><div><br></div><div>Untyped vertex buffers are the default, and it would be nice to be able to declare them trivially.</div>
<div><br></div><div>Also, those error messages are quite unhelpful.</div></div>