Допустим, есть такой код на C++:
ClassA a;
ClassB b(a);
ClassC c(a, b);
Насколько он корректен и нет ли тут UB? Я знаю, что если a, b и c находятся в разных compilation unit, то это будет UB (это логично - линковщик может слинковать файлы в произвольном порядке из каких-то своих соображений и особенности реализации). Но если речь идёт об одном файле? Интересует именно соответствие стандартам, а не только реальное поведение компиляторов (чтобы быть уверенным, что такой код не отвалится в будущем).