powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Пятничные наборы параметров
2 сообщений из 2, страница 1 из 1
Пятничные наборы параметров
    #39839047
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Продолжаем тему универсализации.

Как вы храните параметры разных типов?

Я тут предпринял пару попыток сделать на шаблонах хранилища для разношёрстных параметров, с переменным узбеком.
Type erasure, основанное на шаблонах функций, имеет встроенный логический баг: как только мы вышли из шаблонного метода, мы навсегда теряем информацию о типе. Поэтому, принять значения довольно просто, но вот извлечь их туда, куда нужно, узнав точный тип - уже проблема.

Особенно интересно: работа с БД. К примеру, я использую OLEDB, значения из него получаются в виде _variant_t, что даёт универсальность, как бы. Но вот в коде возникают проблемы, например, если мне хочется иметь быстрый доступ к этим данным и не писать много кода при этом. Проблема немного решается, если использовать операторы каста, которые проверяют тип варианта и возвращают нужную переменную. Но вот со строкой возникают проблемы, описанные с соседней теме про Cast. Cook book.
Всё ещё усугубляется контейнерами. Параметры надо где-то хранить и иногда конвейерно их обрабатывать(имеется ввиду 1 record, в том-то и проблема). Если хранить в shared_ptr, то потом по коду их оттуда надо будет длинно извлекать, через [id].get().second, ибо контейнер это map, и ещё надо учитывать то, что по id ничего не нашлось в коллекции. А некоторые часто используемые параметры, хотелось бы вообще иметь в прямом доступе, без shared_ptr<>, но как это сделать, чтобы и map положить и переменную в классе использовать. Еретическое shared_ptr<>(&some), конечно, работает, но потом никак не оторвать указатель от переменной.
...
Рейтинг: 0 / 0
Пятничные наборы параметров
    #39839054
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbОсобенно интересно: работа с БД. К примеру, я использую OLEDB, значения из него получаются в виде _variant_t,прикладники испрльзуют либо EAV в бд. Либо ОРМ где на выходе типизированная коллекция контейнер, либо любой DAL где
variant.AsNumber.....asString.
То есть жесткая типизация и минимум неоднозначности.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Пятничные наборы параметров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]