﻿id	summary	reporter	owner	description	type	status	milestone	component	version	severity	resolution	keywords	cc
3540	Implement optional ByRef parameters for functions	TheDcoder <TheDcoder@…>	Jon	"Hello, I know that this had been already bought up in ticket #2360 but I am going to re-request the feature with proper reasoning and support.

I would like to see optional ByRef parameters work in AutoIt. They would function something like this: If a function has been called which contains an optional ByRef parameter, the ByRef parameter should act as a ""normal"" non-ByRef parameter unless it has been specified in the function call.

There are several advantages to this approach:
1. It is fully backward compatible
2. Several functions which use ByRef parameters can be made optional
3. This solves the problem of creating ""dummy"" variables which are just created for the sake of passing them to ByRef parameters.

I think this is relatively easy to implement and won't have any side effects unlike most feature requests.

If we have nothing to lose but except gain, why don't we do it? ;)

Here is some proof-of-concept code:
{{{
FuncWithOptionalByRef()
FuncWithOptionalByRef(""Foo"")

Func FuncWithOptionalByRef(ByRef $vFoo = ""Bar"")
	ConsoleWrite($vFoo & @CRLF)
EndFunc
}}}
Expected Output after the implementation of this feature:
{{{
Bar
Foo

}}}

In the latest version, the PoC code won't work because of an error: ""Badly formatted function"""	Feature Request	assigned		AutoIt		None		optional,functions,byref	
