On-line: гостей 0. Всего: 0 [подробнее..]
Программисты всех стран, объединяйтесь!

АвторСообщение



ссылка на сообщение  Отправлено: 28.07.12 16:59. Заголовок: Еще раз о пространстве имен и возможном баге в MS VC++ 2010.


Обнаружил такой простой баг в MS VC++ 2010.

Есть код

#include   <iostream> 

namespace A
{
int i = 5;
}

int main()
{
using namespace A;
std::cout << "::i = " << ::i << std::endl;
}


Компилятор MS VC++ 2010 выдает сообщение об ошибке, что имя ::i не находит.

Если же директиву using вынести из функции main, то переменная ::i находится.

#include   <iostream> 

namespace A
{
int i = 5;
}

using namespace A;

int main()
{
std::cout << "::i = " << ::i << std::endl;
}


Что-то я нигде в стандарте С++ не усмотрел, что первый вариант не должен компилироваться и отличается от последнего варианта при поиске имен, квалифицированных оператором ::.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 2 [только новые]





ссылка на сообщение  Отправлено: 28.07.12 17:01. Заголовок: Я вот далек от С, но..


Я вот далек от С, но интересно: MS VC++ глючный компилятор?

Спасибо: 0 
Цитата Ответить



ссылка на сообщение  Отправлено: 28.07.12 17:02. Заголовок: PSP пишет: Я вот да..


PSP пишет:

 цитата:
Я вот далек от С, но интересно: MS VC++ глючный компилятор?



Чем больше я с ним работаю, тем больше глюков нахожу. Но дело в том, что вышло исправление к этому компилятору SP1, которое я еще не установил. Возможно, что часть ошибок там уже исправили.

Но в целом впечатление такое, тчо этот компилятор повторяет путь компилятора Borland C++ Builder. Там также главным нареканием со стороны пользователей была его несовместимость со стнадартом. Из-за этого часть пользователей вынуждены были переходить на компляторы других фирм. В итоге Borland C++ Builder как продукт именно Borland перестал существовать в виду того, что не приносил прибыль, и Borland его перепродала. Из-за этого популярность Borland Builder резко упала.

Я думаю, что Microsoft поступил просто не совсем чистоплотно.. Им главное было - это сбыть продукт в установленные сроки, а уж потом серьезно за него браться. То есть задача была срубить деньги в соответсвии с заранее составленным планом. А план у них такой, что каждлые два года выпускать новую версию своего компиляторпа. Был MS VC++ 2008, теперь MS VC++ 2010, наверное на подходе MS BC++ 2012.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 5
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет