Компилятор продолжает присваивать несовместимые типы во время сборки.
Сообщение об ошибке:
error: assigning to 'int' from incompatible type 'QString'
typeduserproperty.cpp:115:28: note: in instantiation of member function 'core::TypedUserProperty<int>::setValue' requested here
Пример кода
/**
* @brief setValue
* set value to property
* @param val
* value to set to property
* @return
* true - successfully set value
* false - invalid value
*/
template<class T>
void TypedUserProperty<T>::setValue(QVariant val)
{
if (std::is_same<T, int>::value == true)
{
this->_value = val.toInt();
}
else if (std::is_same<T, QString>::value == true)
{
this->_value = val.toString();
}
else if (std::is_same<T, double>::value == true)
{
this->_value = val.toDouble();
}
}
this->_value = val.toString();
- это строка ошибкипроисходит
"_ value" - это шаблон типа данных T
, в этом случае я устанавливаю T Template как 'int'
Кто-нибудь знает, почему это происходит илиесли есть обходной путь.