Пример, на который вы ссылаетесь , известен как противоречивый . Комитет еще не исправил это.
Итак, это ошибка в GCC и VS2010?
Не думаю, что это ошибка в GCC / VS2010 / Clang или Comeau. Кажется, это ошибка в стандарте C ++. В этих случаях авторы компиляции должны принять решение о том, что является наиболее жизнеспособным. Если вы удалите рассматриваемый пример, то 3.3 / 4 заявит, что пример действителен: «При наличии набора объявлений в одной декларативной области, каждая из которых задает одно и то же безусловное имя, ... все они должны ссылаться на одну и ту же сущность». или все относятся к функциям и шаблонам функций; или ... ".
Возникает вопрос, как обсуждалось в связанном вопросе, на что ссылается 7.3.3 / 8, когда говорится «декларации», по которым комитет не достиг консенсуса. И так, до тех пор 3.3 / 4 применяется для GCC / VS2010 и Clang, в то время как Comeau выбирает другую семантику.