Here deduction was failing because when we tried to substitute {int,int} for Args in decltype(T(std::declval()...)) we still had Args marked as an incomplete/deducible parameter pack, so the expansion wasn't fully resolved. So now we clear the incomplete flag before trying to substitute into later default arguments. Tested x86_64-pc-linux-gnu, applying to trunk.