Моя ошибка. Надо было удалить при создании темы.
Это какая-то фишка gcc компилятора Dev-C++ среды. Кажется она не дает консольному окну автоматически закрываться после выполнения. Просто забудь про эту строку.
Здравствуйте, Инженер, Вы писали:
И>Моя ошибка. Надо было удалить при создании темы. И>Это какая-то фишка gcc компилятора Dev-C++ среды. Кажется она не дает консольному окну автоматически закрываться после выполнения. Просто забудь про эту строку.
Так мой не DEV-C++ g++ 3.2.3 тоже не стал ругаться, потому как кто-то из заголовков list или string содержит нужное включение
Of course, the code must be complete enough to compile and link.
Здравствуйте, Lorenzo_LAMAS, Вы писали:
B>>Это заблуждение. Данный код корректен — его прекрасно компилят Comeau, VC7.1, VC6
L_L>Ага. А что такое system, что без объявления используется? Он в <list> или в <string> по стандарту должен содержаться?
Формально ты конечно прав, и мое утверждение про коррекетость кода неверно. Но вернемся к нашей проблеме: было ли в исходном вопросе хоть слово, связанное с этими самыми system и printf? Вызвало ли это ошибку при использовании самых популярных компиляторов? ИМХО данное обстоятельство в контексте заданного вопроса несущественно, и не заслуживает такого повышенного внимания. Тоже самое относится и к abracadabra.
Здравствуйте, Анатолий Широков, Вы писали:
АШ>Пользуясь случаем и Вы мне тогда ответьте:
АШ>А я сразу же в объявление скобки добавил. Понятно ведь, о чем OP думал.
АШ>Скобки Вы добавить догадались, а убрать abrakadabra нет?
Объявление функции вместо определения переменной — типичная ошибка, с ней все было очевидно. А вот abrakadabra меня очень заинтересовала в свете слов OP о том, что код транслируется. Потому в этом месте я понял OP буквально. И, как выяснилось, оказался прав: этот код действительно компилируется VC7.1.
Как я понимаю, обсуждать содержательную сторону вопроса (ill-formed ли эта программа или содержит undefined behavior, требуется ли диагностика, правильно ли действует VC7.1 и т.п.) Вы не хотите. Оно, наверное, и к лучшему. Рабочий день у меня уже закончился, и сил читать стандарт нет.
Re[8]: Непонятки с шаблоном
От:
Аноним
Дата:
21.10.04 10:11
Оценка:
Здравствуйте, elcste, Вы писали:
E>Здравствуйте, Анатолий Широков, Вы писали:
E>>>Да, Вы правы. Следует сказать: этот код ill-formed. АШ>>Почему, этот код well-wormed, но делает не то, что от него ждут.
E>Полистал стандарт и заинтересовался... Давайте попробуем разобраться. E>
14.6/1 Three kinds of names can be used within a template definition:
E>- The name of the template itself, and names declared within the template itself.
E>- Names dependent on a template-parameter (14.6.2).
E>- Names from scopes which are visible within the template definition.
E>Считаете ли Вы, что abrakadabra относится к одной из трех перечисленных групп?
По поводу компиляторов...
Вообще, с проблемой двоякой трактовки описания RegistratorClass reg_entry(MyClass());
мы столкнулись, когда переносили код с VS.2002 на VS.2003
В VS.2002 код компилировался и исполняся так, как и было задумано его создателями, а именно как создание объекта. А вот в VS.2003 уже как прототип функции (что, конечно, отвечает стандарту).
Обидно, что компилятор даже не выдал warning-а в режиме /W4.
Было бы полезнее...