Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.20;
Скачать: CL | DM;

Вниз

А никто не пробовал писать свой "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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.029 c
1-1086743848
Word2000
2004-06-09 05:17
2004.06.20
Работа с таблицей в Word


14-1086281748
uny
2004-06-03 20:55
2004.06.20
Телефон через спутник


14-1086295869
Владислав
2004-06-04 00:51
2004.06.20
Сдача проекта...


9-1077830655
spogi
2004-02-27 00:24
2004.06.20
sozdaniie i proverka


14-1086234959
try
2004-06-03 07:55
2004.06.20
Shareware