namespace A{
int i;
}
int main(){
using A::i;
using A::i;
}
VS2010 - отлично компилируется
gcc (ideone) — компилируется нормально
Comeau - выдает ошибку ""ComeauTest.c", строка 10: ошибка: "i" уже объявлен в текущей области видимости с помощью A::i;"
$7.3.3/8 — «Объявление использования — это объявление, поэтому его можно использовать повторно там, где (и только там) разрешено несколько объявлений».
Пример прямо здесь указывает на то, что код действительно неправильно сформирован.
Итак, это ошибка в GCC и VS2010?
РЕДАКТИРОВАТЬ 2:
Удалите несколько using directives
, поскольку они не связаны с имеющимся запросом.
int main(){ extern int i; extern int i;}
. Очевидно, я упускаю что-то простое. - person GManNickG   schedule 23.11.20107.3.3/8
один раз. - person Prasoon Saurav   schedule 23.11.2010