![]() |
|
|
![]()
|
|
| vaddsm |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 30.6.2007 Репутация: нет Всего: нет |
Подскажите, пожалуйста есть ли возможность сделать на BCB 6.0 подобный код компилируемым:
Или данный компилятор не поддерживает стандарт языка в полной мере? |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 18 Всего: 154 |
частичная специализация шаблонов применяется в STL, следовательно BCB6 это умеет
|
|||
|
||||
| vaddsm |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 30.6.2007 Репутация: нет Всего: нет |
Спасибо, что присоединился к данному треду, думал тебя выуживать из общего раздела по c++ .) Касательно проблемы. Совершенно очевидно что -- нет. Предположительно она должна поддерживаться, но видимо не в полной мере. Компилятор не верно парсирует функциональные типы. Приведенный мною код валиден в VC9.0 , Comeau и Mingw но не в Borland (.
|
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 18 Всего: 154 |
ну, то что bcb6 не поддерживает стандарт в полной мере - известный факт
какой workaround здесь поможет я не знаю |
|||
|
||||
| vaddsm |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 30.6.2007 Репутация: нет Всего: нет |
Еще хочу дополнить пример вот таким фейлом:
+ VC9.0 + Comeau - Mingw - Borland Добавлено через 7 минут и 21 секунду Прошу, взглянуть опытным взглядом и поставить вердикт относительно валидности приведенного кода. Буду очень рад совместимым с другими компиляторами предложениям по изменению кода. |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
меня всегда умилял тот факт, что сравнивают CB6 и VC9. |
|||
|
||||
| vaddsm |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 30.6.2007 Репутация: нет Всего: нет |
))) Никто ничего не сравнивает, мне нужно добиться совместимости кода и только. Прошу не разжигать расовой ненависти в этом топике.
|
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
vaddsm
С точки зрения С++ - нормальный код, с моей точки зрения - выглядет хреново, но это не мешает ему быть правильным. MinGW это откомпилирует по самые помидоры, наверное он на __stdcall ругается. насчет борланда - не знаю, а в чем конкретно проблема и где выдается ошибка? Добавлено через 3 минуты и 18 секунд
речь конкретно об этом куске кода Добавлено через 7 минут и 7 секунд Проверьте этот код.
Это сообщение отредактировал(а) azesmcar - 26.5.2009, 09:51 |
||||
|
|||||
| vaddsm |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 30.6.2007 Репутация: нет Всего: нет |
2 azesmcar.
Ваш пример с небольшой коррекцией
Естественно компилируется всюду. Однако, весьма странно, мой шаблон класса some действительно не компилировался в MinGW по причине указания в шаблоне соглашения __stdcall. Сразу вопрос: почему? И как мне указать соглашение о вызове в шаблоне, для данного компилятора? Добавлено через 6 минут и 58 секунд |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
Вообще почему бы не писать так?
|
|||
|
||||
| vaddsm |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 30.6.2007 Репутация: нет Всего: нет |
Потому как нужен не тип, а адрес метода. Вот, что интересно, в борланде радостно компилируется такой вариант:
А на MinGW, это Segmentation fault. Добавлено через 8 минут и 51 секунду Подитожу:
|
||||
|
|||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
||||
|
||||
| vaddsm |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 30.6.2007 Репутация: нет Всего: нет |
Для борланда думаю сделать так:
Да это не частичная специализация, прошу прощение за то что смутил, вот полный вариант с нистид классом где присутствует частичная специализация:
Borland + MinGW -
MinGW + При этом частичная специализация nested проходит в MinGW для всех типов соглашений (не только __cdecl), что весьма странно. Это сообщение отредактировал(а) vaddsm - 26.5.2009, 21:54 |
||||||
|
|||||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
||||
|
||||
| vaddsm |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 30.6.2007 Репутация: нет Всего: нет |
В препроцессорах опечаточка была, подправил.
|
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |