Почему статический порядок инициализации Fiasco называется так?

поскольку Статическая инициализация Что касается нулевой инициализации и инициализации с помощью константного выражения, то, согласно стандарту C ++ 03, я не вижу, какое фиаско могло возникнуть там.

Итак, почему такое имя, а не, например, «[Динамический] Порядок инициализации Fiasco»?

Редактировать:

Это на самом деле риторический вопрос, но я нахожу, что мой английский слишком слаб, чтобы отвечать на вопросы. Я также свободно использую «статическую инициализацию» как сокращение для «всей инициализации, происходящей до main()«Но поскольку термин« статический »уже перегружен, я записал этот вопрос:

  • Напоминаем, что «статическая инициализация» имеет формальное определение в стандарте.
  • Собрать любую историческую или анекдотическую причину этой формулировки.
  • Для тех, кто искренне смущен кажущимся парадоксом.

0

Решение

«Статический» здесь относится (несколько двусмысленно и не совсем точно) к переменным со статической длительностью хранения, а не к статической инициализации нелокальных переменных.

Вы правы, что фиаско происходит только при динамической инициализации нелокальных переменных.

почему такое имя?

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

1

Другие решения

Потому что терминология С ++ сложна, а технический термин часто вступает в противоречие с разговорной манерой высказывания.

  • «Стандартная инициализация» в стандарте — это то, что вы сказали, но люди обычно используют его для обозначения «инициализации именованных объектов в области пространства имен со статической продолжительностью хранения».

  • Другой пример: люди говорят, что «функция возвращает ссылку», но это не совсем так: скорее, оценка вызова функции всегда приводит к значение, и значения никогда не являются ссылками. Разница заключается в том, является ли значение lvalue, xvalue или prvalue, что зависит от объявленного типа возвращаемого значения функции. Но это скорее глоток.

2

Это потому, что программисты обычно попадают в заблуждение об исключенном среднем. Самый распространенный симптом: если он не идеален, он бесполезен. Еще один распространенный симптом: дать что-то, что вызывает проблемы, если не совсем понятно тенденциозное имя, как в «фиаско статического порядка инициализации».

0
По вопросам рекламы [email protected]