Инициализатор списка принимает последовательность выражений, но вместо этого вы дали ей полные объявления переменных.Это просто неверный синтаксис.Вы можете размещать объявления только в «свободном пространстве» в функции или в области пространства имен, но не внутри другого оператора (для целей этого ответа мы проигнорируем радости условных выражений).
Вы, вероятно, намеревались создатьвместо этого некоторые временные:
list<Patient> sp = {
Patient("I.Petrov", "21.12.02", 4),
Patient("D.Stoyanov", "12.02.97", 7),
Patient("K.Dimitrov", "07.08.90", 1)
};
Но я бы написал это как:
std::list<Patient> sp{
{"I.Petrov", "21.12.02", 4},
{"D.Stoyanov", "12.02.97", 7},
{"K.Dimitrov", "07.08.90", 1}
};