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