Этот вопрос закрыт для ответов, так как повторяет вопрос Как раскрыть parameter pack для передачи типов в шаблонную функцию?
@avion123678

Возращение из функции тип template?

Почему такой код не компилируются?

#include <iostream>
#include <string>

template<class T>
T func(T x, unsigned int y) {
    if (std::is_same<T, std::string>::value) {
       std::string str = x;
        for (int i = 0; i < y; ++i)
            str += x;
        return str;
    } else {
        return (x * y);
    }
}

int main() {
    std::string str = "lol";
    func(2, 2);
    return 0;
}


Ошибка:
error: no viable conversion from 'int' to 'std::string' (aka 'basic_string, allocator >')
std::string str = x;
  • Вопрос задан
  • 166 просмотров
Ответы на вопрос 1
Потому что тут std::string str = x у тебя происходит присвоение строке целого числа.
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы