Оператор приведения
От: Videoman Россия https://hts.tv/
Дата: 04.07.19 10:30
Оценка:
Есть некий класс, условно Container, который хранит в себе разные другие типы, наподобие variant.
Что хотелось бы получить синтаксически:
const Container cont1 = double()
const Container cont2 = int();
const Container cont3 = string();
const Container cont4 = SomeClass();
// и т.д.

const double v1 = cont1;
const int v2 = cont2;
const string v3 = cont3;
const SomeClass v4 = cont4;
// и т.д.

//...

Казалось бы, задачу можно решить определив оператор приведения типа у класс Container, но вышеописанные выражения являются вызовами конструкторов инициализации, а следовательно у классов со сложными конструкторами (типа string) сначала срабатывают перегрузки конструкторов, а не операторов приведения типа. Следовательно нужная схема не работает. Как-нибудь просто можно решить задачу в рамках современного С++ ?
Отредактировано 04.07.2019 10:31 Videoman . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.