![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
тема возникла в результате обсуждения этой : http://forum.vingrad.ru/forum/topic-261305...tml#st_0_view_0
компилирует ли VS
Это сообщение отредактировал(а) mes - 29.5.2009, 21:32 |
|||
|
||||
zim22 |
|
||||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
error C2664: 'f2' : cannot convert parameter 1 from 'A (__cdecl *)(void)' to 'A &' всё остальное компилируется. если заменить на
то это тоже компилируется Это сообщение отредактировал(а) zim22 - 29.5.2009, 21:27 |
||||
|
|||||
azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
Добавлено @ 21:29 mes Учитывая то, что вероятно должно было быть написано так
обе строки компилируются товарищи, кто нибудь скиньте ссылку на разблокированнный стандарт..я замучаюсь вручную набирать (там же копирование заблокировано) ![]() Это сообщение отредактировал(а) azesmcar - 29.5.2009, 21:31 |
||||
|
|||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
да, там опечатка ![]() |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
такой пойдет ? http://ftp.csci.csusb.edu/dick/c++std/cd2/ Добавлено через 2 минуты и 21 секунду ну раз все компилирует, может и такое проглотит :
Это сообщение отредактировал(а) mes - 29.5.2009, 21:56 |
|||
|
||||
azesmcar |
|
||||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
и такой эксперимент
компилируется, запускается.. из чего вывод, живет он дольше чем ему разрешает стандарт. Добавлено через 1 минуту и 39 секунд
Да ![]() ![]() Да ![]() |
||||||
|
|||||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
и такой код не является переносимым... Добавлено @ 22:08 к тому же неизвестно, студия просто не контролирует передачу временного объекта, или все таки удлиняет его жизнь, (надеюсь что второе) но все равно такой код потeнциально опасен. Это сообщение отредактировал(а) mes - 29.5.2009, 22:09 |
|||
|
||||
azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
Абсолютно, но к сожалению непереносимым код делает далеко не только несоответствие стандарту. Помнится в книге More Exceptional C++ Саттер писал о конструкции C++ целиком и полностью соответствующей стандарту, но компиляторов которые этот код проглотили оказалось меньшинство. Селяви ![]() Добавлено @ 22:12 И в конце концов не будем забывать про
![]() Добавлено через 4 минуты и 25 секунд mes,
А это мы сейчас проверим. Это сообщение отредактировал(а) azesmcar - 29.5.2009, 22:13 |
||||
|
|||||
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
да.. переносимость тут не при чем. Я имел ввиду под этим высказыванием немножко другое... Что то типа этого : VS даже на таких элементарных примерах, позволяет писать ill-formed код, приучая к неправильным действиям. т.е смысловой является последняя часть высказывания :
|
||||
|
|||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
деструктор вызывается после завершения функции f2. Он удлиняет его жизнь. |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
azesmcar |
|
||||||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
Таких примеров полно
вот как описан класс exception в стандарте. И все же
работает. Потому новичкам по моему лучше советовать писать на gcc. Добавлено через 1 минуту и 21 секунду Даже если всегда - это не смягчает вину ![]() Добавлено через 9 минут и 36 секунд А это вообще интересно
|
||||||||
|
|||||||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
вроде как передача манипулятора c параметрами в поток выглядит именно как
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
GoldFinch, сорри, не уловил мысли, это вопрос или высказывание для продолжения дискуссии ?
Добавлено через 2 минуты и 33 секунды как я понял, то студия для Т& старается обеспечивать требования уставляемые стандартом для Т const& по отношению к временному объекту. |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
mes
Ну с указателями он вроде себя правильно ведет..а с ссылками похоже на то. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |