Я не знаю о стандартах, но могу обсудить некоторые факты, которые я видел в нескольких предыдущих вопросах.
Первый вывод аналогичен очевидным причинам, когда a
и b
находятся в одном и том же объеме. Также a
разрушается после b
, потому что он построен до b
.
Предполагаю, что вас больше интересует второй вывод. Прежде чем начать, следует отметить, что следующие виды создания объектов (автономные временные):
{A (); }
продлится до следующего ;
, а не для окружающего его блока. [D0] Demo . Во втором случае, когда вы это сделаете,
B b ((A ()));
, таким образом A ()
уничтожается, как только заканчивается создание объекта B ()
. Поскольку ссылка const может быть привязана к временному, это не даст ошибку компиляции. Однако это приведет к логической ошибке, если вы попытаетесь получить доступ к B :: a
, который теперь уже связан с переменной области видимости.
Посмотрите, как использовать websockets для передачи данных в реальном времени клиенту (браузеру). Я бы рекомендовал использовать http://socket.io .
Ваш сервер отправит сообщения socket.io с именем message
, содержащие данные сообщения как JSON. Ваш клиент будет прослушивать события message
и обновлять пользовательский интерфейс при входе.