Dlaczego tak
Wartości wyliczenia numeruje się od 0, a każda kolejna stała bez jawnej wartości jest o 1 większa od poprzedniej: Czerwony = 0, Zielony = 5 (nadane jawnie), Niebieski = 6. Rzutowanie static_cast<int> zamienia wartość na liczbę, więc wypisane zostaje 6. Wynik 2 to pozycja stałej na liście, który byłby poprawny tylko bez jawnego przypisania Zielony = 5, a nazwy stałej strumień nie wypisze.