Мне действительно непонятно, почему кто-то может назвать конкретную форму инициализации «инициализация значения». Звучит так, как будто он инициализирует объект, давая ему значение … но это то, что инициализация делает в целом, и имя ничего не говорит вам о который значение, которое он собирается использовать для инициализации.
Увеличить значение value_init предоставить довольно подробную историю инициализация значения это закончилось в стандарте от отчет о дефекте 178: подробнее об инициализации значения и кажется, что термин произошел от отчет о дефекте 35: определение инициализации по умолчанию. Хотя ни один из этих документов на самом деле не обеспечивает правильное происхождение термина, он действительно дает некоторые хорошие идеи, он говорит:
Первое техническое исправление к стандарту C ++ (TC1), в котором
Проект был выпущен для общественности в ноябре 2001 года, представил Core
Выпуск 178 (среди многих других вопросов, конечно).Этот вопрос представил новую концепцию инициализации значения (это также
исправлена формулировка для инициализации нуля). Неформально,
инициализация значения аналогична инициализации по умолчанию с
исключение, что в некоторых случаях нестатические члены данных и базовый класс
подобъекты также инициализируются значением. Разница в том, что
объект, инициализированный значением, не будет иметь (или, по крайней мере, меньше
вероятно) неопределенные значения для членов данных и базового класса
суб-объекты; в отличие от случая объекта по умолчанию построен. (увидеть
Основной выпуск 178 для нормативного описания).Чтобы указать значение инициализации объекта, нам нужно использовать
инициализатор пустого набора: ().
и инициализация значения с меньшей вероятностью оставит объект с неопределенным значением по сравнению с по умолчанию-инициализационные.