А нормально касты класса к типам делать через шаблоны?

yolki

типа вот так:
есть VarClass (некий variant)
и чтобы его привести к типу например std::string у него есть метод "to":

{
VarClass *c;
std::string s;
...
...
s= c->to<std::string>
...
}

:o

Maurog

нормально
а что смущает? отсутствие визитора? :grin:

Serab

если уж шаблоны, то лучше сделать этот to<> глобальной функцией и специализировать.

Maurog

если уж шаблоны, то лучше сделать этот to<> глобальной функцией и специализировать.
да ну
во-первых, только вариант знает какие типы выдавать наружу может. если вы в глобальной функции хотите вариант обойти визитором, то это напряжно будет сделать (еще тип визитора надо достать)
во-вторых, специализация шаблонных функций - зло. используйте перегрузку

Serab

ну да, я и имел в виду перегрузку :)

rosali

уж лучше operator string, не?

s = *с;

yolki

ну не я разработчик, если чё.
так выглядит pq++ - c++ интерфейсы к постгресу
там правда сделано ещё веселее:
Field.to<T>(T&value);

Serab

не совсем понял, operator string лучше, чем все, что было? наоборот, или вообще сарказм? :grin:
Оставить комментарий
Имя или ник:
Комментарий: