Интересно, есть ли причина, по которой мы не можем инициализировать членов при их объявлении.
class Foo
{
int Bar = 42; // this is invalid
};
Как эквивалент использования списков инициализации конструктора.
class Foo
{
int Bar;
public:
Foo() : Bar(42) {}
}
Мое личное понимание заключается в том, что приведенный выше пример гораздо более выразителен и преднамерен. Более того, это более короткий синтаксис. И я не вижу никакой путаницы с другими языковыми элементами.
Есть ли официальные разъяснения по этому поводу?