шаблон не преобразуется к std::string а к std::__cxx11::basic_string
как сделать чтобы скомпилировался ?
template <typename T>
void func(const std::string& obj, const std::string& path,
const std::string& iface, const std::string& property, T state)
{
sdbusplus::asio::setProperty<T>(*conn, obj, path, iface, property, state,
[](const boost::system::error_code&) {});
}
int main()
{
std::string state = "state";
func<std::string>("obj", "path", "iface", "property", state);
return 0;
}
Ошибка
error: no matching function for call to ‘setProperty<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__shared_ptr_access<sdbusplus::asio::connection, __gnu_cxx::_S_atomic, false, false>::element_type&, const string&, const string&, const string&, const string&, std::__cxx11::basic_string<char>&, func<std::__cxx11::basic_string<char> >::<lambda(const boost::system::error_code&)>)’
24 | sdbusplus::asio::setProperty<T>(*conn, obj, path, iface, property, state,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25 | [](const boost::system::error_code&) {});