Re[9]: Cpp-Object
От: Sergey Россия  
Дата: 19.05.06 08:18
Оценка: +1
> S>А если класс библиотечный? А если мне надо его в одном месте передавать по ссылке, в другом — по значению?
>
> Обычно.
>
> P.S.
> У вас есть предложение как красивее решить ?

Я вообще не понимаю, для чего вы все это затеваете. Умному оно не надо, а дураку все равно не поможет.
Posted via RSDN NNTP Server 2.0
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[10]: Cpp-Object
От: _nn_  
Дата: 19.05.06 08:21
Оценка:
Здравствуйте, Sergey, Вы писали:


>> S>А если класс библиотечный? А если мне надо его в одном месте передавать по ссылке, в другом — по значению?

>>
>> Обычно.
>>
>> P.S.
>> У вас есть предложение как красивее решить ?

S>Я вообще не понимаю, для чего вы все это затеваете. Умному оно не надо, а дураку все равно не поможет.

Исправить С++

P.S.
Иногда нужна фабрика, которая позволит создать любой тип, а не некоторые типы
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: Cpp-Object
От: Константин Л.  
Дата: 19.05.06 08:47
Оценка:
Здравствуйте, _nn_, Вы писали:

Имхо, чем больше типов, тем сложнее в них разобраться. Этот проект имеет право на жизнь в коком-то совсем кастомном фреймворке, но не повсеместно. Самый большой нерулез — необходимость насделоваться от val_obj, object
Re[2]: Cpp-Object
От: _nn_  
Дата: 19.05.06 08:52
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>Здравствуйте, _nn_, Вы писали:


КЛ>Имхо, чем больше типов, тем сложнее в них разобраться. Этот проект имеет право на жизнь в коком-то совсем кастомном фреймворке, но не повсеместно. Самый большой нерулез — необходимость насделоваться от val_obj, object

Это из-за кривого дизайна С++
Можно в макрос обернуть, тогда наследование автоматически будет.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[11]: Cpp-Object
От: Sergey Россия  
Дата: 19.05.06 09:19
Оценка:
> S>Я вообще не понимаю, для чего вы все это затеваете. Умному оно не надо, а дураку все равно не поможет.
> Исправить С++
>
> P.S.
> Иногда нужна фабрика, которая позволит создать любой тип, а не некоторые типы

Создавать вообще любой тип без поддержки языка все равно не получится. Создавать "почти любой" тип требуется крайне редко, а поддержка такой функциональности вряд ли будет бесплатной. Как минимум — приведет к увеличению времени компиляции-линковки, возможно существенному. Ну и ручками про каждый тип все равно писать что-нибудь придется. Вряд ли это будет сильно востребовано.
Posted via RSDN NNTP Server 2.0
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[12]: Cpp-Object
От: _nn_  
Дата: 19.05.06 09:23
Оценка:
Здравствуйте, Sergey, Вы писали:

>> S>Я вообще не понимаю, для чего вы все это затеваете. Умному оно не надо, а дураку все равно не поможет.

>> Исправить С++
>>
>> P.S.
>> Иногда нужна фабрика, которая позволит создать любой тип, а не некоторые типы

S>Создавать вообще любой тип без поддержки языка все равно не получится.

Увы это так
S>Создавать "почти любой" тип требуется крайне редко, а поддержка такой функциональности вряд ли будет бесплатной. Как минимум — приведет к увеличению времени компиляции-линковки, возможно существенному. Ну и ручками про каждый тип все равно писать что-нибудь придется. Вряд ли это будет сильно востребовано.

Но можно все классы пронаследовать от object, в каждый класс добавить идентификатор и можно будет писать:
smart_ptr<object> create_object(id_type id);
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[13]: Cpp-Object
От: Garrrrr  
Дата: 19.05.06 09:28
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Но можно все классы пронаследовать от object, в каждый класс добавить идентификатор и можно будет писать:

__>
__>smart_ptr<object> create_object(id_type id);
__>

А в фабрике большой-большой свитч по id? Я так же могу сделать шаблонную фабрику и специализировать ее под все поддерживаемые типы.
Re[3]: Cpp-Object
От: Lorenzo_LAMAS  
Дата: 19.05.06 09:33
Оценка:
__>Это из-за кривого дизайна С++

Поясните, пожалуйста.
Of course, the code must be complete enough to compile and link.
Re[7]: Cpp-Object
От: Garrrrr  
Дата: 19.05.06 09:34
Оценка:
Здравствуйте, _nn_, Вы писали:

G>>Но еще лучще — ввести концепт на то, что параметром функции является только класс с определенным методом size()

__>Ну ну, попробуйте реализовать универсальный has_method
Гм... концепт — это не enable_if, а то, что дает вменяемую и быстро понимаемую лшибку компиляции. Учите матчасть, раздел буста о концептах. Весьма там здравые идеи, хотя реализация как обычно подкачала
G>>А если серьезно — ни к чему засорять язык ненужными надстройками, мощь плюсов — в том числе и в поддержке интегральных типов. А вот если вы строите концептуально красивую систему — ну не будет у вас там нужды оперировать интегральными типами, классики в основном бегать будут...
__>А передачу типов как осуществлять ?
__>В конечном итоге где-то есть интеракция с API который написан на С
Ни разу не видно как предполагаемый фреймворк облегчит взаимодействие с C-кодом. А вот как утяжелит — оч. даже видно.
Re[14]: Cpp-Object
От: _nn_  
Дата: 19.05.06 09:34
Оценка:
Здравствуйте, Garrrrr, Вы писали:

G>Здравствуйте, _nn_, Вы писали:


__>>Но можно все классы пронаследовать от object, в каждый класс добавить идентификатор и можно будет писать:

__>>
__>>smart_ptr<object> create_object(id_type id);
__>>

G>А в фабрике большой-большой свитч по id? Я так же могу сделать шаблонную фабрику и специализировать ее под все поддерживаемые типы.

switch, как вы могли произнести это слово ?

Фабрика с саморегистрацией ! http://rsdn.ru/forum/?mid=1788774
Автор: remark
Дата: 17.03.06
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[4]: Cpp-Object
От: _nn_  
Дата: 19.05.06 09:38
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

__>>Это из-за кривого дизайна С++


L_L>Поясните, пожалуйста.


Например я хочу функцию, которая будет принимать любой тип.
На данный момент мне надо писать шаблонную функцию, а так можно заменить на нешаблонную.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[5]: Cpp-Object
От: Lorenzo_LAMAS  
Дата: 19.05.06 09:55
Оценка: +4
__>Например я хочу функцию, которая будет принимать любой тип.
__>На данный момент мне надо писать шаблонную функцию, а так можно заменить на нешаблонную.

Может тогда нужен другой язык, а не С++ ?
Of course, the code must be complete enough to compile and link.
Re[6]: Cpp-Object
От: _nn_  
Дата: 19.05.06 09:57
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

__>>Например я хочу функцию, которая будет принимать любой тип.

__>>На данный момент мне надо писать шаблонную функцию, а так можно заменить на нешаблонную.

L_L>Может тогда нужен другой язык, а не С++ ?

Нужен.
Но что делать если надо на С++
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[15]: Cpp-Object
От: Sergey Россия  
Дата: 19.05.06 10:30
Оценка:
> __>>Но можно все классы пронаследовать от object, в каждый класс добавить идентификатор и можно будет писать:
> __>>
> __>>smart_ptr<object> create_object(id_type id);
> __>>

> G>А в фабрике большой-большой свитч по id? Я так же могу сделать шаблонную фабрику и специализировать ее под все поддерживаемые типы.
>
> switch, как вы могли произнести это слово ?
>
> Фабрика с саморегистрацией ! http://rsdn.ru/forum/?mid=1788774
Автор: remark
Дата: 17.03.06


Вы хорошо себе представляете, во что это выльется, если регистрировать абсолютно все типы? Лично мне такой хоккей не нужен — разве что в каких-нибудь мелких проектах, где всего сотня-другая типов используется.
Posted via RSDN NNTP Server 2.0
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[13]: Cpp-Object
От: Sergey Россия  
Дата: 19.05.06 10:35
Оценка:
> S>Создавать вообще любой тип без поддержки языка все равно не получится.
> Увы это так
> S>Создавать "почти любой" тип требуется крайне редко, а поддержка такой функциональности вряд ли будет бесплатной. Как минимум — приведет к увеличению времени компиляции-линковки, возможно существенному. Ну и ручками про каждый тип все равно писать что-нибудь придется. Вряд ли это будет сильно востребовано.
>
> Но можно все классы пронаследовать от object, в каждый класс добавить идентификатор и можно будет писать:
>
> smart_ptr<object> create_object(id_type id);
>


Кто будет следить за уникальностью идентификаторов? Что будете делать в случае шаблонов? Что будете делать с Dll'ками — экспортировать/импортировать функции создания объектов? Все три тыщщи штук? А что делать с объектами без конструкторов по умолчанию?
Posted via RSDN NNTP Server 2.0
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re: Cpp-Object
От: srggal Украина  
Дата: 19.05.06 10:44
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Одна из проблем C++ в том, что существуют так называемые примитивные типы.

__>Стандарное решением было ввести специализацию для примитивных типов и для остальных типов.

__>Для решения этих и других проблем был создан проект C++ Object.


__>Основные цели проекта:

__>
  • Создание иерархие типов. (например int32 <- value_type <- object).
    __>
  • Встроенная сериализация каждого типа.
    __>Дальнейшие цели будут добавленны мере развития библиотеки.

    Быть может managed C++ спасёт Отца русской демократии ?
    (просто предположение)
    ... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
  • Re: Cpp-Object
    От: whaler Россия  
    Дата: 19.05.06 10:58
    Оценка:
    Переходите на Java. Там все Ваши "проблемы" уже решены, есть там и всеобщее наследование от Object. Вы видите в описанных примерах ограничения для работы — я напротив ещё одну степень свобода. Вопрос — с какой стороны смотреть и на сколько глубоко.
    Re[7]: Cpp-Object
    От: Аноним  
    Дата: 19.05.06 10:59
    Оценка: :)
    Здравствуйте, _nn_, Вы писали:

    __>Здравствуйте, Lorenzo_LAMAS, Вы писали:


    __>>>Например я хочу функцию, которая будет принимать любой тип.

    __>>>На данный момент мне надо писать шаблонную функцию, а так можно заменить на нешаблонную.

    L_L>>Может тогда нужен другой язык, а не С++ ?

    __>Нужен.
    __>Но что делать если надо на С++

    Уволится и поступить на работу в контору, где разработки ведутся на Java
    Re[2]: Cpp-Object
    От: _nn_  
    Дата: 19.05.06 11:39
    Оценка:
    Здравствуйте, srggal, Вы писали:

    S>Здравствуйте, _nn_, Вы писали:


    __>>Одна из проблем C++ в том, что существуют так называемые примитивные типы.

    __>>Стандарное решением было ввести специализацию для примитивных типов и для остальных типов.

    __>>Для решения этих и других проблем был создан проект C++ Object.


    __>>Основные цели проекта:

    __>>
  • Создание иерархие типов. (например int32 <- value_type <- object).
    __>>
  • Встроенная сериализация каждого типа.
    __>>Дальнейшие цели будут добавленны мере развития библиотеки.

    S>Быть может managed C++ спасёт Отца русской демократии ?

    S>(просто предположение)

    Тогда уже C#
  • http://rsdn.nemerleweb.com
    http://nemerleweb.com
    Re[14]: Cpp-Object
    От: _nn_  
    Дата: 19.05.06 11:44
    Оценка:
    Здравствуйте, Sergey, Вы писали:


    >> S>Создавать вообще любой тип без поддержки языка все равно не получится.

    >> Увы это так
    >> S>Создавать "почти любой" тип требуется крайне редко, а поддержка такой функциональности вряд ли будет бесплатной. Как минимум — приведет к увеличению времени компиляции-линковки, возможно существенному. Ну и ручками про каждый тип все равно писать что-нибудь придется. Вряд ли это будет сильно востребовано.
    >>
    >> Но можно все классы пронаследовать от object, в каждый класс добавить идентификатор и можно будет писать:
    >>
    >> smart_ptr<object> create_object(id_type id);
    >>


    S>Кто будет следить за уникальностью идентификаторов? Что будете делать в случае шаблонов? Что будете делать с Dll'ками — экспортировать/импортировать функции создания объектов? Все три тыщщи штук?

    Если будут одинаковые иднетификаторы программа просто не запустится например

    S> А что делать с объектами без конструкторов по умолчанию?

    boost.in_place_factory

    Решение не настроенно на универсальность, в рамках С++, видимо, полной универсальности не выйдет
    http://rsdn.nemerleweb.com
    http://nemerleweb.com
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.