Сколько параметров фактически принимает ios :: setstate?

StackOverflow https://stackoverflow.com/questions/9387420

  •  28-10-2019
  •  | 
  •  

Вопрос

Каждое определение функции ios::setstate( iostate state ), которое я видел, показывает, что функция принимает ОДИН и ТОЛЬКО ОДИН параметр, но когда я компилирую программу с помощью следующего вызова функции, все компилируетсяи работает нормально:

родовое слово

Что такое второй параметр и почему по нему нет документации?

РЕДАКТИРОВАТЬ: я использую компилятор командной строки последней версии Microsoft Visual Studio 2010.

Это было полезно?

Решение

Как вы заметили, требуется принимать один аргумент, но реализациям разрешено расширять функции-члены с помощью параметров со значениями по умолчанию (§17.6.5.5).Другими словами, пока это работает:

родовое слово

ваш компилятор соответствует требованиям.Однако ничто не говорит о том, что ваш код не должен работать.

(Реализация вашей библиотеки решила, что было бы полезно иметь логический параметр. Вы никогда не замечаете этого, потому что у него есть значение по умолчанию, но вы все равно можете попасть на территорию конкретной реализации и предоставить аргумент самостоятельно. Независимо от того,это хорошая идея, очевидно, другой вопрос, но, вероятно, нет.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top