Неоднозначность синтаксиса C ++

Учтите:

void f(std::pair<bool,bool> terms = std::pair<bool,bool>(1,1)) {}

gcc 4.4 в порядке, gcc 4.3 жалуется на ошибку: ожидается ',' или '...' перед '>' токеном . Исправление:

void f(std::pair<bool,bool> terms = (std::pair<bool,bool>(1,1))) {}

В чем причина? Это ошибка в 4.3?

6
задан Andrew Marshall 6 April 2011 в 21:43
поделиться