Как передать шаблонную фиксированную строку в перегрузку конструктора другого класса? ⇐ C++
-
Anonymous
Как передать шаблонную фиксированную строку в перегрузку конструктора другого класса?
У меня возникают проблемы при попытке передать уже инициализированную строку символов, которая буквально неправильно воспринимает перегрузку:
#include #include #include #include шаблон класс А { символ m_m[N]; публика: A(char const (&p)[N]) { // Копируем p в m_m std::ranges::copy(p, m_m); } }; шаблон класс Б { общедоступный: B(A а) { // Выполняем некоторую операцию над 'a' } }; интервал основной() { авто k = B («тест»); } Сейчас я получаю:
prog.cc:26:22: ошибка: нет соответствующей функции для вызова 'B(const char [5])' prog.cc:20:5: примечание: кандидат: 'template B(A)-> B' 20 | Б(А а) {
У меня возникают проблемы при попытке передать уже инициализированную строку символов, которая буквально неправильно воспринимает перегрузку:
#include #include #include #include шаблон класс А { символ m_m[N]; публика: A(char const (&p)[N]) { // Копируем p в m_m std::ranges::copy(p, m_m); } }; шаблон класс Б { общедоступный: B(A а) { // Выполняем некоторую операцию над 'a' } }; интервал основной() { авто k = B («тест»); } Сейчас я получаю:
prog.cc:26:22: ошибка: нет соответствующей функции для вызова 'B(const char [5])' prog.cc:20:5: примечание: кандидат: 'template B(A)-> B' 20 | Б(А а) {
Мобильная версия