[dcl.fct.default] / 3 (выделено мной ):
Аргумент по умолчанию должен быть указан только в предложении-объявления-параметра объявления функции или лямбда-декларатора или в параметре-шаблоне (14.1); в последнем случае предложение-инициализатора должно быть выражением-присваиванием. Аргумент по умолчанию не должен указываться для пакета параметров. Если он указан в предложении-объявлении-параметра, он не должен встречаться в деклараторе или абстрактном-деклараторе объявления-параметра.
В последнем предложении выше говорится, что если аргумент по умолчанию указан в предложении-объявлении-параметра, он не встречается в деклараторе или абстрактном-деклараторе объявления-параметра. Тем не менее, когда я смотрю определение объявления параметра, я нахожу следующее в [ dcl.fct] / 3 (выделено мной):
объявление-параметра:
спецификатор-атрибута-seqopt декларатор-спецификатор-SEQ
спецификатор-атрибута-seqopt спецификатор-декларации-seq declarator = предложение-инициализатора
спецификатор-атрибута- seqopt спецификатор-объявления-seq абстрактный-деклараторопт
спецификатор-атрибута-seqopt спецификатор-объявления-секвентальный-деклараторопт = предложение-инициализатора