Преобразование аргумента шаблона в шаблон шаблонаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Преобразование аргумента шаблона в шаблон шаблона

Сообщение Anonymous »

У меня есть следующий упрощенный код. Вопрос в том, есть ли способ распознать параметр A::v_ и значение как тип контейнера и вызвать правильную функцию преобразования? Или надо переделку делать? В случае переделки есть ли у вас предложения, как наиболее эффективно справиться с такой проблемой?

Код: Выделить всё

template 
B convert(A a);

template 
B convert(CA a);

template 
CB convert(A a);

template 
CB convert(CA a);

template 
struct A
{
T v_;

void assign(const A& value)
{
// How to recognize if "value" and "this->v_" is an container
// and call right "convert" function
// if constexpr (???)
//    v_ = convertv_ container, this->v_ element>(value);
// else if constexpr (???)
//    v_ = convertv_ container, this->v_ element>(value);
// else if constexpr (???)
//    v_ = convertv_ type>(value);
// else
//    v_ = convertv_ type>(value);
}
};

int main(int argc, const char *argv[])
{
A i;
A vi;

vi.assign(i);
}
Я пытался найти преобразование аргументов шаблона в шаблон-шаблон, но безуспешно.

Подробнее здесь: https://stackoverflow.com/questions/792 ... e-template
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»