It seems that with auto options, g ++ just uses the first auto it encounters. This is mistake?
auto
auto f(std::vector<auto> a) { a.push_back('0'); return std::string(""); }
http://ideone.com/T69ytm
As @SergeyA pointed out, this is a GCC bug. std::vector<auto> should not be accepted.
std::vector<auto>