![]() |
|
Модераторы: 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
Ну с указателями он вроде себя правильно ведет..а с ссылками похоже на то. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
редактировал, в этот момент интернет отключили
хотел дописать а вот с ссылками похоже на то. A& p = f1(); в студии ведет себя также как const A& p = f1(); только неконстантный.
еще бы подсчет ссылок туда |
||||
|
|||||
![]()
|
| Правила форума "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. |