Форум: "Основная";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
ВнизА никто не пробовал писать свой "Variant" ? Найти похожие ветки
← →
афвуд © (2004-06-07 16:55) [0]Просто столкнулся я кажись с этим. Вот и хочется узнать где лежат грабли на этом пути и т.д.
На вопрос "А чем стандартный не устраивает?" сразу отвечу - парой глюков и хочу уйти от VCL(пишу на C++Builder).
← →
Digitman © (2004-06-07 16:58) [1]
> парой глюков
эт каких же ?
> хочу уйти от VCL
уйти можно откуда угодно и куда угодно. но при этом ты лишаешься мощной поддержи компилятора в части работы со стандартными вариантными типами ... будешь "ручками" аллокировать/реаллокировать/деаллокировать данные своих типов,ь чеша потом репу, где же потерялась память ..
← →
Anatoly Podgoretsky © (2004-06-07 16:59) [2]Ты бы не задавал этот вопрос если бы мог, Борланду за много лет не удалось избежать проблем с этим типом, при том у них поддержка на уровне complirer magic
← →
афвуд © (2004-06-07 17:09) [3]2 Anatoly Podgoretsky:
Мне придётся его писать. Поэтому спрашиваю.
2 Digitman:
Ну не глюки..
Например если в C++Buildere Variant"у присваиваешь какой-нить "void *" то эта гадина превращает его в bool и получаем потерю информации. Приходится сначала void * -> int а потом int уже -> Variant . Неудобно.
Да и с датами у него один есть плохой закавыка. Но это уже отдельная проблема.
> но при этом ты лишаешься мощной поддержи компилятора в части
> работы со стандартными вариантными типами ... будешь "ручками"
> аллокировать/реаллокировать/деаллокировать данные своих
> типов,ь чеша потом репу, где же потерялась память ..
:) Этого я не боюсь.
← →
афвуд © (2004-06-07 17:11) [4]Да и говорю: от VCL очень хочется уйти. Возможен в будущем уход от Виндовой платформы.
← →
Anatoly Podgoretsky © (2004-06-07 17:35) [5]Твоя мечта уже исполнена, это не VCL а RTL
Вторая мечта также исполнена, варианты работают и в Линуксе
← →
Григорьев Антон (2004-06-07 17:43) [6]А от API тоже хочется уйти? А то там есть VARIANTARG, VariantClear и т.п.
← →
Тимохов © (2004-06-07 17:50) [7]
> Григорьев Антон (07.06.04 17:43) [6]
он же сказал - может и от виндовой платформы тоже хочется уйти, о каком api вы говорите:)))
← →
Gero © (2004-06-07 18:01) [8]Да и вобще лучше от компьютеров уйти. Злые они.
← →
афвуд © (2004-06-07 19:23) [9]2 Anatoly Podgoretsky:
У меня другие мечты. А это - работа.
Ну похоже никто помочь не хочет(or не может). Лишь бы остроумием блеснуть :) .
Ну ладна. Пойду в однюху бороться с несчатьями жизни :) .
> Ты бы не задавал этот вопрос если бы мог, Борланду за много
> лет не удалось избежать проблем с этим типом, при том у
> них поддержка на уровне complirer magic
Да.. не хочу я переписывать ВЕСЬ variant. Просто у меня Уже есть скриптогонялка. Там всё работает на Variant"e . Выявились неудобства некоторые вышеописанные. Надо что-то замутить по этому поводу. Вот и делаю. По настоящему мне нужен Variant без OLE, Без всяких фичей не нужных(может даже без поддержки массивов), а чтобы Тип в тип преобразовать умела и складывать то, что складывает и умножать там. C++ это позволяет своими operator+ и т.д.
← →
Тимохов © (2004-06-07 19:31) [10]
> афвуд © (07.06.04 19:23) [9]
вроде и в дельфи (сам пока не делал) начиная с какой-то версии (в 6 есть) есть TCustomVariantType.
посмотри - может это то, что нужнож
← →
афвуд © (2004-06-07 19:49) [11]Смотрю(он и в Билдере есть). Вникаю. Но кажись не подойдёт. Чисто паскалёвая фича. А у нас Си. Хотя спасибо за совет.
> Вторая мечта также исполнена, варианты работают и в Линуксе
эээ. Как? Это тот Variant, который в CLX? Ну так я подозреваю у него те же недостатки.
← →
Подкрадуха © (2004-06-07 22:56) [12]TVarRec, вроде...
Чего там переписывать?
А, вообще-то 80 байт под переменную - это многовато - тормозить будет, imho.
← →
Mim1 © (2004-06-08 01:55) [13]
> эээ. Как? Это тот Variant, который в CLX? Ну так я подозреваю
> у него те же недостатки.
Вам же свазали, variant это не vcl а rtl. Соответственно variant это и не clx а rtl. :)
← →
KSergey © (2004-06-08 07:09) [14]чтобы Тип в тип преобразовать умела и складывать то, что складывает и умножать там. C++ это позволяет своими operator+ и т.д.
А _variant_t - не устраивает? Я правда не знаю, реалиован ли он в билдере, в MS VC++ - есть, работает.
Не знаю, перекрыты ли там сложения/умножения, но преобразования - точно.
← →
афвуд © (2004-06-08 13:39) [15]
> А, вообще-то 80 байт под переменную - это многовато - тормозить
> будет, imho.
Обычно у меня такое правило действует - чтобы ускорить прогу нужно затратить больше памяти. ТАк что наверно ты не очень прав. Ведь есть такие стили программинга где за счёт более высокой затраты памяти достигается офигенная скорость.
> А _variant_t - не устраивает? Я правда не знаю, реалиован
> ли он в билдере, в MS VC++ - есть, работает.
Нет его в Билдере.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.03 c