Сообщение Re: Вопрос про конструкторы от 08.08.2019 8:24
Изменено 08.08.2019 8:26 Videoman
Re: Вопрос про конструкторы
Вроде нашел прототип решения:
На сомом деле такая штука работает, как ни странно. Т.к. у меня все-равно возвращается прокси шаблонный объект, то на практике типы ch, sz и vec сольются в один.
Остался вопрос к спецам, это норм, или опять глюки VS2017 ?
struct A
{
operator const char&() const { return ch; }
operator const size_t&() const { return sz; }
operator const std::vector<std::string>&() const { return str; }
char ch;
size_t sz;
std::vector<std::string> str;
};
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 ?
Re: Вопрос про конструкторы
Вроде нашел прототип решения:
На сомом деле такая штука работает, как ни странно. Т.к. у меня все-равно возвращается прокси шаблонный объект, то на практике типы ch, sz и vec сольются в один.
Остался вопрос к спецам, это норм, или опять глюки VS2017 ?
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 ?