Моя компания использует сервер обмена сообщениями, который получает сообщение в const char*, а затем передает его в тип сообщения.
Я стал беспокоиться об этом, задав этот вопрос. Я не знаю о каком-либо плохом поведении на сервере обмена сообщениями. Возможно ли, что переменные const не несут проблем с псевдонимом?
Например, скажем, что foo определен в MessageServer одним из следующих способов:
-  В качестве параметра: void MessageServer(const char* foo)
-  Или как константная переменная в верхней части MessageServer:const char* foo = PopMessage();
Теперь MessageServer является огромной функцией, но никогда не присваивает ничего foo, однако в 1 точке в MessageServer логика foo будет передана выбранному типу сообщения.
auto bar = reinterpret_cast<const MessageJ*>(foo);
 bar будет читаться только потом, но будет использоваться для установки объекта.
Возможна ли проблема с псевдонимом, или же факт, что foo инициализирован и никогда не менялся, сохранил?
EDIT:
 Ответ Jarod42 не вызывает проблем с кастингом от const char* до MessageJ*, но я не уверен, что это имеет смысл.
Мы знаем, что это незаконно:
MessageX* foo = new MessageX;
const auto bar = reinterpret_cast<MessageJ*>(foo);
Мы говорим, что это как-то делает его законным?
MessageX* foo = new MessageX;
const auto temp = reinterpret_cast<char*>(foo);
auto bar = reinterpret_cast<const MessageJ*>(temp);
Мое понимание ответа Jarod42 заключается в том, что приведение к temp делает его законным.
EDIT:
Я получил некоторые комментарии относительно сериализации, выравнивания, передачи сети и т.д. Это не тот вопрос, о котором идет речь.
Это вопрос о строгом псевдониме.
Строгое сглаживание - это предположение, сделанное компилятором C (или С++), что указатели разыменования объектов разных типов никогда не будут ссылаться на одно и то же место в памяти (то есть псевдоним eachother.)
Я спрашиваю:  Будет ли инициализация объекта const путем кастинга из char*, когда-либо оптимизирована ниже, где этот объект передается другому типу объекта, так что я литье из неинициализированных данных?
