Re[3]: Непонятки с шаблоном
От: Lorenzo_LAMAS  
Дата: 21.10.04 09:25
Оценка:
B>Это заблуждение. Данный код корректен — его прекрасно компилят Comeau, VC7.1, VC6

Ага. А что такое system, что без объявления используется? Он в <list> или в <string> по стандарту должен содержаться?
Of course, the code must be complete enough to compile and link.
Re[4]: Непонятки с шаблоном
От: Инженер  
Дата: 21.10.04 09:34
Оценка:
Моя ошибка. Надо было удалить при создании темы.
Это какая-то фишка gcc компилятора Dev-C++ среды. Кажется она не дает консольному окну автоматически закрываться после выполнения. Просто забудь про эту строку.
Re[5]: Непонятки с шаблоном
От: Lorenzo_LAMAS  
Дата: 21.10.04 09:44
Оценка:
Здравствуйте, Инженер, Вы писали:

И>Моя ошибка. Надо было удалить при создании темы.

И>Это какая-то фишка gcc компилятора Dev-C++ среды. Кажется она не дает консольному окну автоматически закрываться после выполнения. Просто забудь про эту строку.

Так мой не DEV-C++ g++ 3.2.3 тоже не стал ругаться, потому как кто-то из заголовков list или string содержит нужное включение
Of course, the code must be complete enough to compile and link.
Re[4]: Непонятки с шаблоном
От: Bell Россия  
Дата: 21.10.04 09:47
Оценка: +1
Здравствуйте, Lorenzo_LAMAS, Вы писали:

B>>Это заблуждение. Данный код корректен — его прекрасно компилят Comeau, VC7.1, VC6


L_L>Ага. А что такое system, что без объявления используется? Он в <list> или в <string> по стандарту должен содержаться?


Формально ты конечно прав, и мое утверждение про коррекетость кода неверно. Но вернемся к нашей проблеме: было ли в исходном вопросе хоть слово, связанное с этими самыми system и printf? Вызвало ли это ошибку при использовании самых популярных компиляторов? ИМХО данное обстоятельство в контексте заданного вопроса несущественно, и не заслуживает такого повышенного внимания. Тоже самое относится и к abracadabra.

ИМХО это называется "делать из мухи слона".
Любите книгу — источник знаний (с) М.Горький
Re[5]: Непонятки с шаблоном
От: Lorenzo_LAMAS  
Дата: 21.10.04 09:49
Оценка:
B>ИМХО это называется "делать из мухи слона".

Да, в общем-то. Просто elcste в свойственной ему манере очень кратко ответил (не компилируется) и в результате пришлось потом ему объяснять
Of course, the code must be complete enough to compile and link.
Re[9]: Непонятки с шаблоном
От: Lorenzo_LAMAS  
Дата: 21.10.04 09:59
Оценка:
B>Мне кажется, что Dinkum Exam использует что-то другое. Вот его сообщение об ошибке:

Можно ссылку на него?
Of course, the code must be complete enough to compile and link.
Re[10]: Непонятки с шаблоном
От: Bell Россия  
Дата: 21.10.04 10:04
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:


B>>Мне кажется, что Dinkum Exam использует что-то другое. Вот его сообщение об ошибке:


L_L>Можно ссылку на него?


Вот: http://dinkumware.com/exam/dinkumExam.aspx
Любите книгу — источник знаний (с) М.Горький
Re[9]: Непонятки с шаблоном
От: elcste  
Дата: 21.10.04 10:08
Оценка:
Здравствуйте, Анатолий Широков, Вы писали:

АШ>Пользуясь случаем и Вы мне тогда ответьте:

АШ>А я сразу же в объявление скобки добавил. Понятно ведь, о чем 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.
Было бы полезнее...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.