Мы используем Drupal, который всегда опускает закрывающий тэг, и никогда не имел проблем из-за него.
, Так как это всегда работало на Drupal (и я знал от чтения руководства, это было дополнительным), я когда-то создал конфигурационный файл (который содержал только код PHP) без закрывающего тэга. По некоторым причинам это не работало, до (по настоянию коллеги) я добавил закрывающий тэг. Мы не пытались узнать причину в то время.
я всегда использовал закрывающий тэг в коде, который я пишу; это выглядит более симметричным, концептуально "закрывает" открывающий тэг, и я всегда стараюсь не оставить любой дополнительный пробел после закрывающего тэга.
Этот метод был введен исследователем компьютерных наук из Мэрилендского университета Биллом Пью и уже давно используется в кругах Java. Я думаю, что здесь я вижу вариант C # оригинальной реализации Java Билла. Это не имеет смысла в контексте C ++, поскольку текущий стандарт C ++ не зависит от параллелизма. Вся идея основана на языковой гарантии того, что внутренний класс будет загружен только при первом использовании потокобезопасным способом. Это не относится к C ++. (См. Также эту запись в Википедии )
. Вы найдете отличное обсуждение того, как реализовать синглтон, а также поток- безопасности в C ++ в этой статье.
Насколько мне известно, наследуемое поведение Singleton невозможно в C ++ или Java (или, по крайней мере, этого не было в более ранних версиях JDK). Это особый трюк C #. Ваши подклассы должны будут явно реализовать протокол.