Re: Вопрос про конструкторы
От: Videoman Россия https://hts.tv/
Дата: 08.08.19 08:24
Оценка:
Вроде нашел прототип решения:
struct A
    {
        operator const char&() const { return ch; }
        operator const size_t&() const { return sz; }
        operator const std::vector<std::string>&() const { return vec; }

        char ch;
        size_t sz;
        std::vector<std::string> vec;
    };

    struct B
    {
        B(const A& a) : v(a) {}

        std::vector<std::string> v;
    };

    // Где-то ниже
    A a;
    std::vector<string_t> v1 = a;
    std::vector<string_t> v2(a);
    B b(a);

На сомом деле такая штука работает, как ни странно. Т.к. у меня все-равно возвращается прокси шаблонный объект, то на практике типы ch, sz и vec сольются в один.
Остался вопрос к спецам, это норм, или опять глюки VS2017 ?

P.S. не , поспешил. Все-таки осталась задача как вернуть константную ссылку на временный объект. Прокси при своем создании еще не знает тип который будут запрашивать
Отредактировано 08.08.2019 8:32 Videoman . Предыдущая версия . Еще …
Отредактировано 08.08.2019 8:30 Videoman . Предыдущая версия .
Отредактировано 08.08.2019 8:26 Videoman . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.