Replaced the default empty out parameters with function overloads
Replaced the default empty out parameters with function overloads

The previous code is non-standard conformant, it was assigning a temporary to a non-const reference.
VS2015 accepts it most likely because of a non-standard extension.

patrikhuber/eos,icyrizard/eos,patrikhuber/eos,patrikhuber/eos,icyrizard/eos,icyrizard/eos