My initial proposal for allowing general return type deduction allowed deduction of std::initializer_list, which is not permitted by C++11. But this doesn't make sense, because the underlying array will immediately leak, so we should just give an error even in C++1y. Tested x86_64-pc-linux-gnu, applying to trunk.