поскольку Статическая инициализация Что касается нулевой инициализации и инициализации с помощью константного выражения, то, согласно стандарту C ++ 03, я не вижу, какое фиаско могло возникнуть там.
Итак, почему такое имя, а не, например, «[Динамический] Порядок инициализации Fiasco»?
Редактировать:
Это на самом деле риторический вопрос, но я нахожу, что мой английский слишком слаб, чтобы отвечать на вопросы. Я также свободно использую «статическую инициализацию» как сокращение для «всей инициализации, происходящей до main()
«Но поскольку термин« статический »уже перегружен, я записал этот вопрос:
«Статический» здесь относится (несколько двусмысленно и не совсем точно) к переменным со статической длительностью хранения, а не к статической инициализации нелокальных переменных.
Вы правы, что фиаско происходит только при динамической инициализации нелокальных переменных.
почему такое имя?
Как и в случае любого разговорного выражения, люди используют его, потому что другие люди используют и понимают его, даже если это не самый лучший способ выразить концепцию.
Потому что терминология С ++ сложна, а технический термин часто вступает в противоречие с разговорной манерой высказывания.
«Стандартная инициализация» в стандарте — это то, что вы сказали, но люди обычно используют его для обозначения «инициализации именованных объектов в области пространства имен со статической продолжительностью хранения».
Другой пример: люди говорят, что «функция возвращает ссылку», но это не совсем так: скорее, оценка вызова функции всегда приводит к значение, и значения никогда не являются ссылками. Разница заключается в том, является ли значение lvalue, xvalue или prvalue, что зависит от объявленного типа возвращаемого значения функции. Но это скорее глоток.
Это потому, что программисты обычно попадают в заблуждение об исключенном среднем. Самый распространенный симптом: если он не идеален, он бесполезен. Еще один распространенный симптом: дать что-то, что вызывает проблемы, если не совсем понятно тенденциозное имя, как в «фиаско статического порядка инициализации».