Russian Qt Forum
Ноябрь 22, 2024, 11:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Ошибка с шаблонами  (Прочитано 7158 раз)
kofr
Гость
« : Июнь 07, 2017, 14:17 »

вот прототип функции

Код:
template<class ReturnType> 
ReturnType getValue(const QString &t_tableName, const QString &t_columnName)

вот я ее вызываю
Код:
getValue<QString>("user", "name");

вот ошибка которую он пишет
error: no matching function for call to 'PersistantStorageSyncWorker::getValue(const char [5], const char [5]) const'
return getValue<QString>("user", "name");
^

вопрос, что над о сделать чтобы он принимал литералы для QString
« Последнее редактирование: Июнь 07, 2017, 14:31 от kofr » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Июнь 07, 2017, 15:07 »

оберни их в QStringLiteral или QLatin1String
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
mitrich
Гость
« Ответ #2 : Июнь 07, 2017, 15:21 »

GCC 4.8.2, GCC 5.3, VC2015 - всё работает:
Код
C++ (Qt)
template<typename ReturnType>
ReturnType getValue(const QString &s1, const QString &s2)
{
   return "Hello";
}
//...
QString s = getValue<QString>("user", "name");
 
Непонимающий
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #3 : Июнь 07, 2017, 17:10 »

Проблема, скорее всего, что экземпляр, к которому метод применяется константный, а сам метод объявлен как неконстантный.
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #4 : Июнь 07, 2017, 17:10 »

Точнее вызов getValue производится из константного метода
Записан
kofr
Гость
« Ответ #5 : Июнь 07, 2017, 20:42 »

Проблема была в константности. Решена. Спасибо за ответ
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.071 секунд. Запросов: 23.