On 2013-08-20 05:33, Kenji Hara wrote:
If you want to return multiple values from a function, you must always wrap them by std.typecons.Tuple, or other used-defined types. You cannot directly return built-in tuple from a function. (Built-in tuple return is mostly equivalent with multiple-value-return issue. However it would be mostly impossible that defining calling conversion scheme for that in portable)
If I recall correctly some ABI's passes small structs in registers, at least I think it does on Mac OS X.
My opinions agains various syntax proposals: #(1, "str") --> The character '#' is already used for the start of "Special Token Sequences" http://dlang.org/lex.html#Special Token Sequence It is recognized in lexing phase, so adding semantic meaning to the '#' character would be a contradict of D's principle. Quote from http://dlang.org/lex.html "The lexical analysis is independent of the syntax parsing and the semantic analysis."
It depends on how it's lexed. If the compiler lexes "#line" as a single token I cannot see how it will be a problem. Then the "#" token would mean tuple literal.
-- /Jacob Carlborg